diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-01-22 11:15:08 -1000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-01-22 11:15:08 -1000 |
| commit | b41d38e0161d49fac23c1d552622e7b8310b1c68 (patch) | |
| tree | cef7af2b1b0a5586082121965639ae947c7b54ad /deploy.sh | |
| parent | 7fd381a242f68b7c6f10db4e3ae0bb3d06e36a16 (diff) | |
Add deploy script and remove resolved issues
- Add deployment/deploy script for server-side deploys
- Remove 10 completed issue files (001-016 batch)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'deploy.sh')
| -rwxr-xr-x | deploy.sh | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..d819097 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,64 @@ +#!/bin/bash +set -e + +# Configuration +REMOTE="titanium" +FQDN="doot.terst.org" +SITE_DIR="/site/${FQDN}" +SERVICE="task-dashboard@${FQDN}" + +echo "==> Building binary (linux/amd64)..." +GOOS=linux GOARCH=amd64 go build -o app cmd/dashboard/main.go + +echo "==> Pushing code to ${REMOTE}..." +git push ${REMOTE} master + +echo "==> Uploading binary..." +scp app ${REMOTE}:${SITE_DIR}/app.new + +echo "==> Deploying on ${REMOTE}..." +ssh ${REMOTE} bash -s << 'EOF' +set -e +FQDN="doot.terst.org" +SITE_DIR="/site/${FQDN}" +SERVICE="task-dashboard@${FQDN}" + +cd ${SITE_DIR} + +echo "Stopping service..." +systemctl stop ${SERVICE} || true + +echo "Swapping binary..." +mv app.new app + +echo "Checking out latest code..." +cd app-code +GIT_WORK_TREE=${SITE_DIR}/checkout git checkout -f master 2>/dev/null || { + mkdir -p ${SITE_DIR}/checkout + GIT_WORK_TREE=${SITE_DIR}/checkout git checkout -f master +} +cd ${SITE_DIR} + +echo "Syncing static files..." +rsync -a --delete checkout/web/static/ public/ + +echo "Syncing templates..." +rsync -a --delete checkout/web/templates/ templates/ + +echo "Setting permissions..." +chown -R www-data:www-data ${SITE_DIR} +find ${SITE_DIR} -type d -exec chmod 755 {} \; +find ${SITE_DIR} -type f -exec chmod 644 {} \; +chmod +x ${SITE_DIR}/app +chmod 600 ${SITE_DIR}/.env 2>/dev/null || true + +echo "Starting service..." +systemctl start ${SERVICE} +sleep 1 +systemctl status ${SERVICE} --no-pager -l + +echo "Deploy complete!" +EOF + +rm -f app +echo "==> Done!" |
