Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990#!/usr/bin/env fish# help - deploy to help.aesthetic.computer## Usage:# fish deploy.fish # Full deploy (server + page, restarts service)# fish deploy.fish --page # Page-only (uploads HTML, SIGHUP reload, zero downtime)
set RED '\033[0;31m'set GREEN '\033[0;32m'set YELLOW '\033[1;33m'set NC '\033[0m'
set SCRIPT_DIR (dirname (status --current-filename))set VAULT_DIR "$SCRIPT_DIR/../aesthetic-computer-vault"set SSH_KEY "$VAULT_DIR/home/.ssh/id_rsa"set SERVICE_ENV "$VAULT_DIR/help/.env"set HELP_HOST "help.aesthetic.computer"set HELP_USER "root"set REMOTE_DIR "/opt/help"
set PAGE_ONLY falseif contains -- --page $argv set PAGE_ONLY trueend
# Check SSH keyif not test -f $SSH_KEY echo -e "$RED x SSH key not found: $SSH_KEY$NC" exit 1end
# Test SSHecho -e "$GREEN-> Testing SSH to $HELP_HOST...$NC"if not ssh -i $SSH_KEY -o StrictHostKeyChecking=no -o ConnectTimeout=10 $HELP_USER@$HELP_HOST "echo ok" &>/dev/null echo -e "$RED x Cannot connect to $HELP_HOST$NC" exit 1endecho -e "$GREEN Connected.$NC"
if test $PAGE_ONLY = true # Page-only deploy echo -e "$GREEN-> Uploading index.html (zero-downtime)...$NC" scp -i $SSH_KEY -o StrictHostKeyChecking=no \ $SCRIPT_DIR/index.html \ $HELP_USER@$HELP_HOST:$REMOTE_DIR/
ssh -i $SSH_KEY $HELP_USER@$HELP_HOST " chown help:help $REMOTE_DIR/index.html kill -HUP \$(systemctl show -p MainPID --value help) " echo -e "$GREEN Page reloaded.$NC"else # Full deploy echo -e "$GREEN-> Uploading help files...$NC" scp -i $SSH_KEY -o StrictHostKeyChecking=no \ $SCRIPT_DIR/server.mjs \ $SCRIPT_DIR/index.html \ $SCRIPT_DIR/package.json \ $HELP_USER@$HELP_HOST:$REMOTE_DIR/
# Upload .env from vault if test -f $SERVICE_ENV scp -i $SSH_KEY -o StrictHostKeyChecking=no \ $SERVICE_ENV $HELP_USER@$HELP_HOST:$REMOTE_DIR/.env else echo -e "$YELLOW No vault .env found — skipping$NC" end
echo -e "$GREEN-> Installing dependencies & restarting...$NC" ssh -i $SSH_KEY $HELP_USER@$HELP_HOST " chown -R help:help $REMOTE_DIR 2>/dev/null || true cd $REMOTE_DIR && npm install --production --silent 2>&1 | tail -1 systemctl restart help sleep 2 systemctl is-active help "
set STATUS $status if test $STATUS -eq 0 echo -e "$GREEN Help is running.$NC" else echo -e "$RED x Help failed to start. Check logs:$NC" echo -e "$YELLOW ssh -i $SSH_KEY $HELP_USER@$HELP_HOST journalctl -u help -n 30$NC" exit 1 endend
echo ""echo -e "$GREEN Done. https://$HELP_HOST$NC"