Take full control of your audio library with a fast, open-source music streaming server. Enjoy a modern, intuitive interface optimized to deliver lightning-fast performance and seamless playback across all your devices, no matter how large your collection grows.
Key benefits include:
Premium upgrades offer cloud storage compatibility, individual user libraries, and collaborative playlists for a complete multi-user experience.
services:
koel:
image: phanan/koel:latest
container_name: koel
depends_on:
- database
ports:
- "8000:8000"
environment:
- DB_CONNECTION=mysql
- DB_HOST=database
- DB_PORT=3306
- DB_DATABASE=${DB_DATABASE}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- APP_KEY=${APP_KEY}
- ADMIN_EMAIL=${ADMIN_EMAIL}
- ADMIN_NAME=${ADMIN_NAME}
- ADMIN_PASSWORD=${ADMIN_PASSWORD}
- MEMORY_LIMIT=512
volumes:
- ./music:/music
- ./covers:/var/www/html/public/img/covers
- ./search_index:/var/www/html/storage/search-indexes
restart: unless-stopped
database:
image: mysql:8.0
container_name: koel-database
environment:
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
- MYSQL_DATABASE=${DB_DATABASE}
- MYSQL_USER=${DB_USERNAME}
- MYSQL_PASSWORD=${DB_PASSWORD}
volumes:
- ./db_data:/var/lib/mysql
restart: unless-stoppedDB_ROOT_PASSWORD=supersecretrootpassword
DB_DATABASE=koel
DB_USERNAME=koel
DB_PASSWORD=supersecretpassword
# Generate a key with `php artisan key:generate` or `openssl rand -base64 32`
APP_KEY=base64:your_32_char_random_string_here================
ADMIN_EMAIL=admin@example.com
ADMIN_NAME=Admin
ADMIN_PASSWORD=changeme123Auto-fetched about 19 hours ago
Auto-fetched about 19 hours ago