diff options
Diffstat (limited to 'scripts/deploy')
| -rwxr-xr-x | scripts/deploy | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/scripts/deploy b/scripts/deploy new file mode 100755 index 0000000..e6746d8 --- /dev/null +++ b/scripts/deploy @@ -0,0 +1,44 @@ +#!/bin/bash +set -e + +# Configuration +FQDN="doot.terst.org" +SITE_DIR="/site/${FQDN}" +SERVICE="task-dashboard@${FQDN}" + +echo "==> Building CSS..." +npm run css:build + +echo "==> Building binary..." +BUILD_COMMIT=$(git rev-parse --short HEAD) +BUILD_TIME=$(date -u '+%Y-%m-%dT%H:%M:%SZ') +LDFLAGS="-X main.buildCommit=${BUILD_COMMIT} -X main.buildTime=${BUILD_TIME}" +go build -ldflags "$LDFLAGS" -o app cmd/dashboard/main.go + +echo "==> Stopping service..." +systemctl stop ${SERVICE} || true + +echo "==> Syncing assets and migrations to ${SITE_DIR}..." +# Sync static files +rsync -av --delete web/static/ ${SITE_DIR}/public/ +# Sync templates +rsync -av --delete web/templates/ ${SITE_DIR}/templates/ +# Sync migrations +rsync -av --delete migrations/ ${SITE_DIR}/migrations/ + +echo "==> Swapping binary..." +mv app ${SITE_DIR}/app + +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!" |
