summaryrefslogtreecommitdiff
path: root/deploy.sh
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-01-22 11:15:08 -1000
committerPeter Stone <thepeterstone@gmail.com>2026-01-22 11:15:08 -1000
commitb41d38e0161d49fac23c1d552622e7b8310b1c68 (patch)
treecef7af2b1b0a5586082121965639ae947c7b54ad /deploy.sh
parent7fd381a242f68b7c6f10db4e3ae0bb3d06e36a16 (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-xdeploy.sh64
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!"