diff --git a/CorpusAnalysisClient.js.md b/CorpusAnalysisClient.js.md
new file mode 100644
index 0000000000000000000000000000000000000000..6f19fc6ecf8ecf9929243df973bf64d515645438
--- /dev/null
+++ b/CorpusAnalysisClient.js.md
@@ -0,0 +1,50 @@
+# Corpus Analysis
+
+## Start einer Session
+
+```javascript
+nopaque.socket.emit("corpus_analysis_init", <corpusId>);
+  <corpusId> ~ number
+// Show init loading modal
+
+nopaque.socket.on("corpus_analysis_init", <response>);
+  <response> ~ {"code": <code>, "msg": <message>}
+  <code> ~ number // HTTP status code
+  <msg> ~ string
+// Hide init loading modal
+```
+
+## Ausführen einer Suchanfrage
+
+Ergebnisse werden Stückchenweise als "chunks" übertragen.
+
+```javascript
+nopaque.socket.emit("corpus_analysis_query", <query>);
+  <query> ~ string
+// Clear result data store and list
+result = {"query": <query>};
+// Hide query result card
+// Show query loading card
+nopaque.socket.on("corpus_analysis_query", <response>);
+  <response>: {"code": <code>, "result": <result>}
+  <code> ~ number // Error, Success
+  <result> ~ {"matches": [<cpos>, ...],
+              "num_matches": <num_matches>,
+              "cpos_lookup": {<cpos>: <token>, ...},
+              "text_lookup": {<textId>: <text>, ...}}
+  <cpos> ~ number
+  <num_matches> ~ number
+  <token> ~ {"word": <word>, "lemma": <lemma>, "simple_pos": <simple_pos>, "pos": <pos>, "ner": <ner>, "text": <textId>, "s": <sId>}
+  <word> ~ string
+  <lemma> ~ string
+  <simple_pos> ~ string
+  <pos> ~ string
+  <ner> ~ string
+  <textId> ~ number
+  <sId> ~ number
+  <text> ~ {"author": <author>, "title": <text>, ...}
+  <s> ~ string
+// Process response
+// Hide query result card
+// Show query loading card
+```
diff --git a/docker-compose.yml b/docker-compose.yml
index d39bcbc26a883ed7da4ff557f90c983e730913fa..89b2db802347e4f6d46377b5521cd217301a2f80 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -20,8 +20,6 @@ services:
     depends_on:
       - db
       - redis
-    deploy:
-      replicas: 25
     environment:
       - VIRTUAL_HOST=nopaque.localhost,129.70.216.233
     env_file: nopaque.env
diff --git a/nopaque.env.tpl b/nopaque.env.tpl
index 19736f22bb460070230cb9fc5c51505dcd3f7fd7..aa8a6cdced676be38b65b643fe9bffbb57cebadc 100644
--- a/nopaque.env.tpl
+++ b/nopaque.env.tpl
@@ -8,6 +8,10 @@ DOCKER_CERT_PATH=
 DOCKER_HOST=
 DOCKER_TLS_VERIFY=
 
+### GitLab Registry ###
+GITLAB_USERNAME=
+GITLAB_PASSWORD=
+
 ### Flask ###
 FLASK_CONFIG=
 # SECRET_KEY=