summaryrefslogtreecommitdiff
path: root/readme.md
diff options
context:
space:
mode:
authorTimotej Lazar <timotej.lazar@araneo.org>2015-09-16 16:10:59 +0200
committerTimotej Lazar <timotej.lazar@araneo.org>2015-09-16 16:10:59 +0200
commit251c5e2ba0e85103c55cf31026739b2e7e9d4b90 (patch)
treed01abacb559c69fdfe3ef205a683496533da8369 /readme.md
parentb9f1c57fdd6097e776235c105c58c29f84399523 (diff)
Implement async. comm. with Python interpreter
Creating, destroying and communicationg with the interpreter subprocess is now handled by a thread attached to PythonSession. Interpreter is sandboxed using libseccomp.
Diffstat (limited to 'readme.md')
-rw-r--r--readme.md40
1 files changed, 30 insertions, 10 deletions
diff --git a/readme.md b/readme.md
index a7e11ca..61b0ac6 100644
--- a/readme.md
+++ b/readme.md
@@ -1,6 +1,19 @@
Deployment
==========
+Install the following packages:
+
+ - apache2
+ - python3 (>= 3.4)
+ - python3-ply
+ - python3-psycopg2
+ - python3-termcolor
+ - swi-prolog-nox (>= 7.2)
+ - nodejs (>= 10.0.22)
+
+SWI prolog
+----------
+
To use the correct SWI prolog package (>= 7.2) on Debian, add a custom
repository by creating the file /etc/apt/sources.list.d/prolog.list
containing the following 2 lines:
@@ -16,17 +29,23 @@ apt-get update
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EF8406856DBFCA18
apt-get update
-Install the following packages:
+libseccomp
+----------
- - apache2
- - python3 (>= 3.4)
- - python3-ply
- - python3-psycopg2
- - python3-termcolor
- - swi-prolog-nox (>= 7.2)
- - nodejs (>= 10.0.22)
+A new version of libseccomp (≥ 2.2) with Python bindings is needed to sandbox
+Python interpreters. This is not available yet in most distributions, so fetch
+the latest sources with
+
+ git clone https://github.com/seccomp/libseccomp
+
+then build and install it with
+
+ ./configure --enable-python
+ make
+ make install
-Settings:
+Settings
+--------
- point webroot to codeq-web
- set up reverse proxy for /ws/ to the node server:
@@ -43,7 +62,8 @@ Settings:
- run "npm install" inside the "web" directory to install all dependencies
(they will be installed inside the "web" directory)
-Running:
+Running
+-------
- run the prolog interpreter server: swipl prolog/runner/main.pl
- run the python interpreter server: python3 python/runner/main.py