- Create README.md with project layout and quick start instructions - Implement backup scripts for Gitea, including database and repository exports - Add systemd service and timer for automated Gitea backups - Develop bootstrap scripts for homelab and VPS setup - Document architecture and restore procedures - Configure Caddy reverse proxy and Docker Compose for service management - Establish secrets management guidelines
1.3 KiB
1.3 KiB
ops
Infrastructure-as-code repo for reproducible VPS edge + homelab deployment.
Layout
bootstrap/host bootstrap scriptsedge/caddy/VPS edge reverse proxy stackstacks/app stack modulesbackups/backup + restore scriptssecrets/encrypted secret placeholders and guidancedocs/architecture and restore runbooks
Quick Start
- Fill
secrets/*.agewith encrypted values. - Update domain/IP placeholders in
edge/caddy/Caddyfile. - Copy
.env.examplefiles to.envper stack. - Run bootstrap scripts on target hosts.
Ops Repo Source Strategy
When the ops repo lives on self-hosted Gitea, bootstrap should not depend on one source.
- Primary source: self-hosted Gitea URL (
OPS_REPO_PRIMARY_URL) - Optional mirror source: secondary git host (
OPS_REPO_FALLBACK_URL) - Last-resort source: local bundle file (
OPS_BUNDLE_PATH, default/srv/backups/ops/latest/ops.bundle)
The bootstrap scripts automatically try those in that order.
Current default primary URL is https://git.sketchferret.com/sketchferret/ops.git.
Retention Policy
- Keep all backup files for 7 days (daily recovery points).
- From day 8 to day 365, keep one backup per ISO week per folder.
- Keep files under any
latest/folder (for bootstrap fallback pointers).