From cd94b48e2e37b35ffdfe8558a19e85711f3153e1 Mon Sep 17 00:00:00 2001 From: Quinta <112334784+Quinta0@users.noreply.github.com> Date: Tue, 28 Apr 2026 20:09:56 +0200 Subject: [PATCH] Add files via upload --- docker-compose.yml | 60 ++++++++++++++++++++++++++++++++++++++++++++++ env.example | 52 ++++++++++++++++++++++++++++++++++++++++ gitignore | 15 ++++++++++++ slskd.yml | 27 +++++++++++++++++++++ 4 files changed, 154 insertions(+) create mode 100644 docker-compose.yml create mode 100644 env.example create mode 100644 gitignore create mode 100644 slskd.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..67776bf --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,60 @@ +services: + + gluetun: + image: qmcgaw/gluetun:latest + container_name: gluetun + cap_add: + - NET_ADMIN + devices: + - /dev/net/tun:/dev/net/tun + environment: + - VPN_SERVICE_PROVIDER=protonvpn + - VPN_TYPE=wireguard + - WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY} + - WIREGUARD_ADDRESSES=${WIREGUARD_ADDRESSES} + - SERVER_COUNTRIES=${VPN_COUNTRY:-Switzerland} + - TZ=${TZ:-Europe/Zurich} + ports: + - 5030:5030 + volumes: + - ${APPDATA_PATH}/gluetun:/gluetun + restart: unless-stopped + + slskd: + image: slskd/slskd:latest + container_name: slskd + network_mode: "service:gluetun" + depends_on: + gluetun: + condition: service_healthy + environment: + - SLSKD_REMOTE_CONFIGURATION=true + volumes: + - ${APPDATA_PATH}/slskd:/app + - ${MUSIC_PATH}:/downloads + - ${MUSIC_PATH}:/music:ro + restart: unless-stopped + + explo-weekly: + image: ghcr.io/lumepart/explo:latest + container_name: explo-weekly + environment: + - EXECUTE_ON_START=true + - WEEKLY_EXPLORATION_FLAGS=--playlist=weekly-exploration --persist + volumes: + - ${APPDATA_PATH}/explo/.env:/opt/explo/.env + - ${MUSIC_PATH}/explo:/data + - ${MUSIC_PATH}:/slskd + restart: "no" + + explo-daily: + image: ghcr.io/lumepart/explo:latest + container_name: explo-daily + environment: + - EXECUTE_ON_START=true + - DAILY_JAMS_FLAGS=--playlist=daily-jams --download-mode=skip + volumes: + - ${APPDATA_PATH}/explo/.env:/opt/explo/.env + - ${MUSIC_PATH}/explo:/data + - ${MUSIC_PATH}:/slskd + restart: "no" diff --git a/env.example b/env.example new file mode 100644 index 0000000..58d125d --- /dev/null +++ b/env.example @@ -0,0 +1,52 @@ +# ========================================================= +# Ainulindale — .env.example +# Copy this file to .env and fill in your values +# ========================================================= + +# --- Paths --- +APPDATA_PATH=/mnt/user/appdata +MUSIC_PATH=/mnt/user/data/media/music + +# --- VPN (ProtonVPN WireGuard) --- +WIREGUARD_PRIVATE_KEY=your_wireguard_private_key_here +WIREGUARD_ADDRESSES=10.x.x.x/32 +VPN_COUNTRY=Switzerland +TZ=Europe/Zurich + +# ========================================================= +# Explo config — copy the block below into a separate +# file at: $APPDATA_PATH/explo/.env +# ========================================================= + +# --- Discovery --- +DISCOVERY_SERVICE=listenbrainz +LISTENBRAINZ_USER=your_listenbrainz_username +LISTENBRAINZ_DISCOVERY=playlist + +# --- Navidrome (Subsonic API) --- +EXPLO_SYSTEM=subsonic +SYSTEM_URL=http://192.168.1.x:4533 +SYSTEM_USERNAME=your_navidrome_username +SYSTEM_PASSWORD=your_navidrome_password + +# --- Downloaders (slskd first, YouTube fallback) --- +DOWNLOAD_SERVICES=slskd,youtube +TRACK_EXTENSION=mp3 + +# --- slskd --- +SLSKD_URL=http://slskd:5030 +SLSKD_API_KEY=your_slskd_api_key_min_16_chars +MIGRATE_DOWNLOADS=true +RENAME_TRACK=true + +# --- Quality gates (FLAC/WAV preferred, 320kbps minimum) --- +EXTENSIONS=flac,wav,mp3 +MIN_BITRATE=320 +MIN_BIT_DEPTH=16 + +# --- YouTube fallback (optional) --- +# YOUTUBE_API_KEY=your_youtube_data_api_key + +# --- Misc --- +SLEEP=2 +LOG_LEVEL=INFO diff --git a/gitignore b/gitignore new file mode 100644 index 0000000..62d2900 --- /dev/null +++ b/gitignore @@ -0,0 +1,15 @@ +# Environment files with real secrets — never commit these +.env +appdata/explo/.env + +# In case anyone copies actual config files in +slskd.yml.local +docker-compose.override.yml + +# OS clutter +.DS_Store +Thumbs.db + +# Editor +.vscode/ +.idea/ diff --git a/slskd.yml b/slskd.yml new file mode 100644 index 0000000..7c636cb --- /dev/null +++ b/slskd.yml @@ -0,0 +1,27 @@ +soulseek: + username: your_soulseek_username + password: your_soulseek_password + +web: + authentication: + username: your_chosen_web_username + password: your_chosen_web_password + api_keys: + explo_key: + key: your_api_key_minimum_16_chars_long # paste this into .env as SLSKD_API_KEY + role: readwrite + cidr: 0.0.0.0/0,::/0 + +directories: + incomplete: /downloads/incomplete + downloads: /downloads + +transfers: + download: + slots: 50 + upload: + slots: 20 + +shares: + directories: + - /music