Commit Graph
278 Commits
Author SHA1 Message Date
poprhythm fb728d4bfc Add Navidrome and SUB/WAVE AI radio station
Navidrome indexes the existing music library on nas_media for Subsonic
access. SUB/WAVE (byo-proxy variant, LAN-only) provides the Icecast
broadcast, Liquidsoap crossfade/ducking, and AI DJ controller, reusing
the existing Ollama instance over npm-network for the LLM and Piper
for TTS.
2026-08-08 21:20:40 +00:00
poprhythm d6c214d80d minecraft: create SMP new seed -5296138078585483649, regen world 2026-08-08 18:06:59 +00:00
poprhythm ba925fe734 falco: add cryptominer/runtime-security scanner wired into netdata
Detects unauthorized miners (and other runtime threats) via Falco's
syscall/eBPF monitoring, following the 2026-08-06 gitea/xmrig
compromise. Wired into netdata rather than a new notification channel:
Falco exposes a Prometheus /metrics endpoint, netdata scrapes it, and a
new health.d alarm pages through netdata's already-configured Telegram
bot - no new alerting infra needed.

Includes a custom process-name rule for known miner binaries (the stock
Stratum-protocol rule wouldn't have caught the actual gitea incident,
which used a bare host:port with no scheme prefix), an outbound
miner-pool-port rule as a second layer, and rule_matching: all in the
Falco config - without it, Falco silently drops all but the first
matching rule per event, which would have suppressed our custom rule
whenever a stock rule also matched the same process.
2026-08-08 17:41:20 +00:00
poprhythm 225e872fe9 minecraft: add CF_SLUG placeholder to satisfy AUTO_CURSEFORGE zip requirement 2026-08-08 17:22:34 +00:00
poprhythm ee2a3c4d28 minecraft: add Create SMP server from local CurseForge modpack zip 2026-08-08 17:20:29 +00:00
poprhythm c23ff52563 netdata: alert on sustained high CPU via Telegram, restrict LAN exposure
Two cryptominer incursions (inbox-zero, then gitea) went unnoticed until
found manually — there was no alerting on sustained host CPU. Wired
netdata's existing 10min_cpu_usage alarm to notify via the shared Telegram
bot (config is host-only, not committed). Also narrowed the dashboard port
from 0.0.0.0 to the host's LAN IP to reduce exposure.
2026-08-07 00:12:18 +00:00
poprhythm 773e800b34 pin filebrowser, couchdb, statping to explicit versions instead of floating beta/dev/untagged
Same category of risk as the gitea :nightly issue: floating dev/beta tags
let watchtower silently pull unvetted upstream builds. couchdb had no tag
at all (implicit :latest); filebrowser and statping only publish
beta/dev channels upstream so pinned to the exact version in use rather
than a moving target.
2026-08-07 00:07:36 +00:00
poprhythm cfabe21791 gitea: lock down after cryptominer compromise
Pin image to digest instead of :nightly (DB schema already ahead of
stable 1.27, downgrading would break startup) and disable open
self-registration/OpenID signup, which attackers used to plant xmrig
via a git hook.
2026-08-06 23:56:28 +00:00
poprhythm 15640da229 minecraft: comment out immersive portals server 2026-07-29 23:44:06 +00:00
poprhythm 7468df2b8d watchtower: reduce poll interval to 24h to cut notification spam 2026-07-20 13:25:05 +00:00
poprhythm f665865762 cleanup: remove quizmaster and leafweb (unused/orphaned), add watchtower monitor-only labels, minor consistency fixes
- quizmaster: removed entirely (test service, no longer used); also removed Portainer stack and /srv/quizmaster data
- leafweb: removed orphaned MSSQL compose file (no running container, no Portainer stack, no data on disk)
- authelia, gitea, couchdb, portainer, immich (server + ml): add com.centurylinklabs.watchtower.monitor-only=true so watchtower still notifies on new versions without auto-applying them
- ladder: restore restart: unless-stopped (was commented out)
- rackpeek: add missing TZ env var
2026-07-20 02:19:32 +00:00
poprhythm 2f1a988ac3 security: remove hardcoded secrets, drop unneeded privileged mode, restrict internal-only ports to localhost
- watchtower: move Telegram token/chat ID to .env instead of plaintext in compose
- plex: remove stale/dead PLEX_CLAIM token
- uptime-kuma: mount docker.sock read-only (only needs to read container state)
- home-assistant: drop privileged: true (no device passthrough configured)
- glances: drop privileged: true, bind dashboard port to 127.0.0.1
- couchdb, docker-registry, leafweb: bind ports to 127.0.0.1 (proxy/localhost-only access confirmed, no direct LAN clients)
2026-07-20 01:49:56 +00:00
poprhythm 362643a064 minecraft: immersive: fix chat (disable enforce-secure-profile), op OlympicJumperL, allow flight 2026-07-12 17:27:07 +00:00
poprhythm eac385cc70 minecraft: immersive: force gamemode creative on login 2026-07-12 17:22:13 +00:00
poprhythm 586b48457b minecraft: immersive: set creative mode, enable command blocks, bump JVM heap to 3G 2026-07-12 17:18:41 +00:00
poprhythm 4febd0c303 minecraft: rename container to minecraft-immersive 2026-07-12 17:09:32 +00:00
poprhythm ac6946ccb5 minecraft: rename service key to immersive:, restore server name to Immersive Portals 2026-07-12 17:09:16 +00:00
poprhythm 6a2d24b6ea minecraft: bump immersive: to 1.20.4, pin gravity-api-fork to v1.3.0-mc1.20.4 2026-07-12 17:08:11 +00:00
poprhythm 69d6640d54 minecraft: rename modded to immersive:, set seed, add server icon 2026-07-12 16:58:36 +00:00
poprhythm 089f7eafa9 minecraft: add Immersive Portals SMP, comment out creative, rename terra to Terraforma SMP 2026-07-12 16:53:31 +00:00
poprhythm b9a050f8ab immich: migrate postgres from deprecated pgvecto.rs to VectorChord
immich-server auto-updated to v3.0.1 via watchtower but postgres stayed
pinned to the old pgvecto.rs image, causing a crash loop (missing vector
extension). Per official Immich migration guide.
2026-07-04 01:41:10 +00:00
poprhythm cbbcb76fcf ollama/open-webui: fix OIDC auth loop and session key persistence
open-webui was sending OAuth credentials via both client_secret_basic
(header) and client_secret_post (body) simultaneously, which Authelia
rejects. Setting OAUTH_TOKEN_ENDPOINT_AUTH_METHOD=client_secret_post
forces a single method and matches the updated Authelia client config.

