c5958f283f
- Astro 5.x static site with content collections for extensions - Pages: index, [slug] (per-extension), coffee (Ko-fi), feedback form - Go binary gs-feedback: SQLite storage + Discord webhook notification - Nginx config: static serving + POST proxy to Go backend - Deploy script: build + rsync to VPS - ThockBoard landing page with features and sound pack listing
41 lines
1.1 KiB
Bash
41 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Deploy Greasy Sprocket website to VPS
|
|
# Usage: VPS_IP=1.2.3.4 bash deploy/deploy.sh
|
|
|
|
VPS_IP="${VPS_IP:?Set VPS_IP env var}"
|
|
SSH_KEY="${SSH_KEY:-$HOME/.hermes/id_rsa_gs}"
|
|
SSH_USER="${SSH_USER:-root}"
|
|
|
|
echo "=== Building Astro ==="
|
|
cd astro
|
|
pnpm install --frozen-lockfile 2>/dev/null || pnpm install
|
|
pnpm run build
|
|
cd ..
|
|
|
|
echo "=== Building Go feedback service ==="
|
|
cd feedback-svc
|
|
make build
|
|
cd ..
|
|
|
|
echo "=== Uploading to VPS ==="
|
|
# Upload static files
|
|
rsync -avz --delete astro/dist/ "${SSH_USER}@${VPS_IP}:/var/www/greasysprocket.com/"
|
|
|
|
# Upload Go binary
|
|
scp -i "$SSH_KEY" feedback-svc/bin/gs-feedback "${SSH_USER}@${VPS_IP}:/usr/local/bin/gs-feedback"
|
|
|
|
# Upload systemd service (if changed)
|
|
scp -i "$SSH_KEY" deploy/gs-feedback.service "${SSH_USER}@${VPS_IP}:/etc/systemd/system/gs-feedback.service"
|
|
|
|
echo "=== Restarting services ==="
|
|
ssh -i "$SSH_KEY" "${SSH_USER}@${VPS_IP}" '
|
|
chmod +x /usr/local/bin/gs-feedback &&
|
|
mkdir -p /var/lib/gs-feedback &&
|
|
chown www-data:www-data /var/lib/gs-feedback &&
|
|
systemctl daemon-reload &&
|
|
systemctl restart gs-feedback &&
|
|
systemctl reload nginx &&
|
|
echo "✅ Deploy complete"
|
|
' |