Crust Installation guide

Local Machine Setup using Docker

  1. Download file
  2. Unzip the file and remove .example from all the files — don’t forget to include .env.example which might be a hidden file on your system
  3. Follow the instructions below (or view them at

Docker Compose deployment

This is an example docker-compose deployment.


Docker (18.09 or better)
Docker Compose (1.23 or better)

Main services (crust-* and didmos-*)


All the services have a common deployment environment file .env. Each service also has their own environment file (config.[service].env, config.[service].js) and variables under service/environment in docker-compose.yml.

Generally for a test deployment, all you need to do is to rename the DOMAIN variable in the .env file.


All the containers assume the existence of a party network. If you haven’t created one, you can do that by issuing the following command:

docker network create -d bridge –subnet party


Some of the services need data storage. By default, a data subfolder is created. If you need to back up your services, your best bet is to shut down the service, and copy the files to your backup storage space.



  • db – a database instance for CRUST,
  • system – the system service for CRUST,
  • crm – the CRM service for CRUST,
  • messaging – the Messaging service for CRUST,
  • webapp – the complete webapp for CRUST


  • backend – Didmos backend
  • frontend – Self service portal
  • ldap – LDAP
  • mongo – Storage
  • satosa – Authentication

Exposing Crust to the outside world with reverse proxy

The project relies on a running jwilder/nginx-proxy container for routing, and an example service for it is also provided here. To run the service, issue the following commands (as root or a user in the docker group):

cd nginx-proxy && docker-compose up -d

The setup comes with jrcs/letsencrypt-nginx-proxy-companion, which will use LetsEncrypt API service to provision SSL certificates for your deployment automatically.

To configure the virtual hosts, individual exposed containers have VIRTUAL_HOST env variables.

Starting & stopping Crust services

Starting or stopping the services is as easy as running docker-compose up -d and docker-compose down.