FROM python:3.7-buster
-RUN apt-get update && apt-get install -y --no-install-recommends \
- flac sox zip curl wget ffmpeg libsndfile1 libtag1-dev build-essential \
- python3-numpy python3-scipy python3-matplotlib python3-taglib \
- && rm -rf /var/lib/apt/lists/*
-
COPY requirements.txt requirements.txt
-RUN pip install -r requirements.txt
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ # required packages
+ flac sox libsox-fmt-mp3 zip curl wget ffmpeg libsndfile1 \
+ python3-numpy python3-scipy python3-matplotlib python3-taglib \
+ # build packages
+ libtag1-dev build-essential && \
+ # install required python packages with pip
+ pip install -r requirements.txt && \
+ # cleanup build packages
+ apt-get remove --purge -y build-essential libtag1-dev $(apt-mark showauto) && \
+ rm -rf /var/lib/apt/lists/*
# copy app files
RUN mkdir -p /usr/src/app
CONF_KEY = 'web'
CONFIG_ENTRIES = [
- ('http_port', 8095, 'webhttp_port'),
+ ('http_port', 8095, 'web_http_port'),
('https_port', 8096, 'web_https_port'),
('ssl_certificate', '', 'web_ssl_cert'),
('ssl_key', '', 'web_ssl_key'),
tunein: "TuneIn",
file: "Filesystem",
chromecast: "Chromecast",
- lms: "Logitech Media Server",
- pylms: "Emulated (built-in) Squeezebox support",
+ squeezebox: "Squeezebox support",
username: "Username",
password: "Password",
hostname: "Hostname (or IP)",
not_grouped: "Not grouped",
conf_saved: "Configuration saved, restart app to make effective",
audio_cache_folder: "Directory to use for cache files",
- audio_cache_max_size_gb: "Maximum size of the cache folder (GB)"
+ audio_cache_max_size_gb: "Maximum size of the cache folder (GB)",
+ gapless_enabled: "Enable gapless support",
+ crossfade_duration: "Crossfade duration (in seconds, 0 to disable)"
},
// player strings
players: "Players",
tunein: "TuneIn",
file: "Bestandssysteem",
chromecast: "Chromecast",
- lms: "Logitech Media Server",
- pylms: "Geemuleerde (ingebouwde) Squeezebox ondersteuning",
+ squeezebox: "Squeezebox ondersteuning",
username: "Gebruikersnaam",
password: "Wachtwoord",
hostname: "Hostnaam (of IP)",
not_grouped: "Niet gegroepeerd",
conf_saved: "Configuratie is opgeslagen, herstart om actief te maken",
audio_cache_folder: "Map om te gebruiken voor cache bestanden",
- audio_cache_max_size_gb: "Maximale grootte van de cache map in GB."
+ audio_cache_max_size_gb: "Maximale grootte van de cache map in GB.",
+ gapless_enabled: "Schakel ondersteuning voor gapless in.",
+ crossfade_duration: "Crossfade in (seconden, 0 om uit te schakelen)."
},
// player strings
players: "Spelers",