Installation

To get started quickly, follow the instructions below.

For a complete overview on building, development and deployment options checkout the Before You Start option.

Prerequisites

Docker is required to build the containers. Please install them according to the official documentation:

or install Docker Desktop:

Also make sure that you have GNU’s make installed on your system.

Note

Windows

You can use the make command with the GNU Make for Windows package. On newer windows systems, simply use winget install GnuWin32.Make and make it executable with set PATH=%PATH%;C:/Program Files (x86)/GnuWin32/bin.

make via Cygwin is not supported, because it is not compatible with nodejs (see common_errors).

Note

Debian/Ubuntu

You need to install the docker compose plugin with sudo update && sudo apt-get install docker-compose-plugin.

Build

Before building the containers, you can change the basic configuration in the .env.main file. To build the containers, run the following command:

$ make ENV=main build

This command will build the containers.

The application should be available at http://localhost:9090

Note

The credentials for the admin user can be also found in the .env file!

Nginx / Certbot

We recommend to use nginx as a reverse proxy for the application and Certbot to support SSL.

To install nginx and Certbot, run the following commands (adapted from this Implementation):

sudo chmod 666 /var/run/docker.sock

# Clone Project
sudo git clone https://github.com/wmnnd/nginx-certbot.git /srv/nginx-certbot
cd /srv/nginx-certbot

# Modify Configuration
sudo nano init-letsencrypt.sh
sudo nano data/nginx/app.conf

# Run Script for first generation process of the certificate
sudo ./init-letsencrypt.sh

# Run docker compose to generate all docker instances
sudo docker compose up -d

Now the ssl certificate should be available and will be renewed periodically.

Tip

In the file docker-compose.yml you can add additional volumes to the service nginx (e.g., ./data/nginx/html:/var/www/html) to make further html files available.

A sample configuration for nginx ./data/nginx/app.conf can look like this:

### This part is for certificate updates and SSL Page Redirection
server {
    listen 80;
    server_name <your domain>;
    server_tokens off;

    location ^~ /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    location / {
        return 301 https://$server_name$request_uri;
    }
}

# For main environment
server {
    listen 443 ssl;
    server_name <your domain>;
    server_tokens off;

    ssl_certificate /etc/letsencrypt/live/<your domain>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<your domain>/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        #proxy_redirect off
        proxy_set_header    Host                $host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header Access-Control-Allow-Origin *;
        proxy_pass http://<docker ip>:<app port>/;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Warning

The IP-Address can change, if the docker network is newly created! Please adapt the ip address accordingly! A better way is to reload just the config with sudo docker compose restart.

Possible errors

Wrong make file

/bin/bash: /cygdrive/c/Program Files/nodejs/npm: No such file or directory
make: *** [backend/node_modules/.uptodate] Error 127

This is usually an error with the wrong make file installed with cygwin, which is not compatible with nodejs. Please install the GNU make for Windows as described above.

Further make sure that the path to the make executable is correctly set in the PATH variable. You can check which make is used with where make (under Windows).

Note

In case of doubt, you can uninstall the cygwin make with the installer package manager setup-x86_64.exe of Cygwin.