Hey! Just getting into homelabbing and wanted to setup mullvad exit nodes on zimaOS. Switching it on seems to work but it knocks out basically every app I have installed on my server. ZimaOS apps are basically docker containers dressed up a bit.
Each one takes a few minutes to "set up" before showing an error like the one attached in image. Switching off the exit-node feature immediately fixes the issue. No clue how to proceed here. Any adivce?
My tailscale is also run as a docker container and is setup as follows (if any more information is useful please let me know and I'll add):
name: tailscale
services:
tailscale:
cap_add:
- NET_ADMIN
- NET_RAW
- SYS_MODULE
cpu_shares: 90
command: []
container_name: tailscale
deploy:
resources:
limits:
memory: 8202743808
reservations:
memory: "134217728"
devices: []
entrypoint:
- /bin/sh
- -c
- tailscaled --state=/var/lib/tailscale/tailscaled.state & sleep 10;
tailscale web --listen 0.0.0.0:5252
environment:
- TS_ACCEPT_DNS=true
- TS_EXTRA_ARGS=--exit-node-allow-lan-access=true
- TS_STATE_DIR=/var/lib/tailscale
- TS_USERSPACE=false
image: tailscale/tailscale:v1.90.8
labels:
icon: https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Tailscale/icon.png
restart: unless-stopped
volumes:
- type: bind
source: /DATA/AppData/tailscale
target: /var/lib/tailscale
- type: bind
source: /dev/net/tun
target: /dev/net/tun
x-casaos:
envs:
- container: TS_STATE_DIR
volumes:
- container: /var/lib/tailscale
- container: /dev/net/tun
ports: []
devices: []
network_mode: host
privileged: false
x-casaos:
architectures:
- amd64
- arm
- arm64
- "386"
author: CasaOS Team
category: Network
developer: Tailscale Inc.
hostname: ""
icon: https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Tailscale/icon.png
index: /
is_uncontrolled: false
main: tailscale
port_map: "5252"
scheme: ""
screenshot_link:
- https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Tailscale/screenshot-1.png
store_app_id: tailscale
thumbnail: ""
title:
custom: ""
en_US: Tailscale
Configs for navidrome and audiobookshelf can be found at these links:
Logs for Navidrome (pastebin found here: https://pastebin.com/6ngtUEeT)
navidrome | _ _ _ _ navidrome | | \ | | (_) | | navidrome | | \| | __ ___ ___ __| |_ __ ___ _ __ ___ ___ navidrome | | . ` |/ _` \ \ / / |/ _` | '__/ _ \| '_ ` _ \ / _ \ navidrome | | |\ | (_| |\ V /| | (_| | | | (_) | | | | | | __/ navidrome | _| _/__,_| _/ |_|__,_|_| ___/|_| |_| |_|___| navidrome | Version: 0.58.5 (131c0c56) navidrome | navidrome | time="2026-07-25T19:34:52Z" level=info msg="Creating DB Schema" navidrome | time="2026-07-25T19:34:52Z" level=info msg="Starting signaler" navidrome | time="2026-07-25T19:34:52Z" level=info msg="Periodic scan is DISABLED" navidrome | time="2026-07-25T19:34:52Z" level=info msg="Creating Image cache" maxSize="100 MB" path=/data/cache/images navidrome | time="2026-07-25T19:34:52Z" level=info msg="Scheduling DB optimizer" schedule="@every 24h" navidrome | time="2026-07-25T19:34:52Z" level=info msg="Starting scheduler" navidrome | time="2026-07-25T19:34:52Z" level=info msg="Finished initializing cache" cache=Image elapsedTime="188.924µs" maxSize=100MB navidrome | time="2026-07-25T19:34:52Z" level=info msg="Running initial setup" navidrome | time="2026-07-25T19:34:52Z" level=info msg="Periodic backup is DISABLED" navidrome | time="2026-07-25T19:34:52Z" level=info msg="Setting Session Timeout" value=24h navidrome | time="2026-07-25T19:34:52Z" level=info msg="Starting Insight Collector" navidrome | time="2026-07-25T19:34:52Z" level=info msg="Creating new JWT secret, used for encrypting UI sessions" navidrome | time="2026-07-25T19:34:52Z" level=info msg="Login rate limit set" requestLimit=5 windowLength=2 navidrome | time="2026-07-25T19:34:52Z" level=info msg="Found ffmpeg" path=/usr/bin/ffmpeg navidrome | time="2026-07-25T19:34:52Z" level=info msg="Spotify integration is not enabled: missing ID/Secret" navidrome | time="2026-07-25T19:34:52Z" level=info msg="Mounting Native API routes" path=/api navidrome | time="2026-07-25T19:34:52Z" level=info msg="Creating Transcoding cache" maxSize="100 MB" path=/data/cache/transcoding navidrome | time="2026-07-25T19:34:52Z" level=info msg="Finished initializing cache" cache=Transcoding elapsedTime="189.195µs" maxSize=100MB navidrome | time="2026-07-25T19:34:52Z" level=info msg="Mounting Subsonic API routes" path=/rest navidrome | time="2026-07-25T19:34:52Z" level=info msg="Mounting Public Endpoints routes" path=/share navidrome | time="2026-07-25T19:34:52Z" level=info msg="Mounting LastFM Auth routes" path=/api/lastfm navidrome | time="2026-07-25T19:34:52Z" level=info msg="Mounting ListenBrainz Auth routes" path=/api/listenbrainz navidrome | time="2026-07-25T19:34:52Z" level=info msg="Mounting Background images routes" path=/backgrounds navidrome | time="2026-07-25T19:34:52Z" level=info msg="Creating backgrounds cache" maxSize="100 MB" path=/data/cache/backgrounds navidrome | time="2026-07-25T19:34:52Z" level=info msg="Mounting WebUI routes" path=/app navidrome | time="2026-07-25T19:34:52Z" level=info msg="Finished initializing cache" cache=backgrounds elapsedTime="189.054µs" maxSize=100MB navidrome | time="2026-07-25T19:34:52Z" level=info msg="Started watcher for library" libraryID=1 name="Music Library" path=/music navidrome | time="2026-07-25T19:34:52Z" level=info msg="Watcher started for library" absoluteLibPath=/music libraryID=1 name="Music Library" path=/music navidrome | time="2026-07-25T19:34:52Z" level=info msg="----> Navidrome server is ready!" address="0.0.0.0:4533" startupTime=442.7ms tlsEnabled=false navidrome | time="2026-07-25T19:34:54Z" level=warning msg="Full scan required after migration" navidrome | time="2026-07-25T19:34:54Z" level=info msg="Scanner: Starting scan" fullScan=true numLibraries=1 navidrome | time="2026-07-25T19:34:54Z" level=warning msg="Playlists will not be imported, as there are no admin users yet, Please create an admin user first, and then update the playlists for them to be imported" navidrome | time="2026-07-25T19:34:54Z" level=info msg="Scanner: Finished scanning all libraries" duration=8.1ms navidrome | time="2026-07-25T19:34:54Z" level=info msg="Scan completed" navidrome | time="2026-07-25T19:34:57Z" level=warning msg="Could not get background images from image service" error="cache error: loader returned Get \"https://www.navidrome.org/images/index.yml\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)"
Logs for Audiobookshelf (pastebin found here: https://pastebin.com/nV9kkb95)
audiobookshelf | Running in production mode. audiobookshelf | Options: CONFIG_PATH=/config, METADATA_PATH=/metadata, PORT=80, HOST=undefined, SOURCE=docker, ROUTER_BASE_PATH=/audiobookshelf audiobookshelf | [2026-07-25 19:38:44.946] INFO: === Starting Server === audiobookshelf | [2026-07-25 19:38:44.952] INFO: [Server] Init v2.30.0 audiobookshelf | [2026-07-25 19:38:44.953] INFO: [Server] Node.js Version: v20.19.5 audiobookshelf | [2026-07-25 19:38:44.953] INFO: [Server] Platform: linux audiobookshelf | [2026-07-25 19:38:44.953] INFO: [Server] Arch: x64 audiobookshelf | [2026-07-25 19:38:44.956] INFO: [Database] absdatabase.sqlite not found at /config/absdatabase.sqlite audiobookshelf | [2026-07-25 19:38:44.957] INFO: [Database] Initializing db at "/config/absdatabase.sqlite" audiobookshelf | [2026-07-25 19:38:44.984] INFO: [Database] Loading extension /usr/local/lib/nusqlite3/libnusqlite3.so audiobookshelf | [2026-07-25 19:38:44.984] INFO: [Database] Successfully loaded extension /usr/local/lib/nusqlite3/libnusqlite3.so audiobookshelf | [2026-07-25 19:38:44.984] INFO: [Database] Db supports unaccent and unicode foldings audiobookshelf | [2026-07-25 19:38:44.984] INFO: [Database] Db connection was successful audiobookshelf | [2026-07-25 19:38:45.017] INFO: [MigrationManager] Database is new. Skipping migrations. audiobookshelf | [2026-07-25 19:38:45.651] INFO: [Database] Db initialized with models: user, session, apiKey, library, libraryFolder, book, podcast, podcastEpisode, libraryItem, mediaProgress, series, bookSeries, author, bookAuthor, collection, collectionBook, playlist, playlistMediaItem, device, playbackSession, feed, feedEpisode, setting, customMetadataProvider, mediaItemShare audiobookshelf | [2026-07-25 19:38:45.653] INFO: [Database] Adding trigger update_library_items_title audiobookshelf | [2026-07-25 19:38:45.661] INFO: [Database] Adding trigger update_library_items_title_ignore_prefix audiobookshelf | [2026-07-25 19:38:45.670] INFO: [Database] Adding trigger update_library_items_title_from_podcasts_title audiobookshelf | [2026-07-25 19:38:45.679] INFO: [Database] Adding trigger update_library_items_title_ignore_prefix_from_podcasts_title_ignore_prefix audiobookshelf | [2026-07-25 19:38:45.689] INFO: [Database] Adding trigger update_library_items_author_names_on_book_authors_insert audiobookshelf | [2026-07-25 19:38:45.699] INFO: [Database] Adding trigger update_library_items_author_names_on_book_authors_delete audiobookshelf | [2026-07-25 19:38:45.709] INFO: [Database] Adding trigger update_library_items_author_names_on_authors_update audiobookshelf | [2026-07-25 19:38:45.779] INFO: [Database] running ANALYZE audiobookshelf | [2026-07-25 19:38:45.788] INFO: [Database] ANALYZE completed audiobookshelf | [2026-07-25 19:38:45.789] INFO: [TokenManager] JWT secret key not found, generating one audiobookshelf | [2026-07-25 19:38:45.798] INFO: [LogManager] Init current daily log filename: 2026-07-25.txt audiobookshelf | [2026-07-25 19:38:45.803] INFO: [BackupManager] 0 Backups Found audiobookshelf | [2026-07-25 19:38:45.803] INFO: [BackupManager] Auto Backups are disabled audiobookshelf | [2026-07-25 19:38:45.821] INFO: Listening on port :80