Source for alkval.com, served by Nginx through a Cloudflare Tunnel with no public router ports.
site/contains the static portfolio and its assets.docker-compose.ymlruns Nginx and the existing Cloudflare Tunnel.scripts/anddeploy/provide automatic production updates.
The production tunnel token is stored only in /DATA/AppData/portfolio/secrets/tunnel-token and is excluded from Git.
Production checks GitHub main every minute. It updates only when the commit changes, uses a deployment lock, verifies the Nginx container after updating, and rolls back the checkout if the health check fails.
Install the updater once on the Pop!_OS host as alkval:
cd /DATA/AppData/portfolio
bash scripts/install-autodeploy.shAfter installation, publishing a commit to main is sufficient to update the live portfolio.