Skip to content
Bill Katz edited this page Mar 30, 2016 · 16 revisions

Before running DVID, you can specify the various ports, storage backends, email notification address and mail server in case of crashes, and other run-time options.

DVID configuration is specified in a TOML file. It's an easily readable configuration format that maps unambiguously to a hash table. There is an example configuration file that comes with DVID source code.

A filled-in example might look like this:

    [store]   
        # Stores can be specified in three ways (default setting required):
        # store.default  = default storage engine if not otherwise specified
        # store.metadata = configuration for metadata store
        # store.datatype = storage engine to use for the given "datatype"

        [store.default]
        engine = "basholeveldb"
        path = "/demo/dbs/basholeveldb"

        [store.imagetile]
        engine = "kvautobus"
        path = "http://tem-dvid.int.janelia.org:9000"

[server]
httpAddress = ":6000"
rpcAddress = ":6001"
webClient = "/path/to/dvid-console"

# Who to send email in case of panic
[email]
notify = ["[email protected]"]
username = "[email protected]"
password = ""
server = "10.1.50.90"
port = 25

[logging]
logfile = "/path/to/dvid.log"
max_log_size = 500 # MB
max_log_age = 360  # days

The only required configuration is the evolving [store] section. In particular, you must specify a default store via the [store.default] setting and can optionally specify datatype-specific stores.

The [server] section allows you to set the RPC and HTTP ports as well as the path to a web app that comes up when you point a web browser to the root HTTP address. The httpAddress option allows for binding to unique IP addresses. This is crucial for hosting on cloud services such as AWS.

The webClient property is a path to static website code for DVID administration, etc. We suggest you download the dvid console project and set the webClient path to its location. The stock dvid console lets you browse data repos and provides nice graphical representations of the data versions.

If you've configured the [email] section and there is a catchable panic, the DVID server will try to email an admin and continue on. Here's an example email you'll hopefully never receive but could be useful during debugging new features:

Subject: DVID panic report
Date: Friday, July 17, 2015 at 3:19:06 PM Eastern Daylight Time From: [email protected]
To: DVID admin

Panic detected on request c06u27.int.janelia.org/67bmYZ78V0-10888375: runtime error: index out of range
IP: 10.8.1.45:64608, URL: /api/node/ee7dc/annotations/keyrange/0
Stack trace:
goroutine 17099711 [running]: github.com/janelia-flyem/dvid/server.func·005()
/groups/flyem/home/katzw/work/go/src/github.com/janelia-flyem/dvid/server/web.go:399 +0xd6 github.com/janelia-flyem/dvid/datatype/keyvalue.(*Data).ServeHTTP(0xc2081dc648, 0xc2081a1760, 0x20, 0xc215091788, 0x7f2504847080, 0xc2082904b0, 0xc20bd41110)
/groups/flyem/home/katzw/work/go/src/github.com/janelia- flyem/dvid/datatype/keyvalue/keyvalue.go:430 +0x2143 github.com/janelia-flyem/dvid/server.func·009(0x7f2504847080, 0xc2082904b0, 0xc20bd41110)
/groups/flyem/home/katzw/work/go/src/github.com/janelia-flyem/dvid/server/web.go:536 +0x649 net/http.HandlerFunc.ServeHTTP(0xc2243fda00, 0x7f2504847080, 0xc2082904b0, 0xc20bd41110)
...
created by net/http.(*Server).Serve
/opt/buildem/src/golang-1.4.2/src/net/http/server.go:1751 +0x35e

Sincerely,
DVID at c06u27.int.janelia.org
Clone this wiki locally