The catalog in server/containers had drifted from the VPS. Eleven compose
files and twelve units no longer matched what runs, and two running
services, Gbrown_Agent and BillTracker, were missing. server/vps is now a
copy of the live files, and panama-server reads from it.
server/home holds the home server's services in the same shape. They still
run under Docker, so the podman units there are drafts for a later move, and
nothing installs from that tree. PostHog, Sentry and Plausible are checkouts
of upstream repositories. Only their local files are kept, next to an
UPSTREAM file naming the repository and the exact commit.
Every secret in both trees is a ${VAR} reference named in .env.example, or
CHANGE_ME in files that are not compose files. The live servers still hold
some of those values inline, so a live file can differ from its copy on
those lines alone. Existing .env.example files keep their comments, with new
keys appended at the end.
The ignore rules and the secrets contract now cover both trees, plus the
volume/ and volumes/ directories the home server uses.
31 lines
1.3 KiB
YAML
31 lines
1.3 KiB
YAML
# iSponsorBlockTV — VPS (ROOTLESS PODMAN) port of the home server's
|
|
# ~/Server/isponsorblocktv, migrated 2026-08-12.
|
|
#
|
|
# Why this works off-LAN: the configured device is pinned by `screen_id`, which uses
|
|
# YouTube's CLOUD lounge API rather than a direct LAN connection to the Apple TV. So it
|
|
# does not need to be on the same network as the TV. (If you ever re-pair a device via
|
|
# SSDP/mDNS discovery, that step DOES need LAN access and must be done from home.)
|
|
#
|
|
# Rootless adaptations:
|
|
# - `user: 1000:1000` REPLACED with userns_mode keep-id. Under a rootless userns the
|
|
# original would resolve to subuid 525287 and lose access to its own gib-owned data
|
|
# directory -- the exact failure that kept n8n broken for two months. See AGENTS.md §3.2.
|
|
# - :Z on the data mount (SELinux Enforcing).
|
|
# - network_mode: host retained to match home. It works fine rootless.
|
|
|
|
services:
|
|
isponsorblocktv:
|
|
image: ghcr.io/dmunozv04/isponsorblocktv:latest
|
|
container_name: iSponsorBlockTV
|
|
network_mode: host
|
|
userns_mode: "keep-id:uid=1000,gid=1000"
|
|
environment:
|
|
- TZ=America/New_York
|
|
volumes:
|
|
- './volumes/isponsorblocktv:/app/data:Z'
|
|
labels:
|
|
com.centurylinklabs.watchtower.enable: 'true'
|
|
tty: true
|
|
stdin_open: true
|
|
restart: unless-stopped
|