Remote Server
This page owns the production host layout and deploy assumptions for ab-ticket-bot.
Target Host
- default remote host:
mathbox.90.cz - default remote user:
agent - deploy root:
/home/agent/docker_deployments/ab-ticket-bot
Remote Module Directories
- jobs module:
/home/agent/docker_deployments/ab-ticket-bot/ab-ticket-bot-jobs - docs module:
/home/agent/docker_deployments/ab-ticket-bot/ab-ticket-bot-docs
Each module owns its own docker-compose.yml, Dockerfile, .env.server, data/, logs/,
and conf/.
Deploy Workflow
- Root
scripts/deploy.shmaterializes.env.serverfromsecrets/prod/<module>.env. - The module-local deploy script uploads the full module directory to the remote module path.
- Remote execution runs the same module-local deploy script with
PROJECT_REMOTE_EXEC=1. - Runtime UID:GID on the host is derived from
id -uandid -gof the remoteagentuser. - The local plaintext
.env.serveris deleted after deploy finishes.
Exposure Model
ab-ticket-bot-jobsis not an HTTP service and has no public endpoint.ab-ticket-bot-docsis locally bound on the server at127.0.0.1:18081.- public docs URL:
https://ab-ticket-bot-docs.mathbox.90.cz/. - HAProxy terminates TLS and routes
ab-ticket-bot-docs.mathbox.90.czto127.0.0.1:18081. - the TLS certificate is issued by Let's Encrypt for
ab-ticket-bot-docs.mathbox.90.czand renewed by the server certbot timer. - post-deploy verification should check
https://ab-ticket-bot-docs.mathbox.90.cz/andhttps://ab-ticket-bot-docs.mathbox.90.cz/healthz.
Runtime Ownership
- application processes run as a non-root numeric user through
HOST_UIDandHOST_GID - bind-mounted
data/andlogs/must remain writable by that user - if ownership drifts, fix it before the next start or deploy