This page explains how the production instance is laid out, what the GitHub Actions deploy job does, and which commands are useful when something looks wrong.
Client -> Caddy :443 / :80 -> reverse_proxy 127.0.0.1:8000 -> FastAPI container (wordtoken) -> Hugging Face cache volume -> XLM-RoBERTa + BiLSTM + CRF inference
The public site terminates TLS in Caddy. The API container is only bound on loopback, so traffic reaches it through the reverse proxy and not directly from the internet.
wordtoken_huggingface_cache.main./opt/wordtoken over SSH.http://127.0.0.1:8000/health to return successfully before completing.| Name | Use |
|---|---|
DEPLOY_SSH_KEY |
Private key used by the workflow to SSH into the production host. |
DEPLOY_HOST |
Production IPv4 or hostname. |
DEPLOY_USER |
SSH user on the target server. |
DEPLOY_PORT |
SSH port, typically 22. |
DEPLOY_PATH |
Remote application directory, usually /opt/wordtoken. |
SITE_URL |
Public health-check target used after deploy, for example https://wordtoken.ygn.app. |
docker logs --tail=200 wordtoken docker ps curl -sS http://127.0.0.1:8000/health systemctl status caddy journalctl -u caddy -n 100 --no-pager
systemctl status caddy and ensure DNS still points to the server.