Project Layout
This page is the canonical source of truth for repository and module layout in this project.
Repository Root
AGENTS.md: short mandatory instructions for agentsmkdocs.yml: canonical MkDocs configurationdocs/: canonical project documentation source.sops.yaml: SOPS creation rules for encrypted env filessecrets/: encrypted source of truth for module env filesscripts/: root orchestration and shared helper scriptsab-ticket-bot-jobs/: deployable worker moduleab-ticket-bot-docs/: deployable docs packaging module
Module Naming
- the project slug is
ab-ticket-bot - deployable modules are named
ab-ticket-bot-jobsandab-ticket-bot-docs - Docker image names, container names, compose project names, and operational scripts reuse the exact module directory name
Root Scripts
scripts/start.sh: starts all modules in dependency orderscripts/stop.sh: stops all modules in reverse orderscripts/deploy.sh: materializes production env files and deploys all modulesscripts/materialize-secret.sh: renders one module env file fromsecrets/scripts/sops-common.sh: shared SOPS helper functionsscripts/remote-deploy-common.sh: shared remote tar and SSH deploy helper
Jobs Module Layout
ab-ticket-bot-jobs/ owns:
Dockerfiledocker-compose.yml.env.example.env.localand.env.serveras materialized runtime filesREADME.mdab_ticket_bot_jobs/data/logs/conf/scripts/ab-ticket-bot-jobs-common.shscripts/ab-ticket-bot-jobs-start.shscripts/ab-ticket-bot-jobs-stop.shscripts/ab-ticket-bot-jobs-deploy.sh
Docs Module Layout
ab-ticket-bot-docs/ owns:
Dockerfiledocker-compose.yml.env.example.env.localand.env.serveras materialized runtime filesREADME.mdserve_docs.pybuild-context/as generated packaging input copied from rootdocs/andmkdocs.ymldata/logs/conf/scripts/ab-ticket-bot-docs-common.shscripts/ab-ticket-bot-docs-start.shscripts/ab-ticket-bot-docs-stop.shscripts/ab-ticket-bot-docs-deploy.sh
Secret Layout
- local secrets:
secrets/local/<module>.env - production secrets:
secrets/prod/<module>.env - source of truth stays encrypted under
secrets/ - materialized
.env.localand.env.serverare runtime artifacts and must not be committed