Installation¶
camisole should always be run in a virtual machine. In theory, the sandboxed programs have no way to interact with the machine. In practice, some configuration errors on your side, or even some kernel bugs might be exploited. Refer to Can I run this in Docker/LXC/… or even directly on my server? for more explanations.
VM image¶
The easiest way to install camisole is to download the Virtualbox image:
You can then import it in Virtualbox, (File / Import Appliance), click on the “Start” or “Headless Start” button, and you should then have your Camisole instance running on port 42920. Test your installation by visiting this URL:
$ curl http://localhost:42920/
Note: You can log into the VM with root:camisole or camisole:camisole. Be careful to change the passwords and/or disable sshd before exposing the VM to your infrastructure. Ideally, the virtual machine shouldn’t be accessible directly from the internet.
Archlinux packages¶
Using you preferred AUR helper (eg. pacaur), install camisole-git
. You can
also install the camisole-languages
meta-package to install the
dependencies for all the built-in languages supported by camisole:
$ pacaur -S camisole-git camisole-languages
Manual install¶
camisole has mainly been tested on Archlinux, but it should work on other platforms. That said, it requires some cutting edge versions that you might have some trouble installing in other distributions.
The camisole core program depends on:
- a modern Linux kernel
- isolate (isolation backend)
- Python ≥3.6
- Python aiohttp (HTTP server)
- Python MessagePack (alternative to JSON)
- Python PyYAML (configuration)
On Archlinux, install those with your favorite AUR helper, eg. pacaur:
$ pacaur -S isolate-git python-aiohttp python-msgpack python-yaml
Per-language dependencies¶
In order to actually compile and execution code in languages other than Python, it is necessary to install each language compiler and/or runtime.
Below is a list of built-in languages supported by upstream camisole along with the binaries needed to compile/run programs written in said language.
Language | Class | Binaries |
---|---|---|
Ada | Ada |
|
C | C |
|
C# | CSharp |
|
C++ | CXX |
|
D | D |
|
Go | Go |
|
Haskell | Haskell |
|
Java | Java |
|
Javascript | Javascript |
|
Lua | Lua |
|
OCaml | OCaml |
|
Pascal | Pascal |
|
Perl | Perl |
|
PHP | PHP |
|
Prolog | Prolog |
|
Python | Python |
|
Ruby | Ruby |
|
Rust | Rust |
|
Scheme | Scheme |
|
Build and install¶
After installing all the required dependencies, you can build and install camisole:
$ git clone https://github.com/prologin/camisole
$ cd camisole
$ python3 setup.py build
$ sudo python3 setup.py install
$ python3 -m camisole serve
Be aware that you need to have the rights to run isolate
. In Archlinux,
you will need to add your user to the isolate
group.