You will also need a .env file with the following contents copied and filled out:
.env
# Please, no slashes at the end for any URLs.# Internal Maki base URL (e.g. the one that a container can reach)INTERNAL_MAKI_BASE_URL=http://maki:3033# External Maki base URL (the one the user can reach)EXTERNAL_MAKI_BASE_URL=http://api.muse.lutea.co# The base URL for Nozomi *the user can reach*NOZOMI_BASE_URL=http://muse.lutea.co# The base URL for Umi *the user can reach*# Can either be a subdomain or a path, if you have that set upUMI_BASE_URL=http://umi.muse.lutea.co# The default oauth client is ZITADEL.ZITADEL_CLIENT_ID=y0ur-cl13nt-1dZITADEL_CLIENT_SECRET=y0ur-cl13nt-s3cr3tZITADEL_ISSUER=https://zitadel.your.domainAUTH_SECRET=y0ur-auth-s3cr3tDATABASE_URL=postgres://postgres:password@maki-db:5432/postgres# Your music mount pointMOUNT=/music# Last.FM API credsFM_KEY=your-fm-api-keyFM_SECRET=your-fm-secret# Spotify API credsSPOTIFY_ID=your-spotify-api-credsSPOTIFY_SECRET=your-secret# Apple Music API creds, for UmiAPPLE_MUSIC_USER_TOKEN=yourAppleMusicUserToken# Change these if you don't need themRUST_BACKTRACE=1RUST_LOG=info
To use Traefik with Muse, you'll need to add it to the docker-compose (or have all the exposed services in the same network) and set up labels on the services you want to expose.
docker-compose.yml
services: reverse-proxy: # The official v2 Traefik docker image image: traefik:latest # Enables the web UI and tells Traefik to listen to docker command: - "--log.level=DEBUG" - "--api.insecure=true" - "--providers.docker" - "--entrypoints.https.address=:443" - "--certificatesresolvers.https.acme.tlschallenge=true" #- "--certificatesresolvers.https.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory" - "[email protected]" - "--certificatesresolvers.https.acme.storage=/letsencrypt/acme.json" ports: # The HTTP port - "80:80" - "443:443" # The Web UI (enabled by --api.insecure=true) - "8080:8080" volumes: # So that Traefik can listen to the Docker events - /var/run/docker.sock:/var/run/docker.sock - "./letsencrypt:/letsencrypt" networks: # traefik_proxy is only needed if you are splitting your services up - traefik_proxy - default
On each service you want to expose, add this (for this example, we'll use nozomi):
services: nozomi: image: ghcr.io/espeon/muse/nozomi:latest ports: - "3031:3031" env_file: - ".env" depends_on: - "maki" # Add these labels labels: - "traefik.http.routers.nozomi.rule=Host(`muse.your.domain`)" - "traefik.http.routers.nozomi.tls.certresolver=dns" - "traefik.docker.network=traefik_proxy" networks: - traefik_proxy - default# Add these networks if your traefik instance is in a separate filenetworks: traefik_proxy: external: true name: traefik_proxy default: driver: bridge