No description
Find a file
m1ngsama e1e5019097 feat: add infrastructure management commands to Makefile
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
2026-01-19 16:32:29 +08:00
bin fix: improve backup script error handling and validation 2025-12-15 10:00:00 +08:00
minecraft refactor: extract shared utilities into common library 2025-12-13 10:00:00 +08:00
nextcloud feat(nextcloud): add local nextcloud docker compose setup 2025-11-18 16:47:11 +08:00
teamspeak feat: add TeamSpeak environment template 2025-12-05 11:45:00 +08:00
.gitignore chore: add project infrastructure files 2025-12-02 10:00:00 +08:00
config.sh feat: centralize configuration and improve Makefile 2025-12-14 10:00:00 +08:00
LICENSE chore: add project infrastructure files 2025-12-02 10:00:00 +08:00
Makefile feat: add infrastructure management commands to Makefile 2026-01-19 16:32:29 +08:00
README.md docs: add comprehensive project README 2025-12-03 14:30:00 +08:00

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 .env files
  • Keep .env files 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.