The web server houses the following assets:
Install nginx and certbot:
apt -y install nginx python3-certbot-nginx
systemctl enable --now nginx
Install PHP
apt -y install php-fpm php-mysql php-common php-mbstring php-xml php-fileinfo php-gd php-zip
systemctl enable --now php8.3-fpm
Website files (including Limesurvey) are located in /var/www/mountainmeasurement.com/public.
Files for canvas are in /opt/canvas, which is a symlink to /opt/canvas_$version
Canvas requires nodejs version 18 and Ruby:
apt -y install nodejs npm ruby zlib1g-dev libyaml-dev libxml2-dev libsqlite3-dev libpq-dev libxmlsec1-dev libidn11-dev curl make g++
npm install 18
Create a new file /etc/systemd/system/canvas.service:
[Unit]
Description=Canvas Init Script
After=network.target
[Service]
User=canvas
ExecStart=/opt/canvas/script/canvas_init start
ExecStop=/opt/canvas/script/canvas_init stop
Restart=always
[Install]
WantedBy=multi-user.target
Create a user:
useradd -d /opt/canvas -s /bin/bash canvas
chown -R canvas:canvas /opt/canvas
Run the service:
ln -s /opt/canvas/script/canvas_init /etc/init.d/canvas
systemctl enable --now canvas
Install nodejs and sqlite
apt -y install nodejs npm sqlite3
Application files are in /var/www/wiki. To initialize sqlite:
cd /var/www/wiki
npm rebuild sqlite3
Create a new file in /etc/systemd/system/wiki.service:
[Unit]
Description=Wiki.js
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
User=www-data
Environment=NODE_ENV=production
WorkingDirectory=/var/www/wiki
[Install]
WantedBy=multi-user.target
Start the service:
systemctl enable --now wiki