The HiDrive WebDAV mount was causing severe performance issues:
- High latency for directory listings and file checks
- Slow UI page loads (multi-second delays)
- Database query idle times of 600-1600ms
Changed to use local Docker volume for /downloads, which provides:
- Fast filesystem operations
- Responsive UI
- No database connection delays
Note: Downloads are now stored locally. Set up rsync/rclone
to sync to HiDrive if remote storage is needed.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
SQLite was experiencing connection timeouts and errors because the
downloads folder is on a HiDrive network mount. Setting JOURNAL_MODE
to delete fixes SQLite locking issues on network filesystems.
Fixes: database connection timeouts and "Sqlite3 was invoked incorrectly" errors
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Pinchflat service with Authelia SSO protection
- Configure download folder at /mnt/hidrive/users/valknar/Downloads/pinchflat
- Expose on pinchflat.media.pivoine.art
- Port 8945 with WebSocket support
- Protected by net-authelia middleware for secure access
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove Navidrome service from media stack
- Remove Navidrome configuration from arty.yml
- Remove media/scan command (Navidrome-specific)
- Jellyfin now handles all media: images, videos, and music
- Add /mnt/hidrive/users/valknar/Music mount to Jellyfin
- Remove standalone nginx music_files service
- Jellyfin now serves images, videos, and music
- Supports transcoding, download tracking, and direct URLs via API
- Add nginx service to serve music files at music.media.pivoine.art
- Enables direct MP3 file URLs for website embedding
- Serves files from /mnt/hidrive/users/valknar/Music read-only
- Remove Koel and koel_init services from media stack
- Remove Ampache service from media stack
- Add Navidrome service at navidrome.media.pivoine.art
- Remove koel and ampache databases from postgres init script
- Update arty.yml with Navidrome configuration
- Navidrome uses SQLite (no PostgreSQL required)
- Supports public sharing and Subsonic API compatibility
- Add ampache service to media/compose.yaml with PostgreSQL backend
- Create ampache database in postgres init script
- Configure Ampache environment variables in arty.yml
- Mount Music directory read-only
- Expose at ampache.media.pivoine.art via Traefik
- Add MEDIA_PATH, STORAGE_DRIVER, TRUSTED_PROXIES, and FORCE_HTTPS to environment
- Apply settings to both koel and koel_init containers
- Ensures configuration persists across container restarts without manual intervention
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Combine Jellyfin, Filestash, and Koel into single media/ compose stack
- Remove standalone jelly/ and stash/ compose files
- Add Koel music streaming with PostgreSQL backend
- Update core PostgreSQL init script to create koel database
- Add media stack to root compose.yaml include
- Configure media services with subdomain routing (jellyfin.media, filestash.media, koel.media)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>