{"id":31636501,"url":"https://github.com/stephondoestech/unraid-config-guardian","last_synced_at":"2026-03-06T07:02:04.698Z","repository":{"id":311998187,"uuid":"1045917304","full_name":"stephondoestech/unraid-config-guardian","owner":"stephondoestech","description":"Python-based disaster recovery documentation generator for Unraid servers. Automatically creates docker-compose files and restoration scripts from your running homelab setup.","archived":false,"fork":false,"pushed_at":"2025-12-23T17:13:43.000Z","size":3761,"stargazers_count":146,"open_issues_count":5,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-20T13:08:56.507Z","etag":null,"topics":["configuration-management","documentation-generator","homelab","self-hosted","unraid"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stephondoestech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-27T23:03:08.000Z","updated_at":"2026-01-14T23:11:45.000Z","dependencies_parsed_at":"2025-08-28T07:23:56.384Z","dependency_job_id":"4c6c25d3-e934-48ab-a389-30e6cb95889e","html_url":"https://github.com/stephondoestech/unraid-config-guardian","commit_stats":null,"previous_names":["stephondoestech/unraid-config-guardian"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/stephondoestech/unraid-config-guardian","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephondoestech%2Funraid-config-guardian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephondoestech%2Funraid-config-guardian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephondoestech%2Funraid-config-guardian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephondoestech%2Funraid-config-guardian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stephondoestech","download_url":"https://codeload.github.com/stephondoestech/unraid-config-guardian/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stephondoestech%2Funraid-config-guardian/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30164890,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T04:43:31.446Z","status":"ssl_error","status_checked_at":"2026-03-06T04:40:30.133Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["configuration-management","documentation-generator","homelab","self-hosted","unraid"],"created_at":"2025-10-07T01:01:36.823Z","updated_at":"2026-03-06T07:02:04.668Z","avatar_url":"https://github.com/stephondoestech.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Unraid Config Guardian\n\n\u003cimg src=\"assets/unraid_guardian_logo.png\" alt=\"Unraid Config Guardian Logo\" width=\"200\"/\u003e\n\n[![CI/CD Pipeline](https://github.com/stephondoestech/unraid-config-guardian/actions/workflows/ci-cd.yml/badge.svg)](https://github.com/stephondoestech/unraid-config-guardian/actions/workflows/ci-cd.yml)\n[![Docker Pulls](https://img.shields.io/docker/pulls/stephondoestech/unraid-config-guardian)](https://hub.docker.com/r/stephondoestech/unraid-config-guardian)\n[![GitHub release](https://img.shields.io/github/release/stephondoestech/unraid-config-guardian.svg)](https://github.com/stephondoestech/unraid-config-guardian/releases)\n[![License](https://img.shields.io/github/license/stephondoestech/unraid-config-guardian)](LICENSE)\n\n**Your Unraid flash drive crashed and you don't have a backup?**\n\nThis tool saves you from complete disaster by automatically documenting your entire Unraid configuration.\n\n\u003c/div\u003e\n\n## Flash Drive Disaster Recovery\n\n**The Problem:** Your Unraid flash drive dies, taking with it:\n- All Docker container configurations\n- System settings and user shares\n- Plugin configurations and templates\n- Years of careful setup work\n\n**The Solution:** Config Guardian automatically backs up everything needed to rebuild your server:\n- **All running containers** → Docker templates + compose files\n- **System configuration** → Settings, shares, plugins\n- **Complete rebuild guide** → Step-by-step restoration\n- **Change tracking** → See what changed between backups\n\n## Application\n\n\u003cdiv align=\"center\"\u003e\n\n### Dashboard Overview\n\u003cimg src=\"assets/demo_home.png\" alt=\"Dashboard Screenshot\" width=\"600\"/\u003e\n\n### Container Management\n\u003cimg src=\"assets/demo_containers.png\" alt=\"Container Management Screenshot\" width=\"600\"/\u003e\n\n\u003c/div\u003e\n\n\n\n## Emergency Setup (Flash Drive Died)\n\n### Quick Install on Fresh Unraid\n\n1. **Install fresh Unraid** on new hardware/flash drive\n2. **Set up basic array** and enable Docker\n3. **Install Config Guardian:**\n\n```bash\n# SSH into Unraid and run:\nmkdir -p /mnt/user/appdata/unraid-config-guardian\nmkdir -p /mnt/user/backups/unraid-docs\n\ndocker run -d \\\n  --name unraid-config-guardian \\\n  --restart unless-stopped \\\n  -p 7842:7842 \\\n  -v /mnt/user/appdata/unraid-config-guardian:/config \\\n  -v /mnt/user/backups/unraid-docs:/output \\\n  -v /var/run/docker.sock:/var/run/docker.sock:ro \\\n  -v /boot:/boot:ro \\\n  -e PUID=99 -e PGID=100 \\\n  -e SCHEDULE=\"0 2 * * 0\" \\\n  stephondoestech/unraid-config-guardian:latest\n```\n\n4. **Access:** `http://your-unraid-ip:7842`\n5. **Generate backup** to start protecting your new setup\n\n### Preventive Setup (Normal Use)\n\nInstall via **Community Apps** → Search \"Config Guardian\" → Install\n\n**Pro Tip:** Set up weekly automated backups immediately after configuring any new containers!\n\n## Your Backup Contains Everything Needed\n\n```\nunraid-backup/\n├── container-templates.zip # Native Unraid XML templates → Drop in Docker tab\n├── docker-compose.yml      # Emergency fallback containers\n├── unraid-config.json      # System settings, shares, plugins\n├── restore.sh              # Automated restoration script\n├── changes.log             # What changed since last backup\n└── README.md               # Step-by-step recovery guide\n```\n\n**Data Sources:**\n- Running Docker containers (via Docker API)\n- Unraid system configuration (`/boot/config/`)\n- User shares and disk settings\n- Plugin configurations and templates\n\n## Super Simple Recovery\n\n**When disaster strikes:**\n\n1. **Fresh Unraid install** → Set up array\n2. **Restore from backup:**\n   ```bash\n   cd /mnt/user/backups/unraid-docs/latest\n   bash restore.sh\n   ```\n3. **Add containers:** Docker tab → Your templates are in the dropdown\n4. **Copy back appdata** from your separate backups\n\n**That's it!** Your entire server configuration is restored.\n\n## IMPORTANT: This is NOT a Data Backup Solution\n\n**Config Guardian only backs up your CONFIGURATION, not your data.** You still need a proper backup solution for your appdata and media files.\n\n**Recommended backup solutions:**\n- **Kopia** - Modern, fast, encrypted backups\n- **Duplicacy** - Web-based backup management\n- **Rustic** - Rust-based restic alternative\n- **Unraid Plugins:** CA Backup/Restore, Appdata Backup\n\n**What Config Guardian backs up:**\n- Docker container configurations and templates\n- Unraid system settings and shares\n- Plugin configurations\n- Recovery scripts and documentation\n\n**What you still need to backup separately:**\n- `/mnt/user/appdata/` (your container data)\n- `/mnt/user/` (your media and files)\n- Any custom scripts or configurations\n\n## Configuration\n\n**Essential Settings:**\n```bash\nSCHEDULE=\"0 2 * * 0\"       # Weekly backup (Sunday 2 AM)\nPUID=99 PGID=100           # Standard Unraid permissions\nMASK_PASSWORDS=true        # Hide sensitive data in backups\n```\n\n**Common Issues:**\n- **No templates in dropdown:** Enable Template Authoring Mode in Docker settings\n- **Permission errors:** See [troubleshooting guide](docs/troubleshooting.md)\n\n## Manual Usage\n\n```bash\n# Generate backup now\ndocker exec unraid-config-guardian python3 src/unraid_config_guardian.py\n\n# View logs\ndocker logs unraid-config-guardian\n\n# Check what changed\ncat /mnt/user/backups/unraid-docs/latest/changes.log\n```\n\n## License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\n---\n\n**Built by [Stephon Parker](https://github.com/stephondoestech) for the Unraid community**\n\n*Development supported by Claude (Anthropic)*\n\n[⭐ Star](https://github.com/stephondoestech/unraid-config-guardian/stargazers) | [🐛 Issues](https://github.com/stephondoestech/unraid-config-guardian/issues) | [💡 Features](https://github.com/stephondoestech/unraid-config-guardian/issues)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstephondoestech%2Funraid-config-guardian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstephondoestech%2Funraid-config-guardian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstephondoestech%2Funraid-config-guardian/lists"}