WEBUI_SECRET_KEY is now a stable env var so watchtower image updates
no longer invalidate all user sessions.
2026-07-02 02:26:26 +00:00
poprhythm cfefcbfe1b minecraft: add Empire SMP server, comment out Battle Royale 2026-06-30 15:36:03 +00:00
poprhythm 8f3e7614fa inbox-zero: pin to v1.4.12 (latest tag has broken build, missing node_modules) 2026-06-15 01:56:41 +00:00
poprhythm 82cc6117fb homebox: add HBOX_AUTH_API_KEY_PEPPER env var (required by new version) 2026-06-15 01:36:40 +00:00
poprhythm 8087d19d7f nginx-proxy-acme: replace broken symlinks with empty files
These vhost.d entries were symlinks to a non-existent 'public' file.
Portainer refuses to clone repos containing symlinks, blocking all
git-based stack redeployments. Replace with empty regular files
(equivalent behavior: no extra nginx config = public access).
2026-06-15 01:33:20 +00:00
poprhythm 8871c8354b audiobookshelf: switch audiobooks mount from Docker NFS volume to systemd automount bind mount
NFS named volumes go ESTALE when unRAID drives spin down and Docker cannot recover.
systemd automount handles NFS reconnection transparently; Docker just sees a bind mount.
2026-05-05 20:27:13 +00:00
poprhythm 1ac9f06e29 ollama: restrict port 11434 to 127.0.0.1 (LAN security audit) 2026-05-03 01:40:33 +00:00
poprhythm cb17443ab6 couchdb: mount local.ini for persistent CORS config (entrypoint chowns config files, :ro breaks startup) 2026-04-26 23:39:08 +00:00
poprhythm 98d64139fe couchdb: mount persistent CORS config to survive container updates 2026-04-26 23:20:59 +00:00
poprhythm ca170af736 watchtower: remove debug logging now that scan/update/cleanup is confirmed working 2026-04-26 22:08:21 +00:00
poprhythm a925d61e83 watchtower: add debug logging + disable self-update to diagnose scanned=0 2026-04-26 17:18:05 +00:00
poprhythm 2c90e4218b watchtower: switch to nickfedor/watchtower fork (containrrr archived Dec 2025, Docker API 1.25 incompatible) 2026-04-26 17:02:34 +00:00
poprhythm ba8f1f7668 minecraft: update battle server seed to 9037888329883360986 2026-04-05 22:38:42 +00:00
poprhythm c1c86e3ab2 minecraft: add ViaVersion to battle server for cross-version client support 2026-04-03 16:22:08 +00:00
poprhythm 26c89ebb39 minecraft: fix MODRINTH_PROJECTS separator (comma not space) 2026-04-03 16:18:22 +00:00
poprhythm d4a23d0d6f minecraft: add Paper + EzCountdown + WorldResetPlugin to battle server 2026-04-03 16:16:09 +00:00
poprhythm 5353df05fb minecraft: add battle server on port 25573 for kids PVP
Survival mode, seed 854721609616927000, PVP enabled.
30-min resource gather then battle.
2026-04-03 16:10:09 +00:00
poprhythm 76e02bf26d authelia: add ownCloud iOS OIDC client to git config 2026-03-29 18:59:51 +00:00
poprhythm c58ffb1b68 romm: pass ScreenScraper credentials via Portainer env vars 2026-03-20 22:03:49 +00:00
poprhythm 03d4dae8b5 inbox-zero: add REDIS_URL env var for email-stream / Deep Clean
REDIS_URL was not set, causing "REDIS_URL is not set" errors in
/api/email-stream which powers the Deep Clean full-inbox scan.
2026-03-14 14:34:45 +00:00
poprhythm 9dee75e2a0 docs: update NAS connection strategies for Immich and nas_library/nas_family mounts 2026-03-14 02:10:52 +00:00
poprhythm b2d7f82c53 immich: migrate upload volume from NFS named volume to CIFS systemd bind mount
Replace fragile Docker NFS named volume with /mnt/nas_family/immich-library
bind mount backed by systemd mnt-nas_family.mount (permanent CIFS).
2026-03-14 02:04:33 +00:00
poprhythm f1a9346861 map-frontend: fix @protomaps/basemaps version (4 doesn't exist, use 5) 2026-03-13 14:24:44 +00:00
poprhythm a483c2e7fc map-frontend: use absolute /srv paths for nginx config and html mounts 2026-03-13 14:19:57 +00:00
poprhythm cd232d93ac map-frontend: fix nginx config mount (dir instead of file) 2026-03-13 14:14:55 +00:00
poprhythm ef1d136a3e Add map-frontend (nginx + MapLibre GL), make pmtiles internal-only
- map-frontend: nginx serves MapLibre GL static app, proxies /tiles/ to pmtiles internally
- pmtiles: remove host port binding (internal to npm-network only), update public-url
- 5 themes: light, dark, grayscale, white, black
2026-03-13 14:14:16 +00:00
poprhythm 662b558d21 torrents: document NPM web UI instance labels (OPEN/VPN badges) 2026-03-13 03:36:52 +00:00
poprhythm d7d20cd080 torrents: add nas_library bind mount to qbittorrent_open 2026-03-12 20:53:36 +00:00
poprhythm 0b4571205a Add kiwix and pmtiles services with NAS library share mounts 2026-03-12 19:50:18 +00:00