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
33 lines
771 B
YAML
33 lines
771 B
YAML
services:
|
|
duplicati:
|
|
image: lscr.io/linuxserver/duplicati:latest
|
|
container_name: automa-duplicati
|
|
restart: unless-stopped
|
|
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=${TZ:-Asia/Shanghai}
|
|
|
|
volumes:
|
|
- duplicati_config:/config
|
|
- ../../backups:/source:ro # Read-only access to local backups
|
|
|
|
ports:
|
|
- "127.0.0.1:8200:8200" # Only accessible locally
|
|
|
|
labels:
|
|
- "com.automa.service=duplicati"
|
|
- "com.centurylinklabs.watchtower.enable=true"
|
|
|
|
volumes:
|
|
duplicati_config:
|
|
name: automa_duplicati_config
|
|
|
|
# Setup:
|
|
# 1. Open http://localhost:8200
|
|
# 2. Add backup job
|
|
# 3. Source: /source (local backups)
|
|
# 4. Destination: S3/SFTP/WebDAV/etc
|
|
# 5. Schedule: Daily at 3 AM
|
|
# 6. Retention: Keep 30 days
|