ShowPage
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 - https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs libpq-dev build-essential python-is-python3

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

if you are not already root, you mau need to run this with sudo

sudo npm install -g @saltcorn/cli --unsafe

Create a user

adduser saltcorn
adduser saltcorn sudo
su saltcorn
cd
mkdir -p ~/.config/

Setup saltcorn

run

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

exit

nginx install and setup

Install nginx: apt install nginx

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

server {
    listen 80;
    server_name domain.com www.domain.com;
    location / {
        proxy_pass http://127.0.0.1:3000;
        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/domain.com /etc/nginx/sites-enabled/domain.com

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:

[Unit]
Description=saltcorn
Documentation=https://saltcorn.com
After=network.target

[Service]
Type=simple
User=saltcorn
WorkingDirectory=/home/saltcorn
ExecStart=/usr/bin/saltcorn serve
Restart=always

[Install]
WantedBy=multi-user.target

run:

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