mirror of
https://github.com/m1ngsama/automa.git
synced 2026-02-08 06:24:05 +00:00
Add infrastructure layer with following components: **Reverse Proxy & SSL:** - Caddy: Auto HTTPS with Let's Encrypt, simple configuration - Caddyfile with reverse proxy rules for Nextcloud and Grafana **Monitoring Stack (Observability):** - Prometheus: Metrics collection and time-series database - Grafana: Visualization dashboards with datasource provisioning - Loki: Lightweight log aggregation - Promtail: Log collection agent for Docker containers - cAdvisor: Container resource monitoring **Automation:** - Watchtower: Automatic Docker image updates (label-based) - Duplicati: Remote backup with web UI and encryption support **Security:** - Fail2ban: Intrusion prevention and IP banning **Key Features:** - All services use official Alpine-based images (lightweight) - Network isolation (automa-proxy, automa-monitoring) - Resource limits and health checks configured - Read-only configs where applicable - Comprehensive README with setup instructions **Resource Usage:** - Total additional overhead: ~1.5GB RAM, ~16GB disk - Follows KISS principles and Unix philosophy - All services replaceable and independently scalable Refs: #3
42 lines
809 B
YAML
42 lines
809 B
YAML
services:
|
|
caddy:
|
|
image: caddy:2-alpine
|
|
container_name: automa-caddy
|
|
restart: unless-stopped
|
|
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
- "443:443/udp" # HTTP/3
|
|
|
|
volumes:
|
|
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
|
- caddy_data:/data
|
|
- caddy_config:/config
|
|
|
|
environment:
|
|
- DOMAIN=${DOMAIN:-example.com}
|
|
|
|
networks:
|
|
- automa-proxy
|
|
|
|
labels:
|
|
- "com.automa.service=caddy"
|
|
- "com.centurylinklabs.watchtower.enable=true"
|
|
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--spider", "-q", "http://localhost:2019/config/"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
volumes:
|
|
caddy_data:
|
|
name: automa_caddy_data
|
|
caddy_config:
|
|
name: automa_caddy_config
|
|
|
|
networks:
|
|
automa-proxy:
|
|
name: automa-proxy
|
|
external: true
|