No description
- Python 63.7%
- HCL 32.1%
- Shell 2.4%
- Jinja 1.3%
- Go Template 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Second forgejo-runner with a dind sidecar for building container images. Jobs reach the daemon via host netns + mounted TLS certs (config docker_host + network host + valid_volumes). Distinct label `docker-build` so image builds target it, keeping the general runner free. Reuses the shared runner-secret. Kaniko was rejected: its image lacks node, so actions/checkout (a JS action) fails. This runner uses a node job image and real docker build. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
| .agents/skills | ||
| .claude/skills | ||
| .forgejo/workflows | ||
| .opencode | ||
| agent/skills | ||
| docs | ||
| family-backup-infra | ||
| .gitignore | ||
| AGENTS.md | ||
| opencode.json | ||
| renovate.json | ||
| skills-lock.json | ||
FAMILY DISTRIBUTED BACKUP INFRASTRUCTURE
Complete Project Specification for Implementation
Document Version: 1.0
Target: Claude Code / Cowork
Estimated Implementation Time: 4-6 hours
EXECUTIVE SUMMARY
Build a self-hosted, privacy-focused backup solution for family members across multiple physical locations. The system uses Raspberry Pis with external HDDs as backup servers, connected via WireGuard VPN through a central Hetzner cloud hub. All infrastructure is managed via Terraform (provisioning) and Ansible (configuration).
Key Technologies: Terraform, Ansible, WireGuard, Borg Backup, Borgmatic, Syncthing, k3s, Forgejo, Argo Workflows
TABLE OF CONTENTS
| # | Section | File | Description |
|---|---|---|---|
| 1 | Project Goals | 01-PROJECT-GOALS.md |
Requirements and security goals |
| 2 | Architecture Overview | 02-ARCHITECTURE.md |
Network topology, IP scheme, routing |
| 3 | Directory Structure | 03-DIRECTORY-STRUCTURE.md |
Project file layout |
| 4 | k3s CI/CD Platform | 04-K3S-CICD.md |
Forgejo + Argo Workflows setup |
| 5 | Terraform Implementation | 05-TERRAFORM.md |
Infrastructure as Code |
| 6 | Ansible Implementation | 06-ANSIBLE.md |
Configuration management |
| 7 | Deployment Scripts | 07-DEPLOYMENT.md |
Automation scripts |
| 8 | Configuration Templates | 08-CONFIGURATION.md |
Example configurations |
| 9 | Testing & Validation | 09-TESTING.md |
Verification procedures |
| 10 | Implementation Checklist | 10-CHECKLIST.md |
Progress tracking |
Quick Start
# 1. Configure Terraform
cd family-backup-infra/terraform
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your Hetzner API token and site configs
# 2. Initialize and apply Terraform
terraform init
terraform plan
terraform apply
# 3. Install Ansible dependencies
cd ../ansible
ansible-galaxy collection install -r requirements.yml
# 4. Configure WireGuard hub
ansible-playbook playbooks/wireguard-hub.yml
Network Design Summary
- Site LANs: 10.10.0.0/19 (32 sites × /24)
- WireGuard overlay: 10.100.0.0/24
- Site-to-site routing: Full LAN connectivity via Pi routers
Related Files
- Implementation Code - Terraform and Ansible files
- Original Specification - Full document (legacy)