Skip to content

feat: add robustness and testing stacks#395

Open
D2758695161 wants to merge 13 commits intoillbnm:masterfrom
D2758695161:feat/robustness-testing-stacks
Open

feat: add robustness and testing stacks#395
D2758695161 wants to merge 13 commits intoillbnm:masterfrom
D2758695161:feat/robustness-testing-stacks

Conversation

@D2758695161
Copy link
Copy Markdown

Summary

This PR adds two new stacks to the homelab-stack repository:

1. Robustness Stack (stacks/robustness/) -- resolves #8 ($250 bounty)

  • Cloudflare DDNS (hotio/cloudflare-ddns): Automatically updates a Cloudflare DNS A record when your public IP changes.
  • Dnsmasq (ad-blocking DNS resolver): Local DNS with ad-blocking, with region-optimized upstream DNS (CN mode: Alibaba/Tencent DNS; INTL mode: Cloudflare/Google DNS).
  • Network Test Runner (alpine): Hourly connectivity checks to CN and INTL endpoints.
  • NAT Loopback documentation: Explains how to enable hairpin NAT on OpenWrt, pfSense, and generic routers.

2. Testing Stack (stacks/testing/) -- resolves #14 ($200 bounty)

  • GitHub Actions Self-Hosted Runner (actions/runner:latest): Registers as a self-hosted runner with Docker-in-Docker support.
  • Test Automation Container (docker:27-cli): Runs three validation scripts on startup:
    • validate-stacks.sh: Runs docker compose config --quiet on every stack
    • test-backup.sh: Full backup/restore cycle test
    • health-check.sh: Health status of all service containers across all stacks

How to Test

Robustness Stack

cd stacks/robustness
cp .env.example .env
# Edit .env with your Cloudflare credentials and REGION
docker compose up -d
docker compose logs -f

Testing Stack

cd stacks/testing
cp .env.example .env
# Edit .env with your GitHub PAT and repo URL
docker compose up -d

Files Changed

  • stacks/robustness/docker-compose.yml
  • stacks/robustness/.env.example
  • stacks/robustness/README.md
  • stacks/robustness/scripts/network-test.sh
  • stacks/testing/docker-compose.yml
  • stacks/testing/.env.example
  • stacks/testing/README.md
  • stacks/testing/scripts/validate-stacks.sh
  • stacks/testing/scripts/test-backup.sh
  • stacks/testing/scripts/health-check.sh

Bounties: #8 ($250 robustness) + #14 ($200 testing) = $450 total

@D2758695161
Copy link
Copy Markdown
Author

@illbnm PR #395 adds robustness and testing stacks for your homelab. + bounty opportunity. Ready to merge!

@D2758695161
Copy link
Copy Markdown
Author

?? Bump - this PR is ready to merge. Please let me know if you need any changes or have questions. Happy to iterate!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOUNTY $200] Testing — 自动化测试套件 [BOUNTY $250] Robustness — 国内网络适配 + 环境鲁棒性

1 participant