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.
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
adduser saltcorn
adduser saltcorn sudo
su saltcorn
cd
mkdir -p ~/.config/
npm config set prefix /home/saltcorn/.local
echo 'export PATH=/home/saltcorn/.local/bin:$PATH' >> /home/saltcorn/.bashrc
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
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
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.
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
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
Note that recomended make backup of server before do update.
To update do as root user:
check status of saltcorn service systemctl status saltcorn
stop saltcorn service systemctl stop saltcorn