Commit Graph

31 Commits

Author SHA1 Message Date
timothykim 33040a487b pass SSH_ORIGINAL_COMMAND as argument to deploy.sh in authorized_keys
sudo strips environment variables, so SSH_ORIGINAL_COMMAND wasn't
reaching deploy.sh. Pass it explicitly as a shell argument instead.
2026-03-13 17:12:30 -04:00
timothykim 21974656cd rename timothykim container
Deploy timothykim.net / deploy (push) Failing after 1s
2026-03-13 17:11:12 -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 c9fed26503 rename nginx container back to nginx-proxy-manager
Deploy nginx / deploy (push) Failing after 2s
2026-03-13 17:09:11 -04:00
timothykim c484109f1c merge dispatch and deploy into a single deploy.sh
deploy.sh reads SSH_ORIGINAL_COMMAND directly, validates it, and
runs the deploy. No more dispatch indirection.
2026-03-13 17:08:19 -04:00
timothykim f1d4508411 update container names for nginx and timothykim.net
Deploy nginx / deploy (push) Failing after 2s
Deploy timothykim.net / deploy (push) Failing after 2s
2026-03-13 17:02:26 -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 587b671e61 add container_name to nginx compose
Deploy nginx / deploy (push) Successful in 7s
2026-03-13 16:04:18 -04:00
timothykim 2d793e787c remove container_name from timothykim.net compose
Deploy timothykim.net / deploy (push) Successful in 4s
2026-03-13 16:00:30 -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 e53ac6324a add container_name to timothykim.net compose
Deploy timothykim.net / deploy (push) Failing after 2s
2026-03-13 15:52:03 -04:00
timothykim 79615c6295 fix execute permission on setup.sh 2026-03-13 15:50:25 -04:00
timothykim 21162432b9 fix execute permissions on deploy scripts 2026-03-13 15:50:10 -04:00
timothykim 5fea868a57 revert container_name change for clean deploy test
Deploy timothykim.net / deploy (push) Failing after 3s
2026-03-13 15:47:28 -04:00
timothykim 4467a6b2c4 add /opt/hantim as git safe.directory for deploy user 2026-03-13 15:45:31 -04:00
timothykim 7a1434c465 add container_name to timothykim.net compose
Deploy timothykim.net / deploy (push) Failing after 2s
2026-03-13 15:42:19 -04:00
timothykim c528573b49 use full path for bw CLI since /usr/local/bin may not be in PATH 2026-03-13 14:54:41 -04:00
timothykim d3d93a61b7 move git checkout before git-crypt unlock
git-crypt refuses to unlock if the working directory is dirty.
2026-03-13 13:12:08 -04:00
timothykim 9fdee2e54b restore git-tracked files before starting services
Protects against a previous failed run where services started with
encrypted/missing files and overwrote them (e.g. NPM database).
2026-03-13 13:10:34 -04:00
timothykim 93b940fd76 add bw sync before fetching git-crypt key 2026-03-13 13:03:02 -04:00
timothykim bb371a53c4 add dnf upgrade at start of setup to update system packages 2026-03-13 12:45:27 -04:00
timothykim 4fea2e7510 use nodejs:20 module stream instead of default nodejs 16
The default npm/nodejs on Rocky 9 is v16 which is too old for the
Bitwarden CLI (WASM/getrandom crash).
2026-03-13 12:43:59 -04:00
timothykim c8976e0a22 always run git-crypt unlock instead of trying to detect lock state 2026-03-13 12:29:01 -04:00
timothykim bb45d3ef2f fix git-crypt unlock detection
Check for .git/git-crypt/keys directory which only exists after
unlock, instead of parsing git-crypt status output which shows
"encrypted:" regardless of lock state.
2026-03-13 12:25:18 -04:00
timothykim c484cb9d49 fix git-crypt status check and remove pre-created docker network
git-crypt status outputs "    encrypted:" not "***ENCRYPTED***".
The shared docker network is created by nginx's compose file, so
pre-creating it caused a label mismatch that prevented containers
from starting.
2026-03-13 12:23:20 -04:00
timothykim b89ab5f36e make setup.sh idempotent so it can be safely re-run 2026-03-13 12:19:24 -04:00
timothykim e87473e303 use bash to invoke setup.sh since it's not executable after clone 2026-03-13 12:14:00 -04:00
timothykim 34d6ad3e9d simplify provisioning: setup.sh handles deps and git-crypt unlock
setup.sh now installs git-crypt, Bitwarden CLI, and fetches the
git-crypt key from a Bitwarden secure note. Initial setup is reduced
to just installing git, cloning, and running setup.sh.
2026-03-13 12:12:13 -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 1220698292 test 2026-03-13 11:41:00 -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