Skip to content

Refactor container layout: standardize paths, simplify volumes, and improve playlist/cover handling#7

Merged
jonasmore merged 26 commits into
jonasmore:mainfrom
drolex2:refactor-mounts
Sep 8, 2025
Merged

Refactor container layout: standardize paths, simplify volumes, and improve playlist/cover handling#7
jonasmore merged 26 commits into
jonasmore:mainfrom
drolex2:refactor-mounts

Conversation

@drolex2

@drolex2 drolex2 commented Aug 29, 2025

Copy link
Copy Markdown
Contributor
  • Directory and volume layout
    • Moved application files into /app.
    • Introduced a dedicated /data mount for app data (logs, config, cover).
    • Simplified volume usage: only a single volume/bind is required for app data, plus explicit mounts for music and playlists.
  • Playlist directory handling
    • Clarified that Jellyfin’s playlist directory must be mounted into the JellyJams container for direct file access.
    • Removed the PLAYLIST_FOLDER variable and standardized the container’s playlist directory at /playlists (no need for it to be configurable).
    • Fixed: when artist name has special characters, playlist and cover image were saving to different directories.
  • Covers and artwork
    • Build process now copies default cover art into /data/cover/ if not already present, allowing users to customize covers in the host appdata directory.
    • Removed redundant cover art checks in start.sh.
    • Simplified and increased speed of cover art search logic to only scan the mounted music directory (since the container cannot see other host paths).
    • Added Jellyfin API method to get artist image by artist name and try this before searching the artist directory.
    • Added support for .webp, .avif, and .bmp image formats in all image searches.
    • Generated covers are saved as .webp images for better combination of quality and compression
  • Configuration and environment variables
    • Added explicit environment variables for all required mounts and reflected these in docker-compose.yml.
    • Added default values for essential variables in docker-compose.yml
    • Removed all named volumes from docker-compose.yml in favor of an appdata bind.
    • Removed the need for a separate docker-compose-unraid.yml; recommend removing it.
  • Ports
    • Now using WEB_PORT for internal and external port.
    • This is helpful for anyone using the host network with other services that may use port 5000.
  • Logging
    • Removed forced DEBUG logging to respect the user's LOG_LEVEL setting.
  • General cleanup
    • Updated other code and instructions (README, SETTINGS) to use new file locations, ports, methods, formats, etc.

@drolex2 drolex2 changed the title Refactor mounts Refactor container layout: standardize paths, simplify volumes, and improve playlist/cover handling Aug 31, 2025
@drolex2

drolex2 commented Sep 7, 2025

Copy link
Copy Markdown
Contributor Author

@jonasmore What do you think about this pull request? Will it be merged?

@jonasmore

Copy link
Copy Markdown
Owner

Thanks @drolex2 looks good.

The change of the volume mapping simplifies the configuration.

New mapping:
PLAYLIST_DIR_HOST=./jellyfin/data/playlists
MUSIC_DIR_HOST=/host/path/to/music
MUSIC_DIR_CONTAINER=/jellyfin/container/path/to/music

@jonasmore
jonasmore merged commit e95eea8 into jonasmore:main Sep 8, 2025
1 check failed
@drolex2
drolex2 deleted the refactor-mounts branch September 8, 2025 20:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants