homelab-compose

docker-compose + Caddy + backup scripts for my homelab. Runs Jellyfin, Immich, Paperless, Gitea, Syncthing, Pi-hole, Prometheus and Grafana behind a single reverse proxy.

Files

namesizelast change
.editorconfig421 B
.env.example780 B
.github/FUNDING.yml216 B
.github/ISSUE_TEMPLATE/bug.md670 B
.github/pull_request_template.md706 B
.github/workflows/lint.yml1.1 KB
backup/backup-all.sh2.3 KB
backup/rclone/rclone.conf.example0.7 KB
backup/restore/restore-from-b2.sh2.2 KB
backup/stages/docker-volumes.sh1.8 KB
backup/stages/pg-dump.sh1.7 KB
backup/stages/rclone-sync.sh1.8 KB
backup/stages/snapshot-btrfs.sh1.7 KB
backup/stages/sqlite-backup.sh1.6 KB
caddy/Caddyfile.internal2.8 KB
caddy/Caddyfile.public1.1 KB
caddy/security.snippet1.1 KB
caddy/snippets/auth/authelia-forward.snippet0.7 KB
caddy/snippets/compression/gzip.snippet0.3 KB
caddy/snippets/logging/json.snippet0.4 KB
caddy/snippets/rate-limit/default.snippet0.5 KB
caddy/snippets/security/csp.snippet0.5 KB
caddy/snippets/security/frame-options.snippet0.3 KB
caddy/snippets/security/hsts.snippet0.3 KB
caddy/tls/internal-ca/ca.conf1.1 KB
Caddyfile2.1 KB
docker-compose.yml5.6 KB
docs/architecture.md9.3 KB
docs/backup-strategy.md7.9 KB
docs/networking/ipv6.md1.6 KB
docs/networking/vlans.md2.2 KB
docs/runbook.md10.6 KB
docs/services/gitea.md1.7 KB
docs/services/jellyfin.md1.8 KB
docs/services/prometheus.md1.7 KB
LICENSE1.2 KB
Makefile1.5 KB
README.md2.4 KB
scripts/backup.sh3.4 KB
scripts/cert-check.sh1.3 KB
scripts/disk-usage-report.sh1.0 KB
scripts/health-check-all.sh1.9 KB
scripts/health-check.sh1.8 KB
scripts/lib/log.sh1.2 KB
scripts/network-reset.sh1.0 KB
scripts/new-service.sh2.4 KB
scripts/new-stack.sh1.5 KB
scripts/port-conflict-detect.sh1.3 KB
scripts/prune-docker.sh1.2 KB
scripts/prune.sh1.8 KB
scripts/restore.sh1.7 KB
scripts/rotate-secrets.sh1.9 KB
scripts/smart-test-weekly.sh1.1 KB
scripts/trim-zfs.sh0.9 KB
scripts/upgrade.sh2.9 KB
scripts/ups-monitor.sh1.2 KB
SECURITY.md1.3 KB
stacks/auth/authelia/access_control.yml1.2 KB
stacks/auth/authelia/configuration.yml3.0 KB
stacks/auth/authelia/notifier.yml0.5 KB
stacks/auth/authelia/session.yml0.7 KB
stacks/auth/authelia/users_database.yml.example0.8 KB
stacks/auth/bootstrap.sh2.1 KB
stacks/auth/compose.yml2.0 KB
stacks/auth/lldap/lldap_config.toml1.0 KB
stacks/auth/README.md1.3 KB
stacks/media/bazarr/config.ini0.9 KB
stacks/media/compose.override.yml1.6 KB
stacks/media/compose.yml2.8 KB
stacks/media/jellyfin/jellyfin.env0.5 KB
stacks/media/jellyfin/network.xml1.4 KB
stacks/media/media.env.example0.6 KB
stacks/media/prowlarr/config.xml0.8 KB
stacks/media/qbittorrent/qBittorrent.conf1.5 KB
stacks/media/radarr/config.xml0.9 KB
stacks/media/README.md1.8 KB
stacks/media/sonarr/config.xml0.9 KB
stacks/monitoring/alertmanager.yml0.9 KB
stacks/monitoring/alertmanager/alertmanager.yml2.1 KB
stacks/monitoring/alertmanager/templates/email.tmpl1.4 KB
stacks/monitoring/alertmanager/templates/slack.tmpl1.1 KB
stacks/monitoring/blackbox/blackbox.yml1.3 KB
stacks/monitoring/compose.yml3.4 KB
stacks/monitoring/exporters/node-exporter-textfile.sh1.8 KB
stacks/monitoring/exporters/smart-exporter.sh2.2 KB
stacks/monitoring/grafana/dashboards/caddy.json4.8 KB
stacks/monitoring/grafana/dashboards/docker-containers.json5.2 KB
stacks/monitoring/grafana/dashboards/node-exporter.json8.4 KB
stacks/monitoring/grafana/datasources/loki.yaml0.5 KB
stacks/monitoring/grafana/datasources/prometheus.yaml0.6 KB
stacks/monitoring/grafana/grafana.ini1.6 KB
stacks/monitoring/grafana/provisioning/dashboards.yaml0.4 KB
stacks/monitoring/loki.yaml1.2 KB
stacks/monitoring/loki/loki.yaml2.6 KB
stacks/monitoring/loki/promtail.yaml2.0 KB
stacks/monitoring/prometheus.yml1.6 KB
stacks/monitoring/prometheus/prometheus.yml3.1 KB
stacks/monitoring/prometheus/rules/alerts.yml3.4 KB
stacks/monitoring/prometheus/rules/blackbox.yml1.2 KB
stacks/monitoring/prometheus/rules/recording.yml2.2 KB
stacks/monitoring/README.md2.0 KB
systemd/backup.service0.7 KB
systemd/backup.timer0.3 KB
systemd/mount-nas.service0.7 KB
systemd/smart-test.service0.5 KB
systemd/smart-test.timer0.3 KB

README

Recent commits

  • 3b7a2c9 backup: rotate B2 snapshots to 30 daily + 12 monthly
  • 12fce10 compose: bump immich to v1.119, pin ml model
  • 9a0bdf4 caddy: add grafana subdomain with basic_auth
  • eab2c71 health-check: exit 2 on warn so cron can mail
  • 5512de8 compose: drop watchtower, manual updates only
  • 77d1a46 backup: use rclone lsjson to prune old remote snapshots
  • 0cc5b2f initial commit of working stack