Files
hub/docker-compose.yml
T
nmemmertandClaude Sonnet 5.5 bc3710807d
build-container / build (push) Successful in 3m16s
Seafile sign-in follows the person across devices; sturdier Plex player; audiobooks frame with server-side secret sign-in
- Seafile token is saved on the server (encrypted) so Settings shows the real signed-in state everywhere
- Player: whole-track cache for current and next two, stall recovery, instant track changes, shuffle/repeat, Plex play counts, transcode fallback, Plex request timeout
- Audio tab: toolbar, full-height kept-alive frame; /api/audiobooks/enter adds the secret login link on the server

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 08:26:18 -04:00

33 lines
1.8 KiB
YAML

services:
hub:
image: git.necloud.us/nate/hub:latest # built by the Gitea workflow; `docker compose build` builds locally instead
build: .
restart: unless-stopped
# The container looks names up through these. If necloud.us only exists on your home/LAN DNS
# (Pi-hole, router, AdGuard...), set DNS_1 to that server's IP instead.
dns:
- ${DNS_1:-1.1.1.1}
- ${DNS_2:-8.8.8.8}
ports:
- "8080:8080"
environment:
# Edit the values here, or leave the ${...} placeholders and set them in a .env file / your stack's env UI.
SEAFILE_URL: ${SEAFILE_URL:-https://seafile.necloud.us}
ONLYOFFICE_URL: ${ONLYOFFICE_URL:-https://onlyoffice.necloud.us}
AUDIOBOOKS_URL: ${AUDIOBOOKS_URL:-https://audiobooks.necloud.us}
AUDIOBOOKS_LOGIN_LINK: ${AUDIOBOOKS_LOGIN_LINK:-}
AUDIOBOOKS_SSO_SECRET: ${AUDIOBOOKS_SSO_SECRET:-}
AUDIOBOOKS_SSO_URL: ${AUDIOBOOKS_SSO_URL:-}
VERSE_URL: ${VERSE_URL:-https://versebyversewithnate.us/admin}
PODCAST_URL: ${PODCAST_URL:-https://podcast.necloud.us/}
ONLYOFFICE_JWT_SECRET: ${ONLYOFFICE_JWT_SECRET:-} # same value as the OnlyOffice server's JWT secret
PUBLIC_URL: ${PUBLIC_URL:-} # e.g. https://hub.necloud.us (OnlyOffice posts saved edits here)
HUB_SETUP_CODE: ${HUB_SETUP_CODE:-} # first passkey; if empty, a code is printed in the log
SESSION_DAYS: ${SESSION_DAYS:-180} # how long you stay signed in when idle; using the app renews it
COOKIE_SECRET: ${COOKIE_SECRET:-} # optional; auto-generated and kept in /data if empty
volumes:
- hub-data:/data # passkeys, calendar links and the session secret live here
volumes:
hub-data:
name: nehub-data # fixed name so the data survives redeploys and renamed stacks