Let's set up Camlistore on a Linux server, with blobs stored in s3. This seems to be the currently best-supported option for "cloud" deployment.
This is meant as a supplement to the official server config doc. Read through both docs before you start.
http://camlistore.org/docs/server-config
This blog post is also recommended reading.
I've posted my config files for reference, but they will be created the first time you run camlistored
(for the server) and camput init
(for the client) so don't copy them.
Outline:
- Build on server
- Configure S3 bucket
- Configure client on laptop
- Ensure camlistored starts on server start
- Go 1.1+. For Ubuntu, you may need to upgrade, use a PPA, or use godeb to build your own packages.
- Run the server with
bin/camlistored
(this will create your initial server config) - Edit
~/.config/camlistore/server-config.json
(there is also a/setup
URL for editing the config, but it's only accessible fromlocalhost
, so you'd need to use an SSH port forward:ssh -L 3179:localhost:3179 [email protected]
)
Follow the Ubuntu Docs to create a self signed certificate, and then put them in your server config.
- Create a bucket
- Create a IAM user
- Copy Creds for config
- Use the grant policies from this article. Might be overly permissive.
Make sure camlistored starts when your server starts. On Ubuntu, you need an Upstart job config like camlistored.conf.
Just camput init
and edit vim ~/.config/camlistore/client-config.json
to add a new default
server
with auth
string copied from server config.
You will need to add the SSL cert from the server to a "trustedCerts" key. Try to camput something and you will see a helpful error message about this.
- Import your stuff! Use
cammount ~/Store
and thenmkdir ~/Store/roots/Notes
to start. - Run multiple indexes/blobstores (laptop, beaglebone in closet)
- Serve a website right out of camlistore using a publish permanode and go templates
@bcomnes there are three main parts I think: the blob store (which is where you write stuff), the indexer (which is what you query) and the client, which can evidently do some transparent caching. This is gleaned from the overview.
I think one possible answer to "how can I make sure I have access to stuff on the go" for devices with smaller storage is to have the client cache recently accessed stuff (and maybe predictively too?).
Also I'm curious if running an indexer on your laptop with the blob store remote might be another answer.
I'll have a better idea once I get a local copy syncing with the VPS/S3 instance.
Also check out http://camlistore.org/pkg/blobserver/cond/