APP_NAME=Koel APP_ENV=production APP_DEBUG=true APP_URL=http://localhost:8000 # A random 32-char string. You can leave this empty if use php artisan koel:init. APP_KEY= # Database connection name, which corresponds to the database driver. # Possible values are: # mysql (MySQL/MariaDB - default) # pgsql (PostgreSQL) # sqlsrv (Microsoft SQL Server) # sqlite-persistent (Local sqlite file) # IMPORTANT: This value must present for `artisan koel:init` command to work. DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=koel DB_USERNAME=koel DB_PASSWORD= # Some providers (e.g. Heroku) provide a "database URL" instead separated config values, which # you can use here instead. DATABASE_URL= # The absolute path to the root CA bundle if you're connecting to the MySQL database via SSL. MYSQL_ATTR_SSL_CA= # The storage driver. Valid values are: # local: Store files on the server's local filesystem. # s3: Store files on Amazon S3 or a S3-compatible service (e.g. Cloudflare R2 or DigitalOcean Spaces). Koel Plus only. # dropbox: Store files on Dropbox. Koel Plus only. STORAGE_DRIVER=local # The ABSOLUTE path to your media. This value can always be changed later via the web interface. # Required if you're using the local file system to store your media (STORAGE_DRIVER=local). MEDIA_PATH= # S3 or S3-compatible service settings. Required if you're using S3 to store your media (STORAGE_DRIVER=s3). # Remember to set CORS policy to allow access from your Koel's domain (or "*"). AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= # For Cloudflare R2, set this to "auto". For S3 and other services, set this to the region of your bucket. AWS_REGION= AWS_ENDPOINT= AWS_BUCKET= # Dropbox settings. Required if you're using Dropbox to store your media (STORAGE_DRIVER=dropbox) # Follow these steps to have these values filled: # 1. Create a Dropbox app at https://www.dropbox.com/developers/apps # 2. Run `php artisan koel:setup-dropbox` from the CLI and follow the instructions. DROPBOX_APP_KEY= DROPBOX_APP_SECRET= DROPBOX_REFRESH_TOKEN= # By default, Koel ignores dot files and folders. This greatly improves performance if your media # root have folders like .git or .cache. If by any chance your media files are under a dot folder, # set the following setting to false. IGNORE_DOT_FILES=true # The maximum scan time, in seconds. Increase this if you have a huge library. # Note: This setting doesn't have effect when scanning via koel:sync. APP_MAX_SCAN_TIME=600 # The memory limit, in MB, used by the scanning process. # For example, if you want to set a memory limit of 2048MB, enter "2048" (without # quotes) here. MEMORY_LIMIT= # The streaming method. # Can be either 'php' (default), 'x-sendfile', or 'x-accel-redirect' # See https://docs.koel.dev/usage/streaming for more information. # Note: This setting doesn't have effect if the media needs transcoding (e.g. FLAC). # ################################################## # IMPORTANT: It's HIGHLY recommended to use 'x-sendfile' or 'x-accel-redirect' if # you plan to use the Koel mobile apps. # ################################################## STREAMING_METHOD=php # Full text search driver. # Koel supports all drivers supported by Laravel (see https://laravel.com/docs/9.x/scout). # Available drivers: 'tntsearch' (default), 'database', 'algolia' or 'meilisearch'. # For Algolia or MeiliSearch, you need to provide the corresponding credentials. SCOUT_DRIVER=tntsearch ALGOLIA_APP_ID= ALGOLIA_SECRET= MEILISEARCH_HOST= MEILISEARCH_KEY= # Last.fm API can be used to fetch artist and album information, as well as to # allow users to connect to their Last.fm account and scrobble. # To integrate Koel with Last.fm, create an API account at # https://www.last.fm/api/account/create and set the credentials here. # Consult Koel's doc for more information. LASTFM_API_KEY= LASTFM_API_SECRET= # Spotify API can be used to fetch artist and album images. # To integrate Koel with Spotify, create a Spotify application at # https://developer.spotify.com/dashboard/applications and set the credentials here. # Consult Koel's docs for more information. SPOTIFY_CLIENT_ID= SPOTIFY_CLIENT_SECRET= # To integrate Koel with YouTube, set the API key here. # See https://docs.koel.dev/service-integrations#youtube for more information. YOUTUBE_API_KEY= # You can also configure Koel to use a CDN to serve the media files. # This url must be mapped to the home URL of your Koel's installation. # No trailing slash. CDN_URL= # To transcode FLAC to MP3 and stream it on the fly, make sure the following settings are sane. # If you don't want to transcode FLAC (i.e. to stream it as-is), set this to false. TRANSCODE_FLAC=false # The full path of ffmpeg binary. FFMPEG_PATH=/usr/local/bin/ffmpeg # The bit rate of the output mp3 stream. Higher value results in better quality, # but slower streaming and more bandwidth. OUTPUT_BIT_RATE=128 # Whether to allow song downloading. # Note that if you're downloading more than one song, Koel will zip them up # using PHP's ZipArchive. So if the module isn't available in the current # environment, such a download will (silently) fail. ALLOW_DOWNLOAD=true # Whether to create a backup of a song instead of deleting it from the filesystem. # If true, the song will simply be renamed into a .bak file. BACKUP_ON_DELETE=true # Sync logs can be found under storage/logs/. Valid options are: # all: Log everything (errored-, skipped-, and successfully processed file). # error: Log errors only. This is the default. SYNC_LOG_LEVEL=error # Koel attempts to detect if your website uses HTTPS and generates secure URLs accordingly. # If this attempt fails for any reason, you can force it by setting this value to true. FORCE_HTTPS= # Pusher configuration, for interesting features such as remote controlling. PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER= # The following settings are for Koel to send emails, for example to send user invitations and reset passwords. MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_NAME="${APP_NAME}" MAIL_MAILER=smtp MAIL_HOST=mailhog MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null SQS_PUBLIC_KEY= SQS_SECRET_KEY= SQS_QUEUE_PREFIX= SQS_QUEUE_NAME= SQS_QUEUE_REGION= # The variables below are Laravel-specific. # You can change them if you know what you're doing. Otherwise, just leave them as-is. BROADCAST_DRIVER=log CACHE_DRIVER=file FILESYSTEM_DISK=local QUEUE_CONNECTION=sync SESSION_DRIVER=file SESSION_LIFETIME=120