Belenios is written in OCaml and has some dependencies towards third-party OCaml libraries. The easiest and most portable way to compile Belenios from source is to use OPAM, which is a package manager for OCaml projects.
The non-OCaml prerequisites are:
These libraries and tools are pretty common, and might be directly part of your operating system. On Debian and its derivatives, they can be installed with the following command:
sudo apt install bubblewrap build-essential libgmp-dev libpcre3-dev pkg-config m4 libssl-dev libsqlite3-dev wget ca-certificates zip unzip aspcud libncurses-dev uuid-runtime zlib1g-dev libgd-securityimage-perl cracklib-runtime
If you are unfamiliar with OCaml or OPAM, we provide an
opam-bootstrap.sh shell script that creates a whole, hopefully
self-contained, OCaml+OPAM install, and then installs all the
dependencies of Belenios, everything into a single directory. You can
choose the directory by setting the
variable, or it will take
~/.belenios by default. Just run:
On a modern desktop system, this needs approximately 20 minutes and 2.6 gigabytes of disk space.
If everything goes successfully, follow the given instructions to update your shell environment, then run:
and you can skip the next two sections and go directly to the Documentation section.
You can also compile a debug version by using the
BELENIOS_DEBUG=1 make all
Note that this version may introduce vulnerabilities and should not be used in production!
To make sure everything went well, you can run tests:
If you are familiar with OCaml, please read the
shell script, or the following two sections to compile Belenios with
your existing OCaml installation.
To compile the command-line tool, you will need:
With OPAM, these dependencies can be installed with the following command:
opam install atdgen zarith cryptokit uuidm cmdliner
Once all the dependencies have been installed, the command-line tool can be compiled with:
It produces a single executable,
belenios-tool, in the
directory. You can install it in your
PATH (which we will assume in
the guides), or refer to it with a full path.
The web server has the following additional dependencies:
With OPAM, you can install them with:
opam install calendar eliom csv
Once all the dependencies have been installed, the Eliom module can be compiled with:
It will produce a single Eliom module,
server.cma, in the
_build/src/web directory. See
demo/ocsigenserver.conf.in for an
ocsigenserver configuration template, and the Server administrator's
guide for more information on how to use it.
To generate HTML files from
.md ones, you will need:
Additionnaly, you will need LaTeX to compile the specification.
On Debian-based systems, you can install the dependencies needed to compile the documentation with:
sudo apt install markdown texlive-latex-extra texlive-fonts-recommended texlive-fonts-extra lmodern
Once all the dependencies have been installed, the documentation can be compiled with:
Windows is not yet a fully supported platform, but you can compile at least the command-line tool on Windows + 32-bit Cygwin. You might need the following packages:
With these packages installed, you should be able to install OPAM by following its installation instructions from sources. Once OPAM is installed, follow the instructions in the Command-line tool section above.
opam-bootstrap.sh fails when a not suitable version of
dune is already installed in your
$PATH. This is due to a bug in
opam. If you face this
issue, either uninstall dune before running
manage to get opam running by other means, and directly use it to
install the dependencies of Belenios.
The instructions outlined in this document and in the
opam-bootstrap.sh script imply downloading files from third-party
servers. Sometimes, these servers can be down. For example, you can
=-=-= Installing ocamlnet.3.7.3 =-=-= ocamlnet.3.7.3 Downloading http://download.camlcity.org/download/ocamlnet-3.7.3.tar.gz [ERROR] http://download.camlcity.org/download/ocamlnet-3.7.3.tar.gz is not available ===== ERROR while installing ocamlnet.3.7.3 ===== Could not get the source for ocamlnet.3.7.3.
This can be worked around with the following steps:
env.shfile (you must adapt it if you use an incompatible shell such as tcsh);
opam pin <package-name> <path-to-file-download-above>(in the example above,
opam installcommand found in
If ocsigenserver fails to install because of a SSL-related error:
An alternative could be to install aspcud before running
If you succeeded installing all dependencies, but you get errors while
compiling Belenios, maybe you installed an incompatible version of a
opam-bootstrap.sh script is tuned to install only
compatible versions; you can have a look at it to get these versions.