From ce8343e5ab32acda1d6ea10b54615baf6029d9d1 Mon Sep 17 00:00:00 2001 From: EOEboh Date: Sat, 5 Sep 2026 13:04:38 +0100 Subject: [PATCH 1/4] build: unpin the image architecture and build on arm64 The Dockerfile pinned both stages to linux/amd64 for Hetzner, which silently overrode whatever platform buildx was asked for. Production is moving to an Oracle Ampere host, so the pins come out and the platform is decided by the build. The deploy and CI image jobs move to ubuntu-24.04-arm. The SQLite driver is cgo, so cross-building would run the compile under QEMU; a native arm64 runner compiles directly and is free on public repos. vet and test now also run on the architecture production serves, which they did not before. Verified: the arm64 image builds, the binary starts with both maintenance flags present (proving the package rather than main.go alone was compiled), migrations run, journal_mode is WAL, and a POST to /i/ is captured and recorded. --- .github/workflows/ci.yml | 5 ++++- .github/workflows/deploy.yml | 8 ++++++-- Dockerfile | 8 +++++--- hookdrop.db | Bin 4096 -> 0 bytes hookdrop.db-shm | Bin 32768 -> 0 bytes hookdrop.db-wal | Bin 2673912 -> 0 bytes 6 files changed, 15 insertions(+), 6 deletions(-) delete mode 100644 hookdrop.db delete mode 100644 hookdrop.db-shm delete mode 100644 hookdrop.db-wal diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a63eda7..d632649 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -89,7 +89,10 @@ jobs: docker: name: Production image builds - runs-on: ubuntu-latest + # arm64, matching the deploy workflow and the production host. On + # ubuntu-latest this job would build an image no one runs, and stop + # proving what it exists to prove. + runs-on: ubuntu-24.04-arm steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 5ec0c9f..bdfc59b 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -20,7 +20,11 @@ concurrency: jobs: deploy: name: Build, push and release - runs-on: ubuntu-latest + # Native arm64, to match the Oracle Ampere host. The SQLite driver is cgo, + # so a cross-build would run the compile under QEMU; this runner compiles + # directly, and vet/test then run on the architecture production serves. + # Free on public repos — the label fails on private ones. + runs-on: ubuntu-24.04-arm environment: production permissions: contents: read @@ -74,7 +78,7 @@ jobs: uses: docker/build-push-action@v6 with: context: . - platforms: linux/amd64 + platforms: linux/arm64 push: true tags: | ${{ steps.meta.outputs.image }}:${{ steps.meta.outputs.sha }} diff --git a/Dockerfile b/Dockerfile index 9745270..af4a1bc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,7 @@ -# Build stage — explicitly target AMD64 (Hetzner's architecture) -FROM --platform=linux/amd64 golang:1.23-alpine AS builder +# Build stage. Architecture is left to the builder: `docker build` follows the +# host, and buildx follows --platform. Pinning it here (it was linux/amd64 for +# Hetzner) silently overrides the platform the deploy workflow asks for. +FROM golang:1.23-alpine AS builder RUN apk add --no-cache gcc musl-dev @@ -14,7 +16,7 @@ COPY . . RUN CGO_ENABLED=1 GOOS=linux go build -o hookdrop . # Run stage -FROM --platform=linux/amd64 alpine:3.21 +FROM alpine:3.21 RUN apk add --no-cache ca-certificates sqlite WORKDIR /app diff --git a/hookdrop.db b/hookdrop.db deleted file mode 100644 index 4d0f4d75c0c482c3485d3529b474a8f56497a2ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYFvV%?r{lK(-m98b?E5 nGz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nC=3ArvhW9) diff --git a/hookdrop.db-shm b/hookdrop.db-shm deleted file mode 100644 index 7a077117cfa4b8e51c0e0233c4a2438e094e01b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI4cXU-n5XQf60!e5|s0jf=3BA|Qd+&tad+)vX5{iO_t{^JKLQ#4V6_jQ#fQl8d z3o0ro*l_pw-Z}5Q6MPpFVgU-9{*qA* zPhXBt7=3v8hPd3#icJ`B?$qhW|?FPB}X-u2e z)wi*^=iGX$^X$9l|L@i_2G72)I1;l>Oy|pwuX)Qg#7L--bVlqry^#z?GP=f@OzUam zIdA9e_-6O9{=$re8;LMt$C+Ji7FX+SW9RMM?bz?l;=I#(%OIyyJek=&c*hlMbOntRGGhOSxnsAjowIto z#&c}@V#NM;a<`uEWcT|vF`e5!xmwS6oPED}k8gG#CwnsP^il#!KnW-TC7=Y9fD%vw zNNt4KnW-TC7=Y9fD%vw zNP+M{ z-!aFUZ;Xqe7)qcNDxor}qB`oJAsVA8nxiFJBOdM00YfkhBQOW^umB6O7p@@BR1nPJb|s)j;F8_yRjGh@h;Bc1AK*Va1r0(2mFky_!WPd!Wbb; z#|+HGaAsy!W@jX0n2!ZmkcAm9?WC9Vk$y5j2FVZ^CL?5&jFD+FLuN^WEDHE1^e8^| z`*Y_X0S1}+0a;8vmK>(`O0=o75@Tuy6foc37e-MOM@f`M9IBuiYM?F}p$VFy1zMpE z+M+!=Vkm}VB<5m160itMa5t9WUfhorScNrs0PFA&9>$~Cge`a+PhuN(;A!l_9_+&b zyodMkA-=}9xPcmH%PyTEZEdO3rAU0KrPhAEWe0JgGd^I6G>YhK&wNM$<*pAhl;3;2ACZ{J5Rk^ zJ(+s9mdrcrj6NvJmTb>%?8_k>%}Jce1-zT9xSr?v6~E_I{=pzgFVzG7A9XUrzfJB= z;bpvbn|!A(w_VT|#n_4+*q!}2lw&xVvzWl8T+N60DZl0q{DprqjbxA-diqmD@?XLE z6cOj053(!zp*UN!BYUtvhjA>Ya5fim8P{+FFYp^)=CAyVX(gl7)YE_G6Xqa-*YPQS za$u(>-O(R|aRFcAI{t((m^qn;C0K@KS&@}kmDN~_wOOAH*n~~lhMm}x12~-HIF)m_ zi1#u~p9;S^NGrIBPjCl!^8laa3p~kJnN@R?NRE1706xQS2x2r#vK-@Bopsod%^1(l z?8Si`!SS5Nxm?WqxRwudGoR#B+{1%>jxX{QU*p?+mml&oe#;+ujW-x9;gU^qN{qxx zQ7I+mrLxqPCelLYXbuv|L2|2BaveAFac<`>?&o11IYnKf9Kjo6%R*@eA1h$A_H(>aezct0QDBizER ze42ZCh|lvFU*hXL&G+~bKj%gM#Os8FNQ7jUXvr%DrI?hK3Q|St1SH+$KG)9tWsyjU zlH8I<@=F0JEJdV*l$AIG=ZMIUnSse2m+;ll%A#kMKBO<{Lc2bNrZJ@DhLKZ={4uX2~JBB%c(L z;!;K`N>!<=teqX*WU#6)&7_sgQ{p~Zj>Z&pkgiI~C#jTU&_J{4Fj-?T6&UrlXO>7K1rnF6vyl$S$ZYL=P^OvDUyk)C?` vQ&UoPFAfPD!Z?|vXWt<$HA`Itp22vTtfxP9B~^FhkicO~kSTil9nkt4K{RTb diff --git a/hookdrop.db-wal b/hookdrop.db-wal deleted file mode 100644 index 2c0867dc39bc27377c3d9a3ffbc7abee1d05f4db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2673912 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 From 8f8f80411ed15619e9fe7064a0a0fb132d2aff2f Mon Sep 17 00:00:00 2001 From: EOEboh Date: Sat, 5 Sep 2026 13:04:48 +0100 Subject: [PATCH 2/4] chore(deploy): keep host config and provisioning in the repo docker-compose.yml, the TLS config and the backup script existed only on the production server. That is the main reason moving hosts is expensive: the box holds state that is not reproducible from this repo. - deploy/docker-compose.yml mirrors the running service. Secrets move out of it into /opt/hookdrop/.env (0600) referenced by env_file, so the compose file itself is safe to track. The image: line keeps the shape the Deploy workflow's sed rewrite depends on. - deploy/Caddyfile replaces nginx. Caddy renews its own certificates, and SSE needs flush_interval -1 and read_timeout 0 or streams connect and hang. - scripts/provision.sh turns a bare Ubuntu box into a hookdrop host, and is idempotent so it can be re-run. It documents the two-layer firewall on Oracle: a VCN rule alone leaves 443 black-holed behind the image's own iptables rules. - scripts/backup.sh takes the snapshot with sqlite3 .backup rather than cp, which on a WAL database with a live writer would copy a torn file, and installs as a systemd timer instead of riding along with deploys. Verified against a live database with concurrent writers, from a separate process on the same mount as production runs it: snapshot, integrity check, gzip, prune and a restore drill from the resulting artifact. --- deploy/.env.example | 54 ++++++++++ deploy/Caddyfile | 38 +++++++ deploy/docker-compose.yml | 41 ++++++++ scripts/backup.sh | 72 ++++++++++++++ scripts/provision.sh | 202 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 407 insertions(+) create mode 100644 deploy/.env.example create mode 100644 deploy/Caddyfile create mode 100644 deploy/docker-compose.yml create mode 100755 scripts/backup.sh create mode 100755 scripts/provision.sh diff --git a/deploy/.env.example b/deploy/.env.example new file mode 100644 index 0000000..4801e92 --- /dev/null +++ b/deploy/.env.example @@ -0,0 +1,54 @@ +# hookdrop production environment. Copy to /opt/hookdrop/.env on the host, +# fill in the values, then: chown deploy:deploy .env && chmod 600 .env +# +# Names below are every variable main.go reads. Anything left unset falls back +# to a development default, which in production is usually wrong — the five +# LEMONSQUEEZY_* values are checked at boot and reported by warnIfUnset as +# "WARNING: unset config, billing will not work". Check the startup log after +# any change here. +# +# Take the live values from the previous host's compose file, NOT from the +# repo's .env.local: that file holds a mix of live and test credentials, and +# test-mode objects have different IDs to their live counterparts at both +# providers. + +# ── Core +DB_PATH=/data/hookdrop.db +PORT=8080 +API_URL=https://api.hookdrop.app +FRONTEND_URL=https://hookdrop.app +ALLOWED_ORIGIN=https://hookdrop.app +JWT_SECRET= +APP_VERSION= + +# ── Email (Resend) +RESEND_API_KEY= +EMAIL_FROM=hookdrop + +# ── Rate limiting (optional; defaults 30 / 5) +RATE_LIMIT_CAPACITY= +RATE_LIMIT_REFILL= + +# ── Lemon Squeezy (USD / international) +# TEST_MODE must match the API key in use. A test key only ever sees test +# data, and product IDs (1249xxx) look deceptively like variant IDs (195xxxx) +# — putting a product ID in a VARIANT var gives a 404 on the variant +# relationship. +LEMONSQUEEZY_TEST_MODE=false +LEMONSQUEEZY_API_KEY= +LEMONSQUEEZY_STORE_ID= +LEMONSQUEEZY_WEBHOOK_SECRET= +LEMONSQUEEZY_VARIANT_PRO_MONTHLY= +LEMONSQUEEZY_VARIANT_PRO_ANNUAL= + +# ── Paystack (NGN) +PAYSTACK_SECRET_KEY= +PAYSTACK_WEBHOOK_SECRET= +PAYSTACK_PLAN_PRO_MONTHLY= +PAYSTACK_PLAN_PRO_ANNUAL= + +# ── Backups (scripts/backup.sh → Cloudflare R2) +R2_ACCOUNT_ID= +R2_ACCESS_KEY_ID= +R2_SECRET_ACCESS_KEY= +R2_BUCKET= diff --git a/deploy/Caddyfile b/deploy/Caddyfile new file mode 100644 index 0000000..b225b40 --- /dev/null +++ b/deploy/Caddyfile @@ -0,0 +1,38 @@ +# TLS and reverse proxy for hookdrop. Lives at /etc/caddy/Caddyfile on the +# host; installed by scripts/provision.sh. +# +# Caddy obtains and renews Let's Encrypt certificates on its own, so there is +# no certbot and no renewal timer to forget. + +# The temporary hostname used to validate a new box before DNS is cut over, +# and to receive proxied traffic from the old box during propagation. Delete +# this block once the old host is decommissioned. +tmp-api.hookdrop.app, +api.hookdrop.app { + reverse_proxy localhost:8080 { + # SSE. Caddy buffers responses by default, which holds an event + # stream until the buffer fills — the stream connects and then + # appears to hang. -1 flushes every write straight through. + # (The app sets X-Accel-Buffering: no for nginx; Caddy ignores it.) + flush_interval -1 + + # An event stream is open for as long as the tab is. Without this + # Caddy closes it mid-stream. + transport http { + read_timeout 0 + } + } + + # The app reads the first X-Forwarded-For entry for per-IP rate limiting + # and for the payer IP recorded on checkout. Caddy sets that header by + # default; do not strip or overwrite it. + + encode gzip + + log { + output file /var/log/caddy/hookdrop.log { + roll_size 10mb + roll_keep 5 + } + } +} diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml new file mode 100644 index 0000000..c567f11 --- /dev/null +++ b/deploy/docker-compose.yml @@ -0,0 +1,41 @@ +# Production compose for hookdrop. Lives at /opt/hookdrop/docker-compose.yml +# on the host; installed by scripts/provision.sh. +# +# The Deploy workflow rewrites the `image:` line in place with +# sed -i "s|^\(\s*image:\).*|\1 $IMAGE:$TAG|" +# so that line must stay a plain top-level-indented `image:` with nothing +# after it on the same line. Do not add a comment to it. + +services: + hookdrop: + image: ghcr.io/eoeboh/hookdrop:latest + container_name: hookdrop + restart: unless-stopped + + # Bound to loopback on purpose. Caddy terminates TLS and proxies to it; + # the port is never reachable from outside the box. + ports: + - "127.0.0.1:8080:8080" + + # Secrets live in a 0600 file owned by deploy, not inline here. Keeping + # them out of this file is what lets it be tracked in git. + env_file: + - /opt/hookdrop/.env + + # The SQLite database and its WAL. This is the only durable state on the + # box; everything else is rebuilt from the image. + volumes: + - ./data:/data + + healthcheck: + test: ["CMD", "wget", "-qO-", "http://localhost:8080/health"] + interval: 30s + timeout: 5s + retries: 3 + start_period: 10s + + logging: + driver: json-file + options: + max-size: "10m" + max-file: "3" diff --git a/scripts/backup.sh b/scripts/backup.sh new file mode 100755 index 0000000..307c830 --- /dev/null +++ b/scripts/backup.sh @@ -0,0 +1,72 @@ +#!/bin/bash +# Back up the hookdrop SQLite database to Cloudflare R2. +# +# Run by the hookdrop-backup systemd timer installed by provision.sh, which +# supplies the environment from /opt/hookdrop/.env. Run it by hand to test: +# sudo systemctl start hookdrop-backup.service +# journalctl -u hookdrop-backup.service -n 50 +# +# Uses `sqlite3 .backup`, not `cp`. The database runs in WAL mode with a live +# writer attached, so copying the file gives you a torn snapshot missing +# whatever sits in the WAL. `.backup` takes a consistent one online, without +# stopping the container. + +set -euo pipefail + +APP_DIR="${APP_DIR:-/opt/hookdrop}" +DB="${DB:-$APP_DIR/data/hookdrop.db}" +BACKUP_DIR="${BACKUP_DIR:-$APP_DIR/backups}" +KEEP_LOCAL_DAYS="${KEEP_LOCAL_DAYS:-7}" + +: "${R2_ACCOUNT_ID:?set in $APP_DIR/.env}" +: "${R2_ACCESS_KEY_ID:?set in $APP_DIR/.env}" +: "${R2_SECRET_ACCESS_KEY:?set in $APP_DIR/.env}" +: "${R2_BUCKET:?set in $APP_DIR/.env}" + +STAMP="$(date -u +%Y%m%dT%H%M%SZ)" +NAME="hookdrop-$STAMP.db" +OUT="$BACKUP_DIR/$NAME" + +mkdir -p "$BACKUP_DIR" + +echo "→ snapshotting $DB" +# .timeout matches the app's own _busy_timeout. Without it a snapshot taken +# while a webhook is mid-write can lose the lock race and return SQLITE_BUSY, +# and the CLI does not retry on its own. +sqlite3 "$DB" ".timeout 10000" ".backup '$OUT'" + +# sqlite3 can exit 0 having written nothing. An empty or absent snapshot must +# fail the run loudly rather than be gzipped and uploaded as a real backup. +[ -s "$OUT" ] || { echo "✗ snapshot produced no file"; exit 1; } + +# A snapshot that will not open is not a backup. Catch it here, while the +# source database is still sitting right there, rather than during a restore. +echo "→ verifying" +result="$(sqlite3 -readonly "$OUT" 'PRAGMA integrity_check;')" +[ "$result" = "ok" ] || { echo "✗ integrity check failed: $result"; rm -f "$OUT"; exit 1; } +users="$(sqlite3 -readonly "$OUT" 'SELECT count(*) FROM users;')" +echo " ok — $users users, $(du -h "$OUT" | cut -f1)" + +# The snapshot inherits WAL journal mode from the source, so the two reads +# above created sidecar files next to it. They are empty and useless once the +# snapshot is closed, but nothing else removes them and they would pile up in +# this directory forever. +rm -f "$OUT-wal" "$OUT-shm" + +gzip -f "$OUT" +OUT="$OUT.gz" +NAME="$NAME.gz" + +echo "→ uploading to r2://$R2_BUCKET/$NAME" +AWS_ACCESS_KEY_ID="$R2_ACCESS_KEY_ID" \ +AWS_SECRET_ACCESS_KEY="$R2_SECRET_ACCESS_KEY" \ +AWS_DEFAULT_REGION=auto \ + aws s3 cp "$OUT" "s3://$R2_BUCKET/$NAME" \ + --endpoint-url "https://$R2_ACCOUNT_ID.r2.cloudflarestorage.com" \ + --only-show-errors + +echo "→ pruning local copies older than ${KEEP_LOCAL_DAYS}d" +find "$BACKUP_DIR" \( -name 'hookdrop-*.db.gz' -o -name 'hookdrop-*.db-wal' \ + -o -name 'hookdrop-*.db-shm' \) -mtime "+$KEEP_LOCAL_DAYS" -delete + +echo "✓ $NAME" diff --git a/scripts/provision.sh b/scripts/provision.sh new file mode 100755 index 0000000..1b6f313 --- /dev/null +++ b/scripts/provision.sh @@ -0,0 +1,202 @@ +#!/bin/bash +# Turn a bare Ubuntu box into a hookdrop host. +# +# Written to be run once per server and re-run safely: every step checks +# before it acts. It hardcodes no IP and no provider, because the point of +# having it is that the *next* migration costs an afternoon instead of a week. +# +# Usage, from a machine that can already SSH to the box as its default user +# (ubuntu on Oracle and GCP images, root on most other VPS providers): +# +# scp -r deploy scripts/provision.sh scripts/backup.sh ubuntu@:/tmp/ +# ssh ubuntu@ 'sudo bash /tmp/provision.sh' +# +# Then, separately, because they carry secrets: +# scp deploy/.env deploy@:/opt/hookdrop/.env +# ssh deploy@ 'chmod 600 /opt/hookdrop/.env' +# +# What it does NOT do: open the cloud provider's own firewall. On Oracle that +# is a VCN security list or NSG rule and has to be done in the console or via +# the OCI CLI. See the note under "firewall" below — getting only one of the +# two layers right is the classic way to lose an afternoon here. + +set -euo pipefail + +APP_DIR="${APP_DIR:-/opt/hookdrop}" +APP_USER="${APP_USER:-deploy}" +SRC_DIR="${SRC_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}" + +# The public half of the key the Deploy workflow authenticates with +# (repo secret DEPLOY_SSH_KEY). Pass it in rather than baking it in: +# DEPLOY_PUBKEY="ssh-ed25519 AAAA..." sudo -E bash provision.sh +DEPLOY_PUBKEY="${DEPLOY_PUBKEY:-}" + +log() { printf '\n\033[1m→ %s\033[0m\n' "$*"; } +have() { command -v "$1" >/dev/null 2>&1; } + +[ "$(id -u)" -eq 0 ] || { echo "run as root (sudo)"; exit 1; } + +# ── Packages ──────────────────────────────────────────────────────────────── +log "Base packages" +export DEBIAN_FRONTEND=noninteractive +apt-get update -qq +# awscli talks to R2 over the S3 API, for scripts/backup.sh. +apt-get install -y -qq ca-certificates curl gnupg sqlite3 rsync awscli \ + iptables-persistent netfilter-persistent + +# ── Docker ────────────────────────────────────────────────────────────────── +if have docker; then + log "Docker already installed ($(docker --version))" +else + log "Installing Docker Engine" + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | + gpg --dearmor -o /etc/apt/keyrings/docker.gpg + chmod a+r /etc/apt/keyrings/docker.gpg + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ +https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \ + >/etc/apt/sources.list.d/docker.list + apt-get update -qq + apt-get install -y -qq docker-ce docker-ce-cli containerd.io \ + docker-buildx-plugin docker-compose-plugin + systemctl enable --now docker +fi + +# ── Caddy ─────────────────────────────────────────────────────────────────── +if have caddy; then + log "Caddy already installed ($(caddy version | head -1))" +else + log "Installing Caddy" + curl -1sLf https://dl.cloudsmith.io/public/caddy/stable/gpg.key | + gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg + curl -1sLf https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt \ + >/etc/apt/sources.list.d/caddy-stable.list + apt-get update -qq + apt-get install -y -qq caddy +fi + +# ── Application user and layout ───────────────────────────────────────────── +log "User '$APP_USER' and $APP_DIR" +if ! id -u "$APP_USER" >/dev/null 2>&1; then + useradd --create-home --shell /bin/bash "$APP_USER" +fi +# Needs docker to run the deploy, and that is the whole of its privilege — +# no sudo. A deploy is a container restart, not root on the box. +usermod -aG docker "$APP_USER" + +install -d -o "$APP_USER" -g "$APP_USER" -m 0755 "$APP_DIR" \ + "$APP_DIR/data" "$APP_DIR/backups" + +if [ -n "$DEPLOY_PUBKEY" ]; then + install -d -o "$APP_USER" -g "$APP_USER" -m 0700 "/home/$APP_USER/.ssh" + touch "/home/$APP_USER/.ssh/authorized_keys" + grep -qxF "$DEPLOY_PUBKEY" "/home/$APP_USER/.ssh/authorized_keys" || + echo "$DEPLOY_PUBKEY" >>"/home/$APP_USER/.ssh/authorized_keys" + chown -R "$APP_USER:$APP_USER" "/home/$APP_USER/.ssh" + chmod 600 "/home/$APP_USER/.ssh/authorized_keys" +else + echo " ! DEPLOY_PUBKEY unset — add the Deploy workflow's public key to" + echo " /home/$APP_USER/.ssh/authorized_keys before the first deploy." +fi + +# ── Config ────────────────────────────────────────────────────────────────── +log "Installing compose and Caddyfile" +# Never clobber a live compose file: the Deploy workflow rewrites its image: +# line, so the copy on the box is ahead of the one in git by design. +if [ -f "$APP_DIR/docker-compose.yml" ]; then + echo " compose already present, left alone" +else + install -o "$APP_USER" -g "$APP_USER" -m 0644 \ + "$SRC_DIR/../deploy/docker-compose.yml" "$APP_DIR/docker-compose.yml" +fi + +install -m 0644 "$SRC_DIR/../deploy/Caddyfile" /etc/caddy/Caddyfile +install -d -o caddy -g caddy -m 0755 /var/log/caddy +caddy validate --config /etc/caddy/Caddyfile +systemctl reload caddy 2>/dev/null || systemctl restart caddy + +if [ ! -f "$APP_DIR/.env" ]; then + install -o "$APP_USER" -g "$APP_USER" -m 0600 \ + "$SRC_DIR/../deploy/.env.example" "$APP_DIR/.env" + echo " ! $APP_DIR/.env created from the example — fill it in before starting." +fi + +# ── Firewall ──────────────────────────────────────────────────────────────── +# Two layers, and the second one is the trap. Oracle's Ubuntu images ship an +# INPUT chain that REJECTs everything except SSH, and it persists across +# reboots — so with the VCN security list wide open, 443 is still a black +# hole and nothing in the console explains why. +# +# Rules are INSERTed ahead of that REJECT rather than the chain being flushed: +# on a box whose only access is SSH, a flush is how you lock yourself out. +log "Firewall (host layer)" +for port in 80 443; do + if iptables -C INPUT -p tcp --dport "$port" -j ACCEPT 2>/dev/null; then + echo " tcp/$port already allowed" + else + iptables -I INPUT 1 -p tcp --dport "$port" -m conntrack \ + --ctstate NEW,ESTABLISHED -j ACCEPT + echo " tcp/$port allowed" + fi +done +netfilter-persistent save >/dev/null +echo " ! Also open TCP 80 and 443 to 0.0.0.0/0 in the provider's own" +echo " firewall (Oracle: VCN security list or NSG). Both layers, or neither works." + +# ── Backups ───────────────────────────────────────────────────────────────── +log "Backup timer" +install -m 0755 "$SRC_DIR/backup.sh" "$APP_DIR/backup.sh" +chown "$APP_USER:$APP_USER" "$APP_DIR/backup.sh" + +cat >/etc/systemd/system/hookdrop-backup.service </etc/systemd/system/hookdrop-backup.timer <<'UNIT' +[Unit] +Description=Daily hookdrop database backup + +[Timer] +OnCalendar=daily +RandomizedDelaySec=30m +Persistent=true + +[Install] +WantedBy=timers.target +UNIT + +systemctl daemon-reload +systemctl enable --now hookdrop-backup.timer + +# ── Done ──────────────────────────────────────────────────────────────────── +log "Provisioned" +cat </health + 6. systemctl start hookdrop-backup.service # prove backups work now, + # not when you need one + +DONE From 858a7e187f671af22c0bcf979a71085cb3527853 Mon Sep 17 00:00:00 2001 From: EOEboh Date: Sat, 5 Sep 2026 13:05:00 +0100 Subject: [PATCH 3/4] chore: stop tracking the local SQLite database hookdrop.db and its -wal/-shm were tracked, generating constant diff noise and having at least once silently blocked a git pull. They are a local dev artifact; production's database lives on the server. Removed from the index and ignored, leaving the files on disk. --- .gitignore | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index 1f51869..348dde1 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,10 @@ ui/.env # CLI build artifacts cli/dist/ + +# SQLite database and its WAL. Tracked once by accident; they generate +# constant diff noise and have silently blocked a git pull. +hookdrop.db +hookdrop.db-wal +hookdrop.db-shm +*.db.gz From 3c6a0feddfb0d263099bfcc95a5a3a3f83cd349d Mon Sep 17 00:00:00 2001 From: EOEboh Date: Sat, 5 Sep 2026 13:12:59 +0100 Subject: [PATCH 4/4] fix(deploy): resolve provision paths from the repo root, phase the Caddyfile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two things that would have failed on first use. provision.sh resolved deploy/ as $SRC_DIR/../deploy, which is only correct when the script sits in a repo checkout — but its own usage note said to scp it flat into /tmp, where it resolved to /deploy and failed with a confusing error from install(1). The repo root is now resolved explicitly (overridable via REPO_DIR), every input is checked before the script touches the box, and the usage note says to clone the repo, which is public. The Caddyfile named api.hookdrop.app alongside the temporary hostname. Caddy requests a certificate for every hostname it loads, so while that record still points at the old host the ACME challenge is answered there and fails — and Let's Encrypt rate-limits failed validations to 5 per hostname per hour. The shared config is now a snippet, and the real hostname is commented out until DNS points here. Both phases validated with caddy validate --adapter caddyfile. caddy validate also now names the adapter explicitly. --- deploy/Caddyfile | 28 +++++++++++++++++++++++----- scripts/provision.sh | 39 +++++++++++++++++++++++++++++---------- 2 files changed, 52 insertions(+), 15 deletions(-) diff --git a/deploy/Caddyfile b/deploy/Caddyfile index b225b40..1c355dc 100644 --- a/deploy/Caddyfile +++ b/deploy/Caddyfile @@ -3,12 +3,15 @@ # # Caddy obtains and renews Let's Encrypt certificates on its own, so there is # no certbot and no renewal timer to forget. +# +# This file is deliberately in two phases. Caddy tries to get a certificate +# for every hostname named here, as soon as it loads. While api.hookdrop.app +# still resolves to the OLD host, its ACME challenge is answered by that host +# and fails — repeatedly, and Let's Encrypt rate-limits failed validations +# (5 per hostname per hour). So the real hostname stays commented out until +# DNS actually points here. -# The temporary hostname used to validate a new box before DNS is cut over, -# and to receive proxied traffic from the old box during propagation. Delete -# this block once the old host is decommissioned. -tmp-api.hookdrop.app, -api.hookdrop.app { +(hookdrop) { reverse_proxy localhost:8080 { # SSE. Caddy buffers responses by default, which holds an event # stream until the buffer fills — the stream connects and then @@ -36,3 +39,18 @@ api.hookdrop.app { } } } + +# ── Phase 1: validating the new box, before any DNS change ────────────────── +# Point tmp-api.hookdrop.app at this box and everything can be exercised here +# while the old host still serves production. Also receives the old host's +# proxied traffic during the cutover. Delete once the old host is gone. +tmp-api.hookdrop.app { + import hookdrop +} + +# ── Phase 2: after the A record for api.hookdrop.app points HERE ──────────── +# Uncomment, then: sudo caddy validate --adapter caddyfile --config /etc/caddy/Caddyfile +# sudo systemctl reload caddy +#api.hookdrop.app { +# import hookdrop +#} diff --git a/scripts/provision.sh b/scripts/provision.sh index 1b6f313..84b1bb2 100755 --- a/scripts/provision.sh +++ b/scripts/provision.sh @@ -5,11 +5,16 @@ # before it acts. It hardcodes no IP and no provider, because the point of # having it is that the *next* migration costs an afternoon instead of a week. # -# Usage, from a machine that can already SSH to the box as its default user -# (ubuntu on Oracle and GCP images, root on most other VPS providers): +# Usage, on the box itself, as its default user (ubuntu on Oracle and GCP +# images, root on most other VPS providers). The repo is public, so cloning it +# needs no credentials and keeps provision.sh next to the deploy/ directory it +# installs from: # -# scp -r deploy scripts/provision.sh scripts/backup.sh ubuntu@:/tmp/ -# ssh ubuntu@ 'sudo bash /tmp/provision.sh' +# git clone https://github.com/EOEboh/hookdrop.git ~/hookdrop +# sudo DEPLOY_PUBKEY="ssh-ed25519 AAAA..." bash ~/hookdrop/scripts/provision.sh +# +# To run it from a checkout laid out differently, point REPO_DIR at the repo +# root explicitly. # # Then, separately, because they carry secrets: # scp deploy/.env deploy@:/opt/hookdrop/.env @@ -24,7 +29,12 @@ set -euo pipefail APP_DIR="${APP_DIR:-/opt/hookdrop}" APP_USER="${APP_USER:-deploy}" -SRC_DIR="${SRC_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +# The repo root, which must contain deploy/. Resolved rather than assumed: +# running this as a loose file in /tmp used to make deploy/ resolve to /deploy +# and fail with a confusing "no such file" from install(1). +REPO_DIR="${REPO_DIR:-$(cd "$SCRIPT_DIR/.." && pwd)}" +DEPLOY_SRC="$REPO_DIR/deploy" # The public half of the key the Deploy workflow authenticates with # (repo secret DEPLOY_SSH_KEY). Pass it in rather than baking it in: @@ -36,6 +46,15 @@ have() { command -v "$1" >/dev/null 2>&1; } [ "$(id -u)" -eq 0 ] || { echo "run as root (sudo)"; exit 1; } +for f in "$DEPLOY_SRC/docker-compose.yml" "$DEPLOY_SRC/Caddyfile" \ + "$DEPLOY_SRC/.env.example" "$SCRIPT_DIR/backup.sh"; do + [ -f "$f" ] || { + echo "missing: $f" + echo "Run this from a repo checkout, or set REPO_DIR to the repo root." + exit 1 + } +done + # ── Packages ──────────────────────────────────────────────────────────────── log "Base packages" export DEBIAN_FRONTEND=noninteractive @@ -107,17 +126,17 @@ if [ -f "$APP_DIR/docker-compose.yml" ]; then echo " compose already present, left alone" else install -o "$APP_USER" -g "$APP_USER" -m 0644 \ - "$SRC_DIR/../deploy/docker-compose.yml" "$APP_DIR/docker-compose.yml" + "$DEPLOY_SRC/docker-compose.yml" "$APP_DIR/docker-compose.yml" fi -install -m 0644 "$SRC_DIR/../deploy/Caddyfile" /etc/caddy/Caddyfile +install -m 0644 "$DEPLOY_SRC/Caddyfile" /etc/caddy/Caddyfile install -d -o caddy -g caddy -m 0755 /var/log/caddy -caddy validate --config /etc/caddy/Caddyfile +caddy validate --adapter caddyfile --config /etc/caddy/Caddyfile systemctl reload caddy 2>/dev/null || systemctl restart caddy if [ ! -f "$APP_DIR/.env" ]; then install -o "$APP_USER" -g "$APP_USER" -m 0600 \ - "$SRC_DIR/../deploy/.env.example" "$APP_DIR/.env" + "$DEPLOY_SRC/.env.example" "$APP_DIR/.env" echo " ! $APP_DIR/.env created from the example — fill it in before starting." fi @@ -145,7 +164,7 @@ echo " firewall (Oracle: VCN security list or NSG). Both layers, or neither w # ── Backups ───────────────────────────────────────────────────────────────── log "Backup timer" -install -m 0755 "$SRC_DIR/backup.sh" "$APP_DIR/backup.sh" +install -m 0755 "$SCRIPT_DIR/backup.sh" "$APP_DIR/backup.sh" chown "$APP_USER:$APP_USER" "$APP_DIR/backup.sh" cat >/etc/systemd/system/hookdrop-backup.service <