Project Layout
This page is the canonical source of truth for repository and module layout in this project.
Repository Root
AGENTS.mdmkdocs.yml: canonical MkDocs configuration for project docsdocs/: canonical project-local documentationscript/: root orchestration scripts for local start, stop, deploy, and env materialization.sops.yaml: SOPS creation rules for encrypted env filessecrets/: encrypted source of truth for module env fileswhatsapp-adapter-waha/whatsapp-adapter-api/whatsapp-adapter-app/whatsapp-adapter-docs/
Module Ownership
whatsapp-adapter-waha/owns the vendor WAHA runtime, session storage, media storage, and recovery scripts.whatsapp-adapter-api/owns the stable external REST contract, raw OpenAPI files underwhatsapp-adapter-api/openapi/, group registry, and WAHA integration logic.whatsapp-adapter-app/owns the operator-facing web experience, SimpleAuth integration, and operator workflows.whatsapp-adapter-docs/owns the deployable docs container packaging the canonical rootdocs/source.- Cross-module orchestration belongs to root
script/.
Dependency Direction
- External clients call
whatsapp-adapter-api. - Operators use
whatsapp-adapter-app. whatsapp-adapter-appcallswhatsapp-adapter-api.whatsapp-adapter-apicallswhatsapp-adapter-waha.whatsapp-adapter-wahastays behind the internal Docker network and is not the public contract.whatsapp-adapter-docspublishes the canonical root docs and does not own documentation content.
Service Module Layout
Each service module contains:
Dockerfiledocker-compose.yml.env.example.env.local: materialized local runtime artifact.env.server: materialized deploy runtime artifactREADME.mddata/logs/conf/scripts/<module>-start.shscripts/<module>-stop.shscripts/<module>-deploy.sh
Notes
- Keep project docs in root
docs/. - Keep encrypted module env files in
secrets/local/<module>.envandsecrets/prod/<module>.env. - Use the full project-prefixed module name for each deployable container directory.
- Keep runtime state inside the owning module.
- Update this page when module ownership or dependency direction changes.