Skip to content
Norman Rzepka edited this page Dec 3, 2017 · 13 revisions

Setting up webKnossos requires knowledge about creating and maintaining server infrastructure. This is a high-level guide. Please contact us to discuss specific issues.

We recommend deploying webKnossos with Docker. On our systems we run webKnossos on a Kubernetes cluster.

  • Install latest Docker engine and Docker compose
  • Get a (sub)domain to run webKnossos on
  • Get a SSL certificate for the (sub)domain
  • Create binaryData and tracingData that is owned and writable by (uid=1000 gid=1000)
  • Deploy a mongoDB server (for serious deployments we recommend a replica set)
  • Create a configuration file (see below for an example)
  • Create a docker container that mounts the necessary volumes (i.e., binaryData, tracingData, configuration) and runs bin/oxalis -J-Xmx20G -J-Xms1G -Dlogger.file=conf/application-logger.xml -Dconfig.file=conf/deployment.conf -Djava.io.tmpdir=disk as user 1000:1000

deployment.conf

include "application.conf"
http {
  uri="https://TODO"
  address="0.0.0.0"
  port=9000
}
mongodb {
  uri="mongodb://TODO"
  evolution {
    enabled=false
    applyProdEvolutions=false
    applyDownEvolutions=false
  }
}
application {
  insertInitialData=false
  secret="TODO"
  authentication {
    dataStoreToken=TODO
    enableDevAutoLogin=false
    enableDevAutoVerify=false
    enableDevAutoAdmin=false
  }
}
airbrake {
  enabled=false
  environment="TODO"
  ssl=false
  endpoint="api.airbrake.io/notifier_api/v2/notices"
  apiKey="TODO"
  projectKey="TODO"
  projectID="TODO"
}

datastore {
  enabled = true
  key="TODO"
  name="localhost"
  debugMode=false
  oxalis{
    uri="localhost:"${http.port}
    secured=false
  }
}

oxalis.annotation.storageFolder="data/nmls"
braingames.binary{
  baseFolder="binaryData"
  cacheMaxSize=40
  loadTimeout=10
  saveTimeout=10
}

mail{
  enabled=true
  smtp{
    host="TODO"
    port=587
    tls=true
    auth=true
    user="TODO"
    pass=TODO
  }
}

google {
  analytics.trackingID="TODO"
}

actor.defaultTimeout=5