Definitions for containers and container stacks
infra.sys.container-fleet
Compose stack definitions for self-hosting apps on workstations and servers
A library of 26 compose-based apps for container runtimes like Podman. Deploy self-hosted services quickly.
Structure
containers/apps/ # 26 container apps
├── traefik/ # Reverse proxy (deploy first)
├── komodo/ # Container management
├── adguardhome/
└── ... (26 total)
├── moon.yml # App metadata
├── compose.yml # Standardized compose
├── .env.example # Environment template
├── README.md # Terse docs
└── scripts/ # Symlinks to root scripts
infra/ansible/ # Deployment automation
├── playbooks/
│ ├── deploy-stack.yml # Deploy single app
│ └── deploy-all.yml # Deploy by category
└── roles/
scripts/ # Root-level utilities
├── deploy.sh # Idempotent deployment
├── secrets.sh # Bitwarden Secrets Manager
└── test.sh # Dagger test wrapper
dagger/ # Testing framework
Requirements
- Podman and podman-compose
- Or Docker and Docker Compose
Deploying Apps
Warning
All apps route through Traefik for reverse proxy and TLS termination; deploy Traefik first for those features to work.
Ansible (Recommended)
Single app:
ansible-playbook infra/ansible/playbooks/deploy-stack.yml -e stack_path=traefik
By category:
ansible-playbook infra/ansible/playbooks/deploy-all.yml -e category=infrastructure
CLI Direct
cd containers/apps/traefik
podman-compose -d up
Management UI
Deploy Komodo (replaces Portainer) alongside Traefik for web-based container management.
Container Config
Sensitive configs live outside this repo. Each app's config/ directory syncs to .private-config/ submodule and persists to a private remote.
Sync configs outward (app to submodule):
ansible-playbook infra/ansible/playbooks/backup-private-config.yml
Sync configs inward (submodule to app):
ansible-playbook infra/ansible/playbooks/rehydrate-private-config.yml
Fetch secrets from Bitwarden:
cd containers/apps/traefik && ./scripts/secrets.sh fetch traefik
Testing
Test compose syntax and runtime:
cd dagger && go run main.go -stack traefik