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:

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
  • gnatmake
C C
  • gcc
C# CSharp
  • mono
  • mcs
C++ CXX
  • g++
D D
  • dmd
Haskell Haskell
  • ghc
Java Java
  • javac
  • javap
  • java
Javascript Javascript
  • node
Lua Lua
  • luajit
OCaml OCaml
  • ocamlopt
Pascal Pascal
  • fpc
Perl Perl
  • perl
PHP PHP
  • php
Python Python
  • python3
Ruby Ruby
  • ruby
Rust Rust
  • rustc
Scheme Scheme
  • gsi

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.