From b41d38e0161d49fac23c1d552622e7b8310b1c68 Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Thu, 22 Jan 2026 11:15:08 -1000 Subject: 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 --- deployment/deploy | 33 +++++++++++++++++++++++++++++++++ deployment/post-receive | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 deployment/deploy create mode 100644 deployment/post-receive (limited to 'deployment') diff --git a/deployment/deploy b/deployment/deploy new file mode 100644 index 0000000..f120bb3 --- /dev/null +++ b/deployment/deploy @@ -0,0 +1,33 @@ +#!/bin/bash +set -e + +FQDN="doot.terst.org" +SITE_DIR="/site/${FQDN}" +CODE_DIR="${SITE_DIR}/app-code" +SERVICE="task-dashboard@${FQDN}" + +cd ${CODE_DIR} + +echo "==> Pulling latest..." +git pull + +echo "==> Stopping service..." +systemctl stop ${SERVICE} || true + +echo "==> Building..." +go build -o ${SITE_DIR}/app cmd/dashboard/main.go + +echo "==> Syncing files..." +rsync -a --delete web/static/ ${SITE_DIR}/public/ +rsync -a --delete web/templates/ ${SITE_DIR}/templates/ + +echo "==> Fixing permissions..." +chown -R www-data:www-data ${SITE_DIR} +chmod +x ${SITE_DIR}/app +chmod 600 ${SITE_DIR}/.env 2>/dev/null || true + +echo "==> Starting service..." +systemctl start ${SERVICE} +systemctl status ${SERVICE} --no-pager -l + +echo "==> Done!" diff --git a/deployment/post-receive b/deployment/post-receive new file mode 100644 index 0000000..1647794 --- /dev/null +++ b/deployment/post-receive @@ -0,0 +1,44 @@ +#!/bin/bash +set -e + +# Server-side deploy hook for /site/doot.terst.org +# Install: cp deployment/post-receive /site/doot.terst.org/app-code/hooks/post-receive && chmod +x /site/doot.terst.org/app-code/hooks/post-receive + +FQDN="doot.terst.org" +SITE_DIR="/site/${FQDN}" +REPO_DIR="${SITE_DIR}/app-code" +CHECKOUT_DIR="${SITE_DIR}/checkout" +SERVICE="task-dashboard@${FQDN}" + +echo "==> Deploying ${FQDN}..." + +echo "Stopping service..." +systemctl stop ${SERVICE} || true + +echo "Checking out code..." +mkdir -p ${CHECKOUT_DIR} +GIT_WORK_TREE=${CHECKOUT_DIR} git --git-dir=${REPO_DIR} checkout -f master + +echo "Building binary..." +cd ${CHECKOUT_DIR} +GOOS=linux GOARCH=amd64 go build -o ${SITE_DIR}/app cmd/dashboard/main.go + +echo "Syncing static files..." +rsync -a --delete ${CHECKOUT_DIR}/web/static/ ${SITE_DIR}/public/ + +echo "Syncing templates..." +rsync -a --delete ${CHECKOUT_DIR}/web/templates/ ${SITE_DIR}/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!" -- cgit v1.2.3