Files
Catalyst/deploy/setup.sh
josh 12125e8942
Some checks failed
Deploy / deploy (push) Has been cancelled
oops
2026-03-27 22:57:13 -04:00

41 lines
1.2 KiB
Bash

#!/usr/bin/env bash
# Run once on a fresh server to prepare it for Catalyst deployments.
# Usage: bash setup.sh <deploy-public-key>
# Example: bash setup.sh "ssh-ed25519 AAAA... gitea-actions"
set -euo pipefail
DEPLOY_KEY="${1:?usage: setup.sh <deploy-public-key>}"
echo "==> Installing Node.js"
curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
apt-get install -y nodejs
echo "==> Installing PM2"
npm install -g pm2
pm2 startup systemd -u deploy --hp /home/deploy | tail -1 | bash
echo "==> Creating app directory"
mkdir -p /srv/catalyst
chown -R deploy:deploy /srv/catalyst
echo "==> Creating deploy user"
if ! id -u deploy &>/dev/null; then
useradd -m -s /bin/bash deploy
fi
DEPLOY_SSH_DIR="/home/deploy/.ssh"
mkdir -p "$DEPLOY_SSH_DIR"
echo "$DEPLOY_KEY" >> "$DEPLOY_SSH_DIR/authorized_keys"
chmod 700 "$DEPLOY_SSH_DIR"
chmod 600 "$DEPLOY_SSH_DIR/authorized_keys"
chown -R deploy:deploy "$DEPLOY_SSH_DIR"
echo ""
echo "Done. Add these secrets to your Gitea repo:"
echo " DEPLOY_HOST → (your Tailscale IP or hostname)"
echo " DEPLOY_USER → deploy"
echo " DEPLOY_SSH_KEY → (the private key paired with the public key you provided)"
echo " DEPLOY_SSH_PORT → 22"
echo ""
echo "Catalyst will be served on port 3000."