Commit graph

8 commits

Author SHA1 Message Date
1c14446434 feat(home-assistant): add smart-home hub to the catalog (closes #1)
All checks were successful
CI / validate (push) Successful in 17s
CI / shellcheck (push) Successful in 50s
Bridge-mode networking with explicit 8123:8123 port mapping. Image is
homeassistant/home-assistant:stable — upstream's recommended production
tag, same image as the Docker Hub link in #1.

One Docker-managed volume (`furtka_home-assistant_config`). No
manifest.settings — onboarding (admin user, home location, units) is
the standard Home Assistant in-browser flow on first visit to :8123,
same shape as Jellyfin and Uptime Kuma.

Cloud integrations (Hue Cloud, Tado, Sonos via account) work today.
Local-discovery integrations that need host networking, Bluetooth, or
Zigbee/Z-Wave dongle passthrough are explicitly deferred — listed as
a follow-up once the manifest schema grows a network_mode knob.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 12:17:11 +02:00
2a31a7927c fix(jellyfin): use compose default-substitution so validator passes
Some checks are pending
CI / validate (push) Waiting to run
CI / shellcheck (push) Waiting to run
Without a .env in the jellyfin app dir, validate-catalog.py's
\`docker compose config\` step substituted \${MEDIA_PATH} → empty →
\`:/media:ro\` which compose rejects ("empty section between colons"),
failing CI on every post-Jellyfin commit. Local runs skipped the
check because the validator gates it on \`which docker\` and my dev
box has none.

Fix: use the default-substitution form \${MEDIA_PATH:-/nonexistent}.
Empty/unset MEDIA_PATH now expands to /nonexistent — valid volume
spec, CI green. Real install flow (form fill → .env with real path)
substitutes the user value as before. /nonexistent is obviously
wrong, so if a broken install path ever reaches \`docker compose up\`
the mount fails loudly rather than silently mounting something
random.

Doesn't affect the already-published 26.10-alpha catalog tarball —
that one works end-to-end for the Web UI install flow. This fix is
purely to un-red CI on subsequent pushes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 12:18:57 +02:00
cf623d46bc docs(apps): document the new path setting type
Some checks failed
CI / validate (push) Failing after 11s
CI / shellcheck (push) Successful in 17s
Mirror of the core repo's apps/README.md update. Keeps the two copies
in lockstep since app authors may land on either one.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 11:43:16 +02:00
fcf2f22a47 feat(jellyfin): add media-server app using new path-type setting
Some checks are pending
CI / validate (push) Waiting to run
CI / shellcheck (push) Waiting to run
First app to use the core-26.10-alpha `path` setting type. User picks
their existing media folder (MEDIA_PATH=/mnt/media) in the install
form; core installer validates the path server-side; compose mounts
it read-only at /media. Docker-managed volumes hold /config and
/cache; admin account is created from the first browser visit to
:8096. No HW transcoding yet — that's a later schema extension.

Also bumps the vendored manifest schema in scripts/vendor/ to match
core 26.10-alpha — catches up both the missing `open_url` field (gap
since 26.6-alpha) and the new `path` setting type. No changes needed
to validate-catalog.py itself.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 11:40:29 +02:00
b2b47938e6 feat(it-tools): add browser-toolbox app to the catalog
All checks were successful
CI / validate (push) Successful in 7s
CI / shellcheck (push) Successful in 32s
Client-side utility collection (password/UUID/QR generators, hashes,
Base64/JWT, JSON/YAML formatter, regex tester, cron parser, etc.) from
corentinth/it-tools. No state, no volumes, no settings — runs fully in
the browser and serves on port 8080. Good smoke-test target for the
catalog-sync path.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 11:16:59 +02:00
436ce11f52 feat(catalog): 26.8-alpha — add open_url to fileshare + uptime-kuma
All checks were successful
CI / validate (push) Successful in 29s
CI / shellcheck (push) Successful in 56s
Release / release (push) Successful in 25s
Both apps grow an `open_url` manifest field so the core UI can render
an Open button that deep-links into the app. fileshare uses smb:// to
trigger the OS file manager; uptime-kuma uses http://{host}:3001/ for
the browser. No image or compose changes.

- fileshare 0.1.1 → 0.1.2
- uptime-kuma 1.0.0 → 1.0.1
2026-04-20 17:47:19 +02:00
f377a5a387 feat(uptime-kuma): add status-monitor app to the catalog
All checks were successful
CI / validate (push) Successful in 20s
CI / shellcheck (push) Successful in 31s
Release / release (push) Successful in 37s
louislam/uptime-kuma:1 with one data volume and port 3001. Admin
account bootstrapped from the first browser visit to :3001 — no
Furtka settings form needed. Catalog release 26.7-alpha.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 15:34:28 +02:00
8cd9e3bcf4 chore: bootstrap furtka-apps catalog repo
All checks were successful
CI / validate (push) Successful in 36s
CI / shellcheck (push) Successful in 1m1s
Release / release (push) Successful in 38s
Initial layout: apps/fileshare/ (seeded from daniel/furtka apps/), CI
(JSON + manifest validator + shellcheck), release pipeline (tag-driven,
mirrors core repo), vendored manifest schema for offline validation.

The core repo (daniel/furtka) at 26.6-alpha keeps apps/fileshare as a
seed so offline first-boot still has an installable app; this catalog
becomes authoritative once a box has synced at least once.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 14:14:50 +02:00