Project Standard (Adding a New Service)
This guide defines the engineering standards and protocols for contributing to the infrastructure.
️ The Autonomous Project Protocol
Any service added to this infrastructure must adhere to the Modular Orchestration Protocol. This ensures that the global orchestrator (run.sh) can discover, configure, and manage the service automatically.
Project Structure Requirements
A project directory must contain:
project.conf: Metadata for the local orchestrator (priority, persistence, enable/disable).docker-compose.yml: Container definition (attach to the shared network fromDOCKER_NETWORK_NAME)..env.template(preferred) or.env.example: Variables required by the service.run.sh: Optional wrapper for service-local commands (the repo uses./infra.shas the main entrypoint).
Tutorial: Adding a New Service
1. Create the Directory
Place your project in the appropriate category folder (e.g., processing/my-new-app).
2. Connect to the shared network
Use the shared network from root .env (DOCKER_NETWORK_NAME).
3. Integrate with env generation
- Put non-secret defaults in
./<project>/.env.template. - Reference global secrets via
${GLOBAL_*}placeholders when needed. ./infra.sh env generateshould produce./<project>/.envwithout manual edits.
️ Global Tooling for Developers
./infra.sh env checkvalidates missing keys../infra.sh test healthruns safe checks../infra.sh test infraruns a full destructive validation.