Browse files

Merge "doc: add low-level section in server-config"

  • Loading branch information...
mpl authored and Gerrit Code Review committed Mar 1, 2017
2 parents 9047f0e + 372f6c6 commit dc4d1650b3332a0257e6a856d3da57b1d28c0b58
Showing with 59 additions and 5 deletions.
  1. +59 −5 doc/
@@ -1,12 +1,10 @@
# Configuring the server

The server's config file at $HOME/.config/camlistore/server-config.json is
JSON. It can either be in simple mode (for basic configurations), or in
low-level mode (for any sort of crazy configuration).
JSON. It can either be in [simple mode](#simplemode) (for basic configurations), or in
[low-level mode](#lowlevel) (for any sort of crazy configuration).

This page documents the simple configuration mode.

# Configuration Keys & Values
# Configuration Keys & Values {#simplemode}

**Note,** if you can't find what you're looking for here, check the API docs: [/pkg/types/serverconfig](

@@ -224,3 +222,59 @@ Alternatively, you can run `devcam appengine` once, which will create and
populate the default directory (`server/appengine/source_root`). Please see the
doc to build devcam.

# Low-level configuration {#lowlevel}

You can specify a low-level configuration file to camlistored with the same
`-configfile` option that is used to specify the simple mode configuration file.
Camlistore tests for the presence of the `"handlerConfig": true` key/value
pair to determine whether the configuration should be considered low-level.

As the low-level configuration needs to be much more detailed and precise, it is
not advised to write one from scratch. Therefore, the easiest way to get started
is to first run Camlistore with a simple configuration (or none, as one will be
automatically generated), and to download the equivalent low-level configuration
that can be found at /debug/config on your Camlistore instance.

In the following are examples of features that can only be achieved through
low-level configuration, for now.

## Replication to another Camlistore instance {#replication}

If `"/bs"` is the storage for your primary instance, such as for example:

"/bs/": {
"handler": "storage-blobpacked",
"handlerArgs": {
"largeBlobs": "/bs-packed/",
"metaIndex": {
"file": "/home/you/var/camlistore/blobs/packed/packindex.leveldb",
"type": "leveldb"
"smallBlobs": "/bs-loose/"

then instead of `"/bs"`, you can use everywhere else instead in the config the
prefix `"/bsrepl/"`, which can be defined as:

"/bsrepl/": {
"handler": "storage-replica",
"handlerArgs": {
"backends": [

where `"/r1/"` is the blobserver for your other Camlistore instance, such as:

"/r1/": {
"handler": "storage-remote",
"handlerArgs": {
"url": "",
"auth": "userpass:foo:bar",
"skipStartupCheck": false

0 comments on commit dc4d165

Please sign in to comment.