Skip to content

Make .env file optional when passing variables through docker env #111

@0fflineuser

Description

@0fflineuser

Hi,
as I pass the explo env variables through the docker compose environment I don't need to share and .env file using a docker volume.

Would it be possible to not make the .env required for explo to start properly ? Right now it needs to exist for explo to start properly so I use a workaround with post_start.

Without the .env file created I get this error :

ERROR failed to load config from env vars context="wrong type ptr"

Here is my working explo compose service :

  explo:
    image: ghcr.io/lumepart/explo:latest
    restart: unless-stopped
    container_name: explo
    volumes:
      - storage_library_explo:/data/
      - storage_slskd_downloads:/slskd/
      # - $PLAYLIST_DIR:$PLAYLIST_DIR # for MPD. Both paths should be as defined in .env (e.g /my/playlists/:/my/playlists/)
      # - /path/to/cookies.txt:/opt/explo/cookies.txt # Path to optional cookies file (for yt-dlp)
    post_start:
      - command: touch /opt/explo/.env
        user: root
    environment:
      - TZ=${TZ} # Change this to the timezone set in ListenBrainz (default is UTC)
      - WEEKLY_EXPLORATION_SCHEDULE=0 12 * * 0
      - WEEKLY_EXPLORATION_FLAGS=--playlist=weekly-exploration --download-mode=normal --exclude-local=false --persist=false
      - WEEKLY_JAMS_SCHEDULE=0 10 * * 0
      - WEEKLY_JAMS_FLAGS=--playlist=weekly-jams --download-mode=normal --exclude-local=false --persist=false
      - DAILY_JAMS_SCHEDULE=0 05 * * *
      - DAILY_JAMS_FLAGS=--playlist=daily-jams --download-mode=normal --exclude-local=false --persist=false
      - EXECUTE_ON_START=true

      - YOUTUBE_API_KEY=${YOUTUBE_API_KEY}

      - SLSKD_API_KEY=${EXPLO_SLSKD_API_KEY}
      - DISCOVERY_SERVICE=${EXPLO_DISCOVERY_SERVICE}
      - LISTENBRAINZ_USER=${EXPLO_LISTENBRAINZ_USER}
      - LISTENBRAINZ_DISCOVERY=${EXPLO_LISTENBRAINZ_DISCOVERY}
      - EXPLO_SYSTEM=${EXPLO_EXPLO_SYSTEM}
      - SYSTEM_URL=${EXPLO_SYSTEM_URL}
      - SYSTEM_USERNAME=${EXPLO_SYSTEM_USERNAME}
      - SYSTEM_PASSWORD=${EXPLO_SYSTEM_PASSWORD}
      - PUBLIC_PLAYLIST=${EXPLO_PUBLIC_PLAYLIST}
      - USE_SUBDIRECTORY=${EXPLO_USE_SUBDIRECTORY}
      - DOWNLOAD_SERVICES=${EXPLO_DOWNLOAD_SERVICES}
      - COOKIES_PATH=${EXPLO_COOKIES_PATH}
      - SLSKD_URL=${EXPLO_SLSKD_URL}
      - MIGRATE_DOWNLOADS=${EXPLO_MIGRATE_DOWNLOADS}
      - RENAME_TRACK=${EXPLO_RENAME_TRACK}
      - SLSKD_RETRY=${EXPLO_SLSKD_RETRY}
      - SLSKD_DL_ATTEMPTS=${EXPLO_SLSKD_DL_ATTEMPTS}
      - EXTENSIONS=${EXPLO_EXTENSIONS}
      - MIN_BIT_DEPTH=${EXPLO_MIN_BIT_DEPTH}
      - MIN_BITRATE=${EXPLO_MIN_BITRATE}
      - FILTER_LIST=${EXPLO_FILTER_LIST}
      - SINGLE_ARTIST=${EXPLO_SINGLE_ARTIST}
      - SLEEP=${EXPLO_SLEEP}
      - LOG_LEVEL=${EXPLO_LOG_LEVEL}
      - CLIENT_HTTP_TIMEOUT=${EXPLO_CLIENT_HTTP_TIMEOUT}
    networks:
      - music
      - seedbox
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 512M
        reservations:
          cpus: '0.5'
          memory: 256M

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions