Skip to content

feat(unraid): add Community Applications template and setup wizard - #254

Open
nexusct wants to merge 1 commit into
smittix:mainfrom
nexusct:feat/unraid-app
Open

nexusct wants to merge 1 commit into
smittix:mainfrom
nexusct:feat/unraid-app

Conversation

@nexusct

@nexusct nexusct commented Aug 23, 2026

Copy link
Copy Markdown

Summary

  • Add an Unraid Community Applications template (unraid/intercept.xml) plus install docs.
  • Persist SQLite and wizard .env via INTERCEPT_INSTANCE_DIR / INTERCEPT_ENV_FILE.
  • Use DELETE journal mode on FUSE/Unraid user shares so SQLite does not corrupt.
  • First-run wizard reports USB passthrough and stores completion in SQLite (/setup/status, /setup/complete).

Test plan

  • pytest tests/test_unraid.py tests/test_database.py tests/test_tle_store.py tests/test_routes.py tests/test_app.py (75 passed)
  • Load unraid/intercept.xml on an Unraid host and complete Quick Setup
  • Confirm /dev/bus/usb appears and /health returns healthy

Ship an Unraid Docker app plus a first-run wizard that persists
setup state, honors INTERCEPT_ENV_FILE / INTERCEPT_INSTANCE_DIR,
and uses DELETE journal mode on FUSE user shares.
Copilot AI lite review requested due to automatic review settings August 23, 2026 22:26

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

The changes are cohesive, covered by targeted tests (template parsing, helper logic, and wizard routes), and integrate cleanly with existing auth/session gating and persistence patterns.

Pull request overview

Adds first-class Unraid installation support and a first-run setup wizard that persists state/config across container restarts, with SQLite configured to avoid WAL corruption on FUSE/network-backed mounts (common on Unraid user shares).

Changes:

  • Introduces Unraid/NAS helpers to detect platform characteristics and select a safe SQLite journal mode (WAL vs DELETE) based on filesystem type.
  • Adds /setup/status and /setup/complete wizard endpoints plus frontend UI updates to show USB/storage guidance and persist completion in SQLite.
  • Packages an Unraid Community Applications template and documentation, and updates Docker/compose defaults to persist the instance/ directory via INTERCEPT_INSTANCE_DIR.
File summaries
File Description
utils/unraid.py New helpers for Unraid/Docker detection, filesystem heuristics, and SQLite journal-mode recommendation.
utils/tle_store.py Stores TLE SQLite DB under INTERCEPT_INSTANCE_DIR and applies Unraid-safe journal mode.
utils/database.py Adds INTERCEPT_INSTANCE_DIR support for main SQLite DB path and applies Unraid-safe journal mode.
routes/setup.py New authenticated wizard API endpoints for status and completion persistence.
routes/init.py Registers the new setup blueprint.
routes/settings.py Writes/reads wizard-managed .env via INTERCEPT_ENV_FILE override.
static/js/core/first-run-setup.js Wizard now consults /setup/status, shows Unraid/USB step, and POSTs /setup/complete.
start.sh Supports sourcing an external env file via INTERCEPT_ENV_FILE.
Dockerfile Creates /app/instance and sets INTERCEPT_INSTANCE_DIR default in the image.
docker-compose.yml Persists ./instance to /app/instance and sets INTERCEPT_INSTANCE_DIR for both profiles.
unraid/intercept.xml Adds Unraid Community Applications template with required volumes, env vars, and USB passthrough.
unraid/README.md Unraid-specific install and persistence guidance, including FUSE/WAL notes.
README.md Adds Unraid quickstart section referencing the template and wizard endpoints.
.env.example Documents new Unraid/Docker-related env vars.
tests/test_unraid.py Verifies template structure, Unraid helpers, instance-dir override, and wizard routes behavior.
CHANGELOG.md Notes the Unraid app + setup wizard addition under Unreleased.
Review details
  • Files reviewed: 16/16 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@smittix

smittix commented Sep 28, 2026

Copy link
Copy Markdown
Owner

Thanks for the Unraid Community Applications template + wizard. It currently has merge conflicts against main (marked CONFLICTING), so it can't be merged as-is — could you rebase onto latest main and resolve the conflicts? Once it's rebased and CI is green I'll review the template + setup flow in detail.

This branch has not been deployed

No deployments
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.

3 participants