mirror of
https://github.com/Suwayomi/docker-tachidesk.git
synced 2025-12-10 06:42:12 +01:00
Overwrite server.conf settings only for provided env vars (#76)
* Overwrite server.conf settings only for provided env vars Currently on every start the whole server.conf file gets replaced which causes any changed settings during runtime to get lost * Fix readme formatting * Add "webUIEnabled" env variable This is the only setting that can not be changed via the UI * Remove default values from readme
This commit is contained in:
@@ -5,36 +5,65 @@ set -e
|
||||
|
||||
echo "Suwayomi data location inside the container: /home/suwayomi/.local/share/Tachidesk"
|
||||
|
||||
# make sure the server.conf file exists
|
||||
/home/suwayomi/create_server_conf.sh
|
||||
|
||||
# set default values for environment variables:
|
||||
export TZ="${TZ:-Etc/UTC}"
|
||||
export BIND_IP="${BIND_IP:-0.0.0.0}"
|
||||
export BIND_PORT="${BIND_PORT:-4567}"
|
||||
export SOCKS_PROXY_ENABLED="${SOCKS_PROXY_ENABLED:-false}"
|
||||
export SOCKS_PROXY_HOST="${SOCKS_PROXY_HOST:-""}"
|
||||
export SOCKS_PROXY_PORT="${SOCKS_PROXY_PORT:-""}"
|
||||
export DOWNLOAD_AS_CBZ="${DOWNLOAD_AS_CBZ:-false}"
|
||||
export BASIC_AUTH_ENABLED="${BASIC_AUTH_ENABLED:-false}"
|
||||
export BASIC_AUTH_USERNAME="${BASIC_AUTH_USERNAME:-""}"
|
||||
export BASIC_AUTH_PASSWORD="${BASIC_AUTH_PASSWORD:-""}"
|
||||
export DEBUG="${DEBUG:-true}"
|
||||
export GQL_DEBUG="${GQL_DEBUG:-false}"
|
||||
export WEB_UI_FLAVOR="${WEB_UI_FLAVOR:-"WebUI"}"
|
||||
export WEB_UI_CHANNEL="${WEB_UI_CHANNEL:-"stable"}"
|
||||
export WEB_UI_UPDATE_INTERVAL="${WEB_UI_UPDATE_INTERVAL:-23}"
|
||||
export AUTO_DOWNLOAD_CHAPTERS="${AUTO_DOWNLOAD_CHAPTERS:-false}"
|
||||
export AUTO_DOWNLOAD_EXCLUDE_UNREAD="${AUTO_DOWNLOAD_EXCLUDE_UNREAD:-true}"
|
||||
export AUTO_DOWNLOAD_AHEAD_LIMIT="${AUTO_DOWNLOAD_AHEAD_LIMIT:-0}"
|
||||
export MAX_SOURCES_IN_PARALLEL="${MAX_SOURCES_IN_PARALLEL:-6}"
|
||||
export UPDATE_EXCLUDE_UNREAD="${UPDATE_EXCLUDE_UNREAD:-true}"
|
||||
export UPDATE_EXCLUDE_STARTED="${UPDATE_EXCLUDE_STARTED:-true}"
|
||||
export UPDATE_EXCLUDE_COMPLETED="${UPDATE_EXCLUDE_COMPLETED:-true}"
|
||||
export UPDATE_INTERVAL="${UPDATE_INTERVAL:-12}"
|
||||
export UPDATE_MANGA_INFO="${UPDATE_MANGA_INFO:-false}"
|
||||
export BACKUP_TIME="${BACKUP_TIME:-"00:00"}"
|
||||
export BACKUP_INTERVAL="${BACKUP_INTERVAL:-1}"
|
||||
export BACKUP_TTL="${BACKUP_TTL:-14}"
|
||||
export EXTENSION_REPOS="${EXTENSION_REPOS:-"[]"}"
|
||||
|
||||
envsubst < /home/suwayomi/server.conf.template > /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
# Set default values for settings
|
||||
sed -i -r "s/server.initialOpenInBrowserEnabled = (.*)/server.initialOpenInBrowserEnabled = false/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.systemTrayEnabled = (.*)/server.systemTrayEnabled = false/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
|
||||
# Overwrite configuration values with environment variables
|
||||
# Server ip and port bindings
|
||||
sed -i -r "s/server.ip = \"(.*)\"/server.ip = \"${BIND_IP:-\1}\"/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.port = (.*)/server.port = ${BIND_PORT:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
|
||||
# Socks5 proxy
|
||||
sed -i -r "s/server.socksProxyEnabled = (.*)/server.socksProxyEnabled = ${SOCKS_PROXY_ENABLED:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.socksProxyHost = \"(.*)\"/server.socksProxyHost = \"${SOCKS_PROXY_HOST:-\1}\"/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.socksProxyPort = \"(.*)\"/server.socksProxyPort = \"${SOCKS_PROXY_PORT:-\1}\"/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
|
||||
# webUI
|
||||
sed -i -r "s/server.webUIEnabled = (.*)/server.webUIEnabled = ${WEB_UI_EABLED:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.webUIFlavor = \"(.*)\"/server.webUIFlavor = \"${WEB_UI_FLAVOR:-\1}\"/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.webUIChannel = \"(.*)\"/server.webUIChannel = \"${WEB_UI_CHANNEL:-\1}\"/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.webUIUpdateCheckInterval = (.*)/server.webUIUpdateCheckInterval = ${WEB_UI_UPDATE_INTERVAL:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
|
||||
# downloader
|
||||
sed -i -r "s/server.downloadAsCbz = (.*)/server.downloadAsCbz = ${DOWNLOAD_AS_CBZ:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.autoDownloadNewChapters = (.*)/server.autoDownloadNewChapters = ${AUTO_DOWNLOAD_CHAPTERS:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.excludeEntryWithUnreadChapters = (.*)/server.excludeEntryWithUnreadChapters = ${AUTO_DOWNLOAD_EXCLUDE_UNREAD:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.autoDownloadAheadLimit = (.*)/server.autoDownloadAheadLimit = ${AUTO_DOWNLOAD_AHEAD_LIMIT:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
|
||||
# extension repos
|
||||
if [ -n "$EXTENSION_REPOS" ]; then
|
||||
perl -0777 -i -pe 's/server\.extensionRepos = (\[.*\])/server.extensionRepos = $ENV{EXTENSION_REPOS}/gs' /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
fi
|
||||
|
||||
# requests
|
||||
sed -i -r "s/server.maxSourcesInParallel = (.*)/server.maxSourcesInParallel = ${MAX_SOURCES_IN_PARALLEL:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
|
||||
# updater
|
||||
sed -i -r "s/server.excludeUnreadChapters = (.*)/server.excludeUnreadChapters = ${UPDATE_EXCLUDE_UNREAD:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.excludeNotStarted = (.*)/server.excludeNotStarted = ${UPDATE_EXCLUDE_STARTED:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.excludeCompleted = (.*)/server.excludeCompleted = ${UPDATE_EXCLUDE_COMPLETED:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.globalUpdateInterval = (.*)/server.globalUpdateInterval = ${UPDATE_INTERVAL:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.updateMangas = (.*)/server.updateMangas = ${UPDATE_MANGA_INFO:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
|
||||
# Authentication
|
||||
sed -i -r "s/server.basicAuthEnabled = (.*)/server.basicAuthEnabled = ${BASIC_AUTH_ENABLED:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.basicAuthUsername = \"(.*)\"/server.basicAuthUsername = \"${BASIC_AUTH_USERNAME:-\1}\"/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.basicAuthPassword = \"(.*)\"/server.basicAuthPassword = \"${BASIC_AUTH_PASSWORD:-\1}\"/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
|
||||
# misc
|
||||
sed -i -r "s/server.debugLogsEnabled = (.*)/server.debugLogsEnabled = ${DEBUG:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.gqlDebugLogsEnabled = (.*)/server.gqlDebugLogsEnabled = ${GQL_DEBUG:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
|
||||
# backup
|
||||
sed -i -r "s/server.backupTime = (.*)/server.backupTime = ${BACKUP_TIME:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.backupInterval = (.*)/server.backupInterval = ${BACKUP_INTERVAL:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
sed -i -r "s/server.backupTTL = (.*)/server.backupTTL = ${BACKUP_TTL:-\1}/" /home/suwayomi/.local/share/Tachidesk/server.conf
|
||||
|
||||
exec java -Duser.home=/home/suwayomi -jar "/home/suwayomi/startup/tachidesk_latest.jar";
|
||||
|
||||
Reference in New Issue
Block a user