Enhance Makefile with infrastructure service management: **New Commands:** - `network-create`: Create Docker networks (automa-proxy, automa-monitoring) - `network-remove`: Remove Docker networks - `infra-up`: Start all infrastructure services (Caddy, monitoring, etc.) - `infra-down`: Stop all infrastructure services - `infra-status`: Check status of infrastructure services - `up`: Start infrastructure + all application services - `down`: Stop all services + infrastructure **Command Structure:** ``` make network-create # Setup networks first make infra-up # Start infrastructure make all-up # Start applications # Or simply: make up (does all above) ``` **Infrastructure Services Managed:** 1. Caddy (reverse proxy) 2. Monitoring stack (Prometheus, Grafana, Loki, Promtail, cAdvisor) 3. Watchtower (auto-updates) 4. Duplicati (backups) 5. Fail2ban (security) **Improvements:** - Hierarchical service management (infra → apps) - Graceful shutdown order (apps → infra) - Network prerequisites automatically checked - Enhanced help text with categorized commands - Consistent error handling Follows Unix philosophy: compose simple commands for complex workflows. Refs: #4 |
||
|---|---|---|
| bin | ||
| minecraft | ||
| nextcloud | ||
| teamspeak | ||
| .gitignore | ||
| config.sh | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
Automa
A collection of self-hosted service automation tools following the Unix philosophy: do one thing well, be composable, and stay simple.
Philosophy
This project embraces Unix principles:
- Modularity: Each service is self-contained
- Simplicity: Minimal dependencies, clear configuration
- Composability: Tools work together through standard interfaces
- Transparency: Plain text configuration, readable scripts
Services
Minecraft Server
Automated Minecraft Fabric server deployment with mod management.
Location: minecraft/
Quick Start:
cd minecraft
cp .env.example .env # Edit as needed
docker compose up -d
See minecraft/README.md for details.
TeamSpeak Server
Voice communication server with minimal configuration.
Location: teamspeak/
Quick Start:
cd teamspeak
cp .env.example .env # Edit as needed
docker compose up -d
See teamspeak/README.md for details.
Nextcloud
Self-hosted file sync and collaboration platform.
Location: nextcloud/
Quick Start:
cd nextcloud
cp .env.example .env # Edit as needed
docker compose up -d
See nextcloud/README.md for details.
Utilities
Organization Repository Cloner
Batch clone all repositories from a GitHub organization.
Location: bin/org-clone.sh
Usage:
./bin/org-clone.sh <org-name>
Prerequisites
- Docker & Docker Compose
- Bash 4.0+
- Git
Project Structure
automa/
├── bin/ # Utility scripts
│ └── org-clone.sh # GitHub org repo cloner
├── minecraft/ # Minecraft server setup
├── teamspeak/ # TeamSpeak server setup
├── nextcloud/ # Nextcloud setup
└── README.md # This file
Common Operations
All services follow consistent patterns:
Start a Service
cd <service-name>
docker compose up -d
View Logs
cd <service-name>
docker compose logs -f
Stop a Service
cd <service-name>
docker compose down
Update a Service
cd <service-name>
docker compose pull
docker compose up -d
Security Notes
- Always change default passwords in
.envfiles - Keep
.envfiles out of version control - Use strong passwords for production deployments
- Review exposed ports before deployment
Contributing
Contributions welcome. Keep changes:
- Simple and focused
- Well-documented
- Following existing patterns
- Unix philosophy aligned
License
MIT License - See LICENSE file for details.