sudo apt update && apt upgrade
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install nodejs
npm install -g pnpm
curl -fsSL https://get.pnpm.io/install.sh | sh -
sudo apt update && sudo apt install postgresql-14 postgresql-contrib
sudo systemctl start postgresql.service
sudo -u postgres -i
psql -d postgres
CREATE USER "snailycad";
ALTER USER "snailycad" WITH SUPERUSER;
ALTER USER "snailycad" PASSWORD 'zVw&HJBf8W8tmBu';
CREATE DATABASE "snaily-cadv4";
exit
exit
sudo -s
cd /home/
git clone https://github.com/SnailyCAD/snaily-cadv4.git
cd snaily-cadv4
pnpm install
# wait until it's done
cp .env.example .env
nano .env
# when done, press ctrl X, Y, Enter, and ctrl C
nano /home/snaily-cadv4/start.sh
# copy and paste the following script
#!/bin/bash
# Navigate to the appropriate directory
cd /home/snaily-cadv4
# Execute the necessary commands
echo "Copying environment settings..."
node scripts/copy-env.mjs --client --api
echo "Pulling latest changes from git..."
git pull origin main
echo "Stashing any changes and pulling latest changes again..."
git stash && git pull origin main
echo "Installing dependencies..."
pnpm install
echo "Building the project..."
pnpm run build
pnpm run start
echo "All processes are completed."
nano /etc/systemd/system/start-snaily-cadv4.service
# copy and paste the following configuration
[Unit]
Description=Start Snaily CADv4
After=network.target
[Service]
Type=simple
ExecStart=/home/snaily-cadv4/start.sh
StandardOutput=append:/home/snaily-cadv4/start.log
StandardError=append:/home/snaily-cadv4/start.log
User=root
WorkingDirectory=/home/snaily-cadv4
[Install]
WantedBy=multi-user.target