Compare commits
No commits in common. "main" and "26.10-alpha" have entirely different histories.
main
...
26.10-alph
5 changed files with 2 additions and 96 deletions
32
CHANGELOG.md
32
CHANGELOG.md
|
|
@ -6,34 +6,6 @@ Versioning: CalVer (`YY.N`) — same scheme as the core Furtka repo.
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
## [26.12-alpha] - 2026-04-28
|
||||
|
||||
### Added
|
||||
|
||||
- **Home Assistant** (v1.0.0, image `homeassistant/home-assistant:stable`,
|
||||
daniel/furtka-apps#1). Smart-home hub for lights, sensors, and locally
|
||||
controlled devices. Bridge-mode networking with explicit `8123:8123`
|
||||
port mapping for v1 — Cloud integrations (Hue Cloud, Tado, Sonos via
|
||||
account) work, mDNS/Bluetooth/Zigbee-stick discovery deferred until a
|
||||
manifest `network_mode` knob lands. One Docker volume (`config`),
|
||||
no manifest settings — onboarding (admin user, home location, units)
|
||||
happens in the browser on first visit to `:8123`.
|
||||
|
||||
## [26.11-alpha] - 2026-04-21
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Jellyfin compose default-substitution.** Without an `.env` in the
|
||||
jellyfin app dir the CI validator's `docker compose config` step
|
||||
substituted an empty `${MEDIA_PATH}` into `:/media:ro` — which
|
||||
compose rejects as `empty section between colons`. Changed the
|
||||
spec to `${MEDIA_PATH:-/nonexistent}:/media:ro` so the CI syntax
|
||||
check always sees a valid volume even with no env file. Real
|
||||
install flow (form fill → .env with user path) is unchanged; a
|
||||
broken install that reaches `docker compose up` with no
|
||||
MEDIA_PATH now fails loudly on a nonexistent bind target instead
|
||||
of silently mounting something random.
|
||||
|
||||
## [26.10-alpha] - 2026-04-21
|
||||
|
||||
### Added
|
||||
|
|
@ -100,9 +72,7 @@ Versioning: CalVer (`YY.N`) — same scheme as the core Furtka repo.
|
|||
the vendored `furtka.manifest.load_manifest` + cross-checks compose
|
||||
volume references).
|
||||
|
||||
[Unreleased]: https://forgejo.sourcegate.online/daniel/furtka-apps/compare/26.12-alpha...HEAD
|
||||
[26.12-alpha]: https://forgejo.sourcegate.online/daniel/furtka-apps/releases/tag/26.12-alpha
|
||||
[26.11-alpha]: https://forgejo.sourcegate.online/daniel/furtka-apps/releases/tag/26.11-alpha
|
||||
[Unreleased]: https://forgejo.sourcegate.online/daniel/furtka-apps/compare/26.10-alpha...HEAD
|
||||
[26.10-alpha]: https://forgejo.sourcegate.online/daniel/furtka-apps/releases/tag/26.10-alpha
|
||||
[26.9-alpha]: https://forgejo.sourcegate.online/daniel/furtka-apps/releases/tag/26.9-alpha
|
||||
[26.8-alpha]: https://forgejo.sourcegate.online/daniel/furtka-apps/releases/tag/26.8-alpha
|
||||
|
|
|
|||
|
|
@ -1,38 +0,0 @@
|
|||
# Furtka Home Assistant — smart-home hub.
|
||||
#
|
||||
# Bridge networking + explicit `8123:8123` port mapping. Upstream's own
|
||||
# docs lean toward `network_mode: host` because that's what mDNS-based
|
||||
# discovery, Bluetooth, HomeKit, and Zigbee/Z-Wave dongles need. We're
|
||||
# deliberately starting in bridge mode for v1: it keeps the catalog's
|
||||
# network model consistent (every other app is bridged), and Cloud-only
|
||||
# integrations (Hue Cloud, Tado, Sonos via account, etc.) work fine.
|
||||
# Host networking + USB passthrough is a follow-up once the manifest
|
||||
# schema grows a `network_mode` knob.
|
||||
#
|
||||
# Image pin: `homeassistant/home-assistant:stable` is upstream's
|
||||
# recommended tag for production — release-train, not bleeding edge.
|
||||
# Same image as the Docker Hub link Robert pointed at in the new-app
|
||||
# request (#1).
|
||||
#
|
||||
# No HEALTHCHECK override needed: the upstream image's healthcheck is
|
||||
# tame, and a temporarily-yellow status during the first-boot DB
|
||||
# migrations is expected behaviour.
|
||||
#
|
||||
# No manifest.settings — Home Assistant's onboarding (admin user, home
|
||||
# location, units) happens entirely in the browser on first visit, just
|
||||
# like Jellyfin and Uptime Kuma. Nothing for the install form to ask.
|
||||
|
||||
services:
|
||||
homeassistant:
|
||||
image: homeassistant/home-assistant:stable
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8123:8123"
|
||||
environment:
|
||||
- TZ=Europe/Berlin
|
||||
volumes:
|
||||
- furtka_home-assistant_config:/config
|
||||
|
||||
volumes:
|
||||
furtka_home-assistant_config:
|
||||
external: true
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M10 30 L32 10 L54 30 V52 H10 Z"/>
|
||||
<circle cx="32" cy="36" r="5"/>
|
||||
<path d="M32 10 V4 M22 22 L18 18 M42 22 L46 18"/>
|
||||
<path d="M22 44 H42"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 341 B |
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"name": "home-assistant",
|
||||
"display_name": "Home Assistant",
|
||||
"version": "1.0.0",
|
||||
"description": "Smart-home hub for lights, sensors, and locally controlled devices.",
|
||||
"description_long": "Steuere Lampen, Heizung, Sensoren und Smart-Home-Geräte von einem zentralen Dashboard aus. Beim ersten Aufruf im Browser unter http://furtka.local:8123 wird das Admin-Konto angelegt und die Wohnung eingerichtet. Zigbee-/Z-Wave-USB-Sticks und automatische Geräteerkennung über mDNS/Bluetooth sind in dieser ersten Version noch nicht verdrahtet — die App läuft im Bridge-Modus auf Port 8123. Cloud-Integrationen (Hue Cloud, Tado, Sonos via Account) funktionieren ohne Einschränkung.",
|
||||
"volumes": ["config"],
|
||||
"ports": [8123],
|
||||
"icon": "icon.svg",
|
||||
"open_url": "http://{host}:8123/"
|
||||
}
|
||||
|
|
@ -10,15 +10,6 @@
|
|||
# the directory exists and isn't a system path, and docker-compose
|
||||
# substitutes the value below at `docker compose up` time.
|
||||
#
|
||||
# The `${MEDIA_PATH:-/nonexistent}` default-substitution keeps
|
||||
# `validate-catalog.py` (which runs `docker compose config` without any
|
||||
# .env) from failing on the empty-string case: an empty MEDIA_PATH
|
||||
# would expand to `:/media:ro` which compose rejects as "empty section
|
||||
# between colons". /nonexistent is an obviously-wrong fallback so if it
|
||||
# ever actually reaches `docker compose up` (which requires a broken
|
||||
# install flow), the mount fails loudly instead of silently mounting
|
||||
# something random.
|
||||
#
|
||||
# TODO(image-pin): `:latest` is shaky for production — pin to a digest
|
||||
# (`jellyfin/jellyfin@sha256:...`) or a stable tag once we've verified
|
||||
# one against the upstream registry. MVP drift risk accepted.
|
||||
|
|
@ -38,7 +29,7 @@ services:
|
|||
volumes:
|
||||
- furtka_jellyfin_config:/config
|
||||
- furtka_jellyfin_cache:/cache
|
||||
- ${MEDIA_PATH:-/nonexistent}:/media:ro
|
||||
- ${MEDIA_PATH}:/media:ro
|
||||
|
||||
volumes:
|
||||
furtka_jellyfin_config:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue