Commit Graph

15 Commits

Author SHA1 Message Date
timothykim a45813db35 cache secrets to file, fix spinner animation 2026-03-16 22:06:47 -04:00
timothykim 98aa8e7727 use workflow dispatch api instead of deploy-trigger file 2026-03-16 21:54:19 -04:00
timothykim 99a4a4b3ea cache bitwarden secrets in env vars to skip unlock on repeated runs 2026-03-16 21:22:53 -04:00
timothykim 7df77db7b3 fix new-app: retry build trigger, clean up temp nginx conf, add remove-app script 2026-03-16 21:07:34 -04:00
timothykim 8a30405d18 add hantim.net
Deploy hantim.net / deploy (push) Failing after 1s
Deploy nginx / deploy (push) Failing after 1s
2026-03-16 18:09:23 -04:00
timothykim 9a950524eb add cert command to deploy.sh, use deploy user for cert issuance
- deploy.sh: add cert-<domain> command for zero-downtime SSL issuance
- new-app.sh: SSH as deploy user with key from Bitwarden instead of personal user
- remove DEPLOY_USER/DEPLOY_HOST env var requirements
- update all docs to reflect new flow
2026-03-16 02:05:18 -04:00
timothykim b51fe596c6 automate new-app.sh: DNS, cert, commit, build, verify
- resolve server IP from hantim.net instead of env var
- create Vultr DNS zone and A records via API
- wait for DNS propagation before cert issuance
- issue SSL cert via webroot (zero downtime)
- auto commit and push hantim-server
- trigger initial app build via Gitea API
- verify site is live with curl check
- update all docs to reflect single-command flow
2026-03-16 01:57:10 -04:00
timothykim 5c38b0631a replace NPM with vanilla nginx + certbot
Deploy nginx / deploy (push) Failing after 3s
Deploy timothykim.net / deploy (push) Successful in 3s
- nginx:alpine replaces nginx-proxy-manager
- certbot on host with standalone issuance and auto-renewal
- per-site nginx configs in conf.d/ (HTTP->HTTPS, bare->www)
- container names use underscores (timothykim_net)
- setup.sh: automated cert issuance, dynamic app startup
- deploy.sh: nginx -t guard, graceful image-not-found
- new-app.sh: Gitea API repo creation, nginx conf generation
- add ARCHITECTURE.md, USECASES.md, CLAUDE.md
- remove old NPM data/certs from tracking
2026-03-16 00:55:13 -04:00
timothykim b96e94afa6 use vars.DEPLOY_HOST instead of secrets since hostname is not sensitive 2026-03-15 21:49:29 -04:00
timothykim 5dd2343d4a migrate to hantim org and consolidate deploy secret name
Deploy timothykim.net / deploy (push) Failing after 3s
- Update all references from timothykim/ to hantim/ org
- Rename DEPLOY_KEY to DEPLOY_SSH_KEY everywhere
- Update README to reference org-level secrets
2026-03-15 21:46:31 -04:00
timothykim eff589c3de switch deploy workflows from appleboy/ssh-action to raw ssh
appleboy/ssh-action's script parameter doesn't set
SSH_ORIGINAL_COMMAND, which deploy.sh needs. Using raw ssh
with the command as an argument works correctly.
2026-03-13 17:10:37 -04:00
timothykim 7d5f0920b7 replace per-app deploy scripts with generic deploy.sh
Dispatch now validates the command format and routes to a single
deploy.sh that handles any app. This fixes first-deploy failures
for new apps (dispatch no longer needs a static case list) and
simplifies new-app.sh (no deploy script or dispatch update needed).

Also adds input validation to new-app.sh, set -euo pipefail to
deploy scripts, and dnf module reset before nodejs install.
2026-03-13 17:00:59 -04:00
timothykim a3cb7680f3 use sudo for deploy scripts instead of chown on repo
The deploy user runs scripts as root via passwordless sudo,
avoiding ownership conflicts with Docker-mounted volumes.
2026-03-13 15:58:42 -04:00
timothykim 7a5de9be6d change repo path from /opt to /opt/hantim
/opt already exists on Linux systems and git clone refuses to clone
into a non-empty directory.
2026-03-13 11:52:51 -04:00
timothykim a3fb085fdb initial commit
Deploy nginx / deploy (push) Failing after 1s
Deploy timothykim.net / deploy (push) Failing after 1s
2026-03-12 21:16:59 -04:00