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>
39 lines
1.4 KiB
YAML
39 lines
1.4 KiB
YAML
# Furtka fileshare — SMB share via dperson/samba.
|
|
#
|
|
# The volume `furtka_fileshare_files` is created by the Furtka reconciler
|
|
# from the manifest's "volumes" list before this compose file is brought up;
|
|
# it's referenced as `external: true` here so docker compose doesn't try
|
|
# to manage its lifecycle.
|
|
#
|
|
# TODO(image-pin): `:latest` is shaky for production — pin to a digest
|
|
# (`dperson/samba@sha256:...`) or a stable tag once we've verified one
|
|
# against the upstream registry. For the MVP run we accept the drift
|
|
# risk to keep the install reproducible against whatever the upstream
|
|
# image happens to be on test day; revisit before any non-developer
|
|
# touches this.
|
|
|
|
services:
|
|
smbd:
|
|
image: dperson/samba:latest
|
|
restart: unless-stopped
|
|
network_mode: host
|
|
# The upstream image's HEALTHCHECK times out under normal operation on
|
|
# our setup (2026-04-15 VM test — all 6 probes failed while the share
|
|
# was reachable from clients). Disable to avoid a permanently-"unhealthy"
|
|
# container that scares users reading `docker ps`.
|
|
healthcheck:
|
|
disable: true
|
|
environment:
|
|
- USERID=1000
|
|
- GROUPID=1000
|
|
- TZ=Europe/Berlin
|
|
command: >
|
|
-u "${SMB_USER};${SMB_PASSWORD}"
|
|
-s "files;/mount;yes;no;no;${SMB_USER}"
|
|
-p
|
|
volumes:
|
|
- furtka_fileshare_files:/mount
|
|
|
|
volumes:
|
|
furtka_fileshare_files:
|
|
external: true
|