Install on Ubuntu

A virtual machine with 1 GB RAM is sufficient.

These instructions are for Ubuntu 20.04 (we have not tested with other versions or other distributions, but it should work).

Use SSH to connect to your virtual machine.

Install node.js

wget -qO - | sudo -E bash -
sudo apt-get install -y nodejs libpq-dev build-essential python-is-python3 

Create a user

adduser saltcorn
adduser saltcorn sudo
su saltcorn
mkdir -p ~/.config/
npm config set prefix /home/saltcorn/.local
echo 'export PATH=/home/saltcorn/.local/bin:$PATH' >> /home/saltcorn/.bashrc

Install saltcorn

npm install -g @saltcorn/cli

if this fails, you may need to tell npm to disregard file permissions during compilation:

npm install -g @saltcorn/cli --unsafe

Setup saltcorn


saltcorn setup and follow instructions. It will ask you for a sudo password, enter the one you set when you created the saltcorn user.

now exit to become root user again


nginx install and setup

Install nginx: apt install nginx

Using a text editor such as nano, create a file /etc/nginx/sites-available/, replacing with your domain, with these contents:

server {
    listen 80;
    location / {
        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 X-Forwarded-Proto $scheme;

link this file to the sites-enabled directory:

sudo ln -s /etc/nginx/sites-available/ /etc/nginx/sites-enabled/

reload nginx:

sudo service nginx reload

Now run Saltcorn manually as the saltcorn user:

sudo -u saltcorn saltcorn serve

and check that you can connect to your server through your domain. If not, check your DNS setup. If everything works, go back to your SSH terminal and stop the saltcorn server by pressing Ctrl-C.

Install saltcorn as a service

Installing saltcorn as a service will mean it runs in the background and restarts automatically if the system reboots.

create a file /lib/systemd/system/saltcorn.service with these contents:


ExecStart=/usr/bin/saltcorn serve



sudo systemctl daemon-reload
sudo systemctl start saltcorn
sudo systemctl enable saltcorn

SSL certificate (for secure HTTPS traffic)

Install certbot from Lets Encrypt to give you a free SSL certificate to secure traffic with HTTPS.

Follow these instructions for the setup above: Certbox on Ubuntu 20.04 with nginx

Update existing installation of saltcorn

Note that recomended make backup of server before do update.

To update do as root user:

  1. check status of saltcorn service systemctl status saltcorn

  2. stop saltcorn service systemctl stop saltcorn