Skip to content

Colony host setup - #357

Merged
bubacoder merged 7 commits into
mainfrom
colony-host-setup
Jun 28, 2026
Merged

Colony host setup#357
bubacoder merged 7 commits into
mainfrom
colony-host-setup

Conversation

@bubacoder

@bubacoder bubacoder commented Jun 28, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features

    • Added AMD GPU support options for Ollama, Jellyfin, and Frigate, with the required device-access notes.
    • Automatically applies GPU-specific Compose overrides when enabled.
  • Bug Fixes

    • Improved Traefik/proxy-network routing guidance to avoid port conflicts; updated qBittorrent to route via the proxy network.
    • Refreshed hostname/IP settings to align with primary/secondary naming and updated several service connection URLs.
  • Chores

    • Updated the debugging runbook and strengthened backup cron automation.
    • Bumped the qBittorrent image and refreshed Traefik CrowdSec bouncer configuration.

@coderabbitai

coderabbitai Bot commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Adds GPU compose override handling, renames node environment variables to PRIMARY/SECONDARY, migrates qBittorrent to Traefik proxy networking, adds a cron setup task for backups, and updates several service, Ansible, Renovate, and runbook files.

Changes

Infrastructure and Service Configuration Updates

Layer / File(s) Summary
labctl GPU compose handling
scripts/labctl.py
Adds GPU suffix detection, extends compose pull/build handling to multiple compose files, and routes pull/up/recreate through the GPU-aware file list.
AMD GPU overlays and VAAPI config
docker/ai/ollama/ollama-amdgpu.yaml, docker/ai/ollama/ollama.yaml, docker/media/video/jellyfin/jellyfin-amdgpu.yaml, docker/media/video/jellyfin/jellyfin.yaml, docker/security/frigate/frigate-amdgpu.yaml, docker/security/frigate/frigate.yaml, docker/security/frigate/config/config.yml
Adds AMD-specific compose overrides and comments for Ollama, Jellyfin, and Frigate, plus Frigate FFmpeg VAAPI configuration.
PRIMARY and SECONDARY node variables
config-example/docker/.env, docker/Taskfile.apps.yaml, docker/Taskfile.docker.yaml, docker/infra/adguardhome-sync/adguardhome-sync.yaml, docker/security/traefik/traefik.yaml, docker/security/wg-easy/wg-easy.yaml, docker/storage/syncthing/syncthing.yaml, docker/automation/homeassistant/homeassistant.yaml
Renames the node variable contract across example environment files, taskfiles, and service configs.
qBittorrent proxy network migration
docker/fileshare/qbittorrent/Dockerfile, docker/fileshare/qbittorrent/qbittorrent.yaml, docker/security/traefik/config/dynamic/external-services.yml, renovate.json
Moves qBittorrent onto the external proxy network, updates its image version and router guidance, and removes its Traefik dynamic router and service entries.
Backup task and cron setup
Taskfile.yaml
Changes the backup archive destination, replaces manual cron guidance, and adds the task that installs the daily backup cron entry.
Service, Ansible, Renovate, and runbook updates
ansible/inventory/group_vars/debian/vars.yaml, ansible/playbooks/homelab.yaml, docker/ai/sillytavern/sillytavern.yaml, docker/dashboard/homepage/config/services.yaml, docker/security/traefik/config/traefik.yml, .claude/skills/debug-container-service/SKILL.md
Updates Samba client host settings, Home Assistant and SillyTavern network details, Homepage router fields, Traefik plugin versioning, Renovate rules, and the container debugging runbook.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • bubacoder/infra#152: Related to the scripts/labctl.py compose-file workflow changes and multi-file compose handling.
  • bubacoder/infra#163: Shares the same Taskfile.yaml backup configuration area, including archive path changes.
  • bubacoder/infra#329: Extends the debug-container-service runbook that is updated in this PR.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title is related to the PR, but it is too broad to convey the main infrastructure changes. Use a more descriptive title that mentions the key changes, such as AMD GPU support, node renaming, or host service setup.
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch colony-host-setup

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docker/automation/homeassistant/homeassistant.yaml`:
- Line 9: The trusted proxy example is too broad because it currently points to
all Docker bridge networks. Update the Home Assistant proxy configuration
example to use only the specific Traefik/proxy subnet that actually reaches Home
Assistant, and reference the trusted proxy list in homeassistant.yaml so the
example cannot be misread as allowing every Docker bridge.

In `@docker/fileshare/qbittorrent/qbittorrent.yaml`:
- Around line 22-33: The separate-host guidance for qbittorrent is incomplete:
the Traefik example points to a host-side HTTP port, but the service definition
removes the only published port, so the route cannot work as written. Update the
instructions in qbittorrent.yaml to either keep a host port published for the
qbittorrent service or change the Traefik external-services example to point at
the actual reachable port, and make the separate-host setup explicitly match the
service’s exposure.

In `@docker/security/frigate/config/config.yml`:
- Around line 55-61: The shared Frigate OpenVINO detector config is hardcoding
both ov_0 and ov_1 to CPU, which overrides accelerator selection for
Intel-capable hosts. Update the detectors in the shared config to use AUTO in
the openvino device settings, and keep any CPU-only fallback in a host-specific
override rather than in this shared file.
- Around line 15-20: The shared Frigate config is forcing VAAPI hardware decode
for every deployment, which should only be enabled for AMD/GPU hosts. Remove the
ffmpeg hwaccel_args setting from the common config and place it in the
AMD-specific override so only the frigate-amdgpu.yaml path enables it alongside
the /dev/dri passthrough. Use the ffmpeg section and hwaccel_args preset-vaapi
setting as the main symbols to relocate.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3f8f286a-4d66-4e7a-982c-d4e6bb1ec28b

📥 Commits

Reviewing files that changed from the base of the PR and between 1a768c7 and 7339d7f.

📒 Files selected for processing (26)
  • .claude/skills/debug-container-service/SKILL.md
  • ansible/inventory/group_vars/debian/vars.yaml
  • ansible/playbooks/homelab.yaml
  • config-example/docker/.env
  • docker/Taskfile.apps.yaml
  • docker/Taskfile.docker.yaml
  • docker/ai/ollama/ollama-amdgpu.yaml
  • docker/ai/ollama/ollama.yaml
  • docker/ai/sillytavern/sillytavern.yaml
  • docker/automation/homeassistant/homeassistant.yaml
  • docker/dashboard/homepage/config/services.yaml
  • docker/fileshare/qbittorrent/Dockerfile
  • docker/fileshare/qbittorrent/qbittorrent.yaml
  • docker/infra/adguardhome-sync/adguardhome-sync.yaml
  • docker/media/video/jellyfin/jellyfin-amdgpu.yaml
  • docker/media/video/jellyfin/jellyfin.yaml
  • docker/security/frigate/config/config.yml
  • docker/security/frigate/frigate-amdgpu.yaml
  • docker/security/frigate/frigate.yaml
  • docker/security/traefik/config/dynamic/external-services.yml
  • docker/security/traefik/config/traefik.yml
  • docker/security/traefik/traefik.yaml
  • docker/security/wg-easy/wg-easy.yaml
  • docker/storage/syncthing/syncthing.yaml
  • renovate.json
  • scripts/labctl.py
💤 Files with no reviewable changes (3)
  • docker/security/traefik/traefik.yaml
  • docker/security/traefik/config/dynamic/external-services.yml
  • ansible/playbooks/homelab.yaml

Comment thread docker/automation/homeassistant/homeassistant.yaml
Comment thread docker/fileshare/qbittorrent/qbittorrent.yaml Outdated
Comment thread docker/security/frigate/config/config.yml
Comment thread docker/security/frigate/config/config.yml Outdated
@bubacoder
bubacoder force-pushed the colony-host-setup branch from 7339d7f to 7baaeb7 Compare June 28, 2026 18:57

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@Taskfile.yaml`:
- Around line 191-194: The crontab update in the setup-crontab Taskfile target
is removing any line that contains the broad substring task backup, which can
delete unrelated user entries. Update the CRON_ENTRY handling to add a unique
marker for the managed job and have the cleanup step in the same shell block
filter only on that marker; use the existing setup-crontab/CRON_ENTRY logic to
locate the change. Also make the cd $(pwd) portion safe for paths with spaces by
quoting the working directory in the generated cron command.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 91d0a798-2f60-4d5e-97e7-3bae644f9440

