Environment Variables

Environment variables can be used in your docker-compose.yaml file under the environment key, or via the CLI using the -e flag, to alter the functionality and output of the app.

Docker compose example:

services:
  m3u-editor:
    image: sparkison/m3u-editor:latest
    container_name: m3u-editor
    environment:
      - VARIABLE_NAME=value
    ...

or via CLI: docker run --name m3u-editor -e VARIABLE_NAME=value ...

🛠️ Variables

Variable Name Accepted Values/Types Default Value Description
PUID int 1000 user ID to run under (not currently implemented)
PGID int 1000 group ID to run under (not currently implemented)
APP_DEBUG true or false false output additional info to the log file
AUTO_LOGIN true or false false enable auto-login functionality
LOGIN_PATH string login the path used to login to the app
REDIRECT_GUEST_TO_LOGIN true or false true redirect the base domain to the login page if not logged in
APP_URL fully qualified domain name http://localhost url or IP address where app is being hosted, including http
APP_PORT valid port number 36400 the port to run the app on
REVERB_SCHEME http or https http how to access websockets
REVERB_HOST valid hostname localhost where the websocket server is running (may need to change to host IP)
REVERB_PORT valid port number 36800 port used to access websocket server
REVERB_VERIFY true or false true set to false to disable SSL verification. Set to true (default) to enable
REDIS_HOST valid hostname localhost default uses container instance
REDIS_SERVER_PORT valid port number 36790 default uses container instance
PROXY_URL_OVERRIDE fully qualified domain name null url or IP address where app is being hosted, including http. If null or not set, will use APP_URL
PROXY_FFMPEG_PATH ffmpeg or jellyfin-ffempg, or valid path to executable null valid path to executable if not ffmpeg or jellyfin-ffempg for local instance
PROXY_FFMPEG_ADDITIONAL_ARGS valid ffmpeg input args null arguments will be added before the input source
PROXY_FFMPEG_CODEC_VIDEO valid video codec null valid ffmpeg video codec, e.g. “h265”
PROXY_FFMPEG_CODEC_AUDIO valid audio codec null valid ffmpeg audio codec, e.g. “aac”
PROXY_FFMPEG_CODEC_SUBTITLES valid subtitle codec null valid ffmpeg subtitle codec, e.g. “srt”
MAX_CHANNELS int 50000 the maximum number of channels to import for m3u playlists (does not apply to Xtream API playlists)
DISABLE_SYNC_LOGS bool false disable the creation of sync logs for playlists. Can be useful with larger lists using SQLite database
INVALIDATE_IMPORT bool false whether to invalidate Playlist sync if conditon met (see INVALIDATE_IMPORT_THRESHOLD)
INVALIDATE_IMPORT_THRESHOLD int 100 if the current sync will have less channels than the current channel count (less this value), the sync will be invalidated and canceled (when INVALIDATE_IMPORT is true)
DISABLE_M3U_XTREAM_FORMAT true or false false by default, all urls will use the Xtream API format so additional stream analysis, check for stream limits, etc. can be performed. Disable to return the provider url (or proxyfied url) instead for M3U playlists.
BROADCAST_CONNECTION reverb or null reverb set to null to disable websockets server. Set to reverb (default) to enable
ENABLE_POSTGRES true or false false set to true to enable the internal PostgreSQL instance
PG_DATABASE string m3ue enter a valid database name, e.g. “m3ue”
PG_USER string root user to create/update for PG_DATABASE
PG_PASSWORD string root password to set/update for PG_USER
PG_PORT int 5432 any valid port, does not need to be exposed
DB_CONNECTION sqlite or pgsql sqlite set to pgsql to use PostgreSQL
DB_HOST valid hostname null valid hostname for PostgreSQL. If ENABLE_POSTGRES is true you can use localhost
DB_PORT int null valid port number for PostgreSQL. If ENABLE_POSTGRES is true you can use PG_PORT
DB_DATABASE string null valid database name for PostgreSQL. If ENABLE_POSTGRES is true you can use PG_DATABASE
DB_USERNAME string null valid database user for PostgreSQL. If ENABLE_POSTGRES is true you can use PG_USER
DB_PASSWORD string null valid password for PostgreSQL. If ENABLE_POSTGRES is true you can use PG_PASSWORD