📥 Commits

Reviewing files that changed from the base of the PR and between 7339d7f and 7baaeb7.

📒 Files selected for processing (17)
  • Taskfile.yaml
  • ansible/inventory/group_vars/debian/vars.yaml
  • ansible/playbooks/homelab.yaml
  • docker/ai/ollama/ollama-amdgpu.yaml
  • docker/ai/ollama/ollama.yaml
  • docker/ai/sillytavern/sillytavern.yaml
  • docker/automation/homeassistant/homeassistant.yaml
  • docker/dashboard/homepage/config/services.yaml
  • docker/fileshare/qbittorrent/Dockerfile
  • docker/fileshare/qbittorrent/qbittorrent.yaml
  • docker/media/video/jellyfin/jellyfin-amdgpu.yaml
  • docker/media/video/jellyfin/jellyfin.yaml
  • docker/security/frigate/config/config.yml
  • docker/security/frigate/frigate-amdgpu.yaml
  • docker/security/frigate/frigate.yaml
  • docker/security/traefik/config/dynamic/external-services.yml
  • scripts/labctl.py
💤 Files with no reviewable changes (2)
  • docker/security/traefik/config/dynamic/external-services.yml
  • ansible/playbooks/homelab.yaml
✅ Files skipped from review due to trivial changes (5)
  • docker/security/frigate/frigate-amdgpu.yaml
  • docker/ai/ollama/ollama.yaml
  • docker/security/frigate/frigate.yaml
  • ansible/inventory/group_vars/debian/vars.yaml
  • docker/ai/sillytavern/sillytavern.yaml
🚧 Files skipped from review as they are similar to previous changes (9)
  • docker/ai/ollama/ollama-amdgpu.yaml
  • docker/dashboard/homepage/config/services.yaml
  • docker/media/video/jellyfin/jellyfin-amdgpu.yaml
  • docker/fileshare/qbittorrent/qbittorrent.yaml
  • docker/automation/homeassistant/homeassistant.yaml
  • docker/security/frigate/config/config.yml
  • docker/fileshare/qbittorrent/Dockerfile
  • docker/media/video/jellyfin/jellyfin.yaml
  • scripts/labctl.py

Comment thread Taskfile.yaml
@bubacoder
bubacoder force-pushed the colony-host-setup branch from 7baaeb7 to af4f983 Compare June 28, 2026 20:29
@bubacoder
bubacoder merged commit 886dead into main Jun 28, 2026
6 checks passed
@bubacoder
bubacoder deleted the colony-host-setup branch June 28, 2026 20:46
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.

1 participant