prefix config.php-related environment variables with TTRSS_

pull/5/head
Andrew Dolgov 4 years ago
parent 9da8d37115
commit 0251f2bb69

@ -9,12 +9,12 @@ POSTGRES_PASSWORD=password
# You will likely need to set this to the correct value, see README.md # You will likely need to set this to the correct value, see README.md
# for more information. # for more information.
SELF_URL_PATH=http://localhost:8280/tt-rss TTRSS_SELF_URL_PATH=http://localhost:8280/tt-rss
# You can customize other config.php defines by setting overrides here. # You can customize other config.php defines by setting overrides here.
# See app/Dockerfile for complete list. Examples: # See app/Dockerfile for complete list. Examples:
# PLUGINS=auth_remote # TTRSS_PLUGINS=auth_remote
# SINGLE_USER_MODE=true # TTRSS_SINGLE_USER_MODE=true
# bind exposed port to 127.0.0.1 by default in case reverse proxy is used. # bind exposed port to 127.0.0.1 by default in case reverse proxy is used.
# if you plan to run the container standalone and need origin port exposed # if you plan to run the container standalone and need origin port exposed

@ -15,9 +15,9 @@ services:
env_file: env_file:
- .env - .env
environment: environment:
- DB_NAME=${POSTGRES_USER} - TTRSS_DB_NAME=${POSTGRES_USER}
- DB_USER=${POSTGRES_USER} - TTRSS_DB_USER=${POSTGRES_USER}
- DB_PASS=${POSTGRES_PASSWORD} - TTRSS_DB_PASS=${POSTGRES_PASSWORD}
volumes: volumes:
- app:/var/www/html - app:/var/www/html
- ./config.d:/opt/tt-rss/config.d:ro - ./config.d:/opt/tt-rss/config.d:ro
@ -28,9 +28,9 @@ services:
image: cthulhoo/ttrss-fpm-pgsql-static image: cthulhoo/ttrss-fpm-pgsql-static
restart: unless-stopped restart: unless-stopped
environment: environment:
- DB_NAME=${POSTGRES_USER} - TTRSS_DB_NAME=${POSTGRES_USER}
- DB_USER=${POSTGRES_USER} - TTRSS_DB_USER=${POSTGRES_USER}
- DB_PASS=${POSTGRES_PASSWORD} - TTRSS_DB_PASS=${POSTGRES_PASSWORD}
volumes: volumes:
- backups:/backups - backups:/backups
- app:/var/www/html - app:/var/www/html
@ -44,9 +44,9 @@ services:
env_file: env_file:
- .env - .env
environment: environment:
- DB_NAME=${POSTGRES_USER} - TTRSS_DB_NAME=${POSTGRES_USER}
- DB_USER=${POSTGRES_USER} - TTRSS_DB_USER=${POSTGRES_USER}
- DB_PASS=${POSTGRES_PASSWORD} - TTRSS_DB_PASS=${POSTGRES_PASSWORD}
volumes: volumes:
- app:/var/www/html - app:/var/www/html
- ./config.d:/opt/tt-rss/config.d:ro - ./config.d:/opt/tt-rss/config.d:ro

@ -28,37 +28,37 @@ RUN sh -c /build-prepare.sh
ENV OWNER_UID=1000 ENV OWNER_UID=1000
ENV OWNER_GID=1000 ENV OWNER_GID=1000
ENV DB_TYPE="pgsql" ENV TTRSS_DB_TYPE="pgsql"
ENV DB_HOST="db" ENV TTRSS_DB_HOST="db"
ENV DB_USER="%DB_USER" ENV TTRSS_DB_USER="%DB_USER"
ENV DB_NAME="%DB_NAME" ENV TTRSS_DB_NAME="%DB_NAME"
ENV DB_PASS="%DB_PASS" ENV TTRSS_DB_PASS="%DB_PASS"
ENV DB_PORT="5432" ENV TTRSS_DB_PORT="5432"
# config.php defaults # config.php defaults
ENV MYSQL_CHARSET="UTF8" ENV TTRSS_MYSQL_CHARSET="UTF8"
ENV SELF_URL_PATH="%SELF_URL_PATH" ENV TTRSS_SELF_URL_PATH="%SELF_URL_PATH"
ENV SINGLE_USER_MODE="" ENV TTRSS_SINGLE_USER_MODE=""
ENV SIMPLE_UPDATE_MODE="" ENV TTRSS_SIMPLE_UPDATE_MODE=""
ENV PHP_EXECUTABLE="/usr/bin/php" ENV TTRSS_PHP_EXECUTABLE="/usr/bin/php"
ENV LOCK_DIRECTORY="lock" ENV TTRSS_LOCK_DIRECTORY="lock"
ENV CACHE_DIR="cache" ENV TTRSS_CACHE_DIR="cache"
ENV ICONS_DIR="feed-icons" ENV TTRSS_ICONS_DIR="feed-icons"
ENV ICONS_URL="feed-icons" ENV TTRSS_ICONS_URL="feed-icons"
ENV AUTH_AUTO_CREATE="true" ENV TTRSS_AUTH_AUTO_CREATE="true"
ENV AUTH_AUTO_LOGIN="true" ENV TTRSS_AUTH_AUTO_LOGIN="true"
ENV FORCE_ARTICLE_PURGE="0" ENV TTRSS_FORCE_ARTICLE_PURGE="0"
ENV ENABLE_REGISTRATION="" ENV TTRSS_ENABLE_REGISTRATION=""
ENV REG_NOTIFY_ADDRESS="user@your.domain.dom" ENV TTRSS_REG_NOTIFY_ADDRESS="user@your.domain.dom"
ENV REG_MAX_USERS="10" ENV TTRSS_REG_MAX_USERS="10"
ENV SESSION_COOKIE_LIFETIME="86400" ENV TTRSS_SESSION_COOKIE_LIFETIME="86400"
ENV SMTP_FROM_NAME="Tiny Tiny RSS" ENV TTRSS_SMTP_FROM_NAME="Tiny Tiny RSS"
ENV SMTP_FROM_ADDRESS="noreply@your.domain.dom" ENV TTRSS_SMTP_FROM_ADDRESS="noreply@your.domain.dom"
ENV DIGEST_SUBJECT="[tt-rss] New headlines for last 24 hours" ENV TTRSS_DIGEST_SUBJECT="[tt-rss] New headlines for last 24 hours"
ENV CHECK_FOR_UPDATES="true" ENV TTRSS_CHECK_FOR_UPDATES="true"
ENV ENABLE_GZIP_OUTPUT="" ENV TTRSS_ENABLE_GZIP_OUTPUT=""
ENV PLUGINS="auth_internal, note" ENV TTRSS_PLUGINS="auth_internal, note"
ENV LOG_DESTINATION="sql" ENV TTRSS_LOG_DESTINATION="sql"
ENV CONFIG_VERSION="26" ENV TTRSS_CONFIG_VERSION="26"
CMD /startup.sh CMD /startup.sh

@ -4,14 +4,14 @@ DST_DIR=/backups
KEEP_DAYS=28 KEEP_DAYS=28
APP_ROOT=/var/www/html/tt-rss APP_ROOT=/var/www/html/tt-rss
if pg_isready -h $DB_HOST -U $DB_USER; then if pg_isready -h $TTRSS_DB_HOST -U $TTRSS_DB_USER; then
DST_FILE=ttrss-backup-$(date +%Y%m%d).sql.gz DST_FILE=ttrss-backup-$(date +%Y%m%d).sql.gz
echo backing up tt-rss database to $DST_DIR/$DST_FILE... echo backing up tt-rss database to $DST_DIR/$DST_FILE...
export PGPASSWORD=$DB_PASS export PGPASSWORD=$TTRSS_DB_PASS
pg_dump --clean -h $DB_HOST -U $DB_USER $DB_NAME | gzip > $DST_DIR/$DST_FILE pg_dump --clean -h $TTRSS_DB_HOST -U $TTRSS_DB_USER $TTRSS_DB_NAME | gzip > $DST_DIR/$DST_FILE
DST_FILE=ttrss-backup-$(date +%Y%m%d).tar.gz DST_FILE=ttrss-backup-$(date +%Y%m%d).tar.gz

@ -3,14 +3,14 @@
// *** Database configuration (important!) *** // *** Database configuration (important!) ***
// ******************************************* // *******************************************
define('DB_TYPE', getenv('DB_TYPE')); // pgsql or mysql define('DB_TYPE', getenv('TTRSS_DB_TYPE')); // pgsql or mysql
define('DB_HOST', getenv('DB_HOST')); define('DB_HOST', getenv('TTRSS_DB_HOST'));
define('DB_USER', getenv('DB_USER')); define('DB_USER', getenv('TTRSS_DB_USER'));
define('DB_NAME', getenv('DB_NAME')); define('DB_NAME', getenv('TTRSS_DB_NAME'));
define('DB_PASS', getenv('DB_PASS')); define('DB_PASS', getenv('TTRSS_DB_PASS'));
define('DB_PORT', getenv('DB_PORT')); // usually 5432 for PostgreSQL, 3306 for MySQL define('DB_PORT', getenv('TTRSS_DB_PORT')); // usually 5432 for PostgreSQL, 3306 for MySQL
define('MYSQL_CHARSET', getenv('MYSQL_CHARSET')); define('MYSQL_CHARSET', getenv('TTRSS_MYSQL_CHARSET'));
// Connection charset for MySQL. If you have a legacy database and/or experience // Connection charset for MySQL. If you have a legacy database and/or experience
// garbage unicode characters with this option, try setting it to a blank string. // garbage unicode characters with this option, try setting it to a blank string.
@ -18,7 +18,7 @@
// *** Basic settings (important!) *** // *** Basic settings (important!) ***
// *********************************** // ***********************************
define('SELF_URL_PATH', getenv('SELF_URL_PATH')); define('SELF_URL_PATH', getenv('TTRSS_SELF_URL_PATH'));
// This should be set to a fully qualified URL used to access // This should be set to a fully qualified URL used to access
// your tt-rss instance over the net, such as: https://example.org/tt-rss/ // your tt-rss instance over the net, such as: https://example.org/tt-rss/
// The value should be a constant string literal. Please don't use // The value should be a constant string literal. Please don't use
@ -26,12 +26,12 @@
// issues on your install and cause hard to debug problems. // issues on your install and cause hard to debug problems.
// If your tt-rss instance is behind a reverse proxy, use the external URL. // If your tt-rss instance is behind a reverse proxy, use the external URL.
define('SINGLE_USER_MODE', getenv('SINGLE_USER_MODE')); define('SINGLE_USER_MODE', getenv('TTRSS_SINGLE_USER_MODE'));
// Operate in single user mode, disables all functionality related to // Operate in single user mode, disables all functionality related to
// multiple users and authentication. Enabling this assumes you have // multiple users and authentication. Enabling this assumes you have
// your tt-rss directory protected by other means (e.g. http auth). // your tt-rss directory protected by other means (e.g. http auth).
define('SIMPLE_UPDATE_MODE', getenv('SIMPLE_UPDATE_MODE')); define('SIMPLE_UPDATE_MODE', getenv('TTRSS_SIMPLE_UPDATE_MODE'));
// Enables fallback update mode where tt-rss tries to update feeds in // Enables fallback update mode where tt-rss tries to update feeds in
// background while tt-rss is open in your browser. // background while tt-rss is open in your browser.
// If you don't have a lot of feeds and don't want to or can't run // If you don't have a lot of feeds and don't want to or can't run
@ -44,22 +44,22 @@
// *** Files and directories *** // *** Files and directories ***
// ***************************** // *****************************
define('PHP_EXECUTABLE', getenv('PHP_EXECUTABLE')); define('PHP_EXECUTABLE', getenv('TTRSS_PHP_EXECUTABLE'));
// Path to PHP *COMMAND LINE* executable, used for various command-line tt-rss // Path to PHP *COMMAND LINE* executable, used for various command-line tt-rss
// programs and update daemon. Do not try to use CGI binary here, it won't work. // programs and update daemon. Do not try to use CGI binary here, it won't work.
// If you see HTTP headers being displayed while running tt-rss scripts, // If you see HTTP headers being displayed while running tt-rss scripts,
// then most probably you are using the CGI binary. If you are unsure what to // then most probably you are using the CGI binary. If you are unsure what to
// put in here, ask your hosting provider. // put in here, ask your hosting provider.
define('LOCK_DIRECTORY', getenv('LOCK_DIRECTORY')); define('LOCK_DIRECTORY', getenv('TTRSS_LOCK_DIRECTORY'));
// Directory for lockfiles, must be writable to the user you run // Directory for lockfiles, must be writable to the user you run
// daemon process or cronjobs under. // daemon process or cronjobs under.
define('CACHE_DIR', getenv('CACHE_DIR')); define('CACHE_DIR', getenv('TTRSS_CACHE_DIR'));
// Local cache directory for RSS feed content. // Local cache directory for RSS feed content.
define('ICONS_DIR', getenv('ICONS_DIR')); define('ICONS_DIR', getenv('TTRSS_ICONS_DIR'));
define('ICONS_URL', getenv('ICONS_URL')); define('ICONS_URL', getenv('TTRSS_ICONS_URL'));
// Local and URL path to the directory, where feed favicons are stored. // Local and URL path to the directory, where feed favicons are stored.
// Unless you really know what you're doing, please keep those relative // Unless you really know what you're doing, please keep those relative
// to tt-rss main directory. // to tt-rss main directory.
@ -70,11 +70,11 @@
// Please see PLUGINS below to configure various authentication modules. // Please see PLUGINS below to configure various authentication modules.
define('AUTH_AUTO_CREATE', getenv('AUTH_AUTO_CREATE')); define('AUTH_AUTO_CREATE', getenv('TTRSS_AUTH_AUTO_CREATE'));
// Allow authentication modules to auto-create users in tt-rss internal // Allow authentication modules to auto-create users in tt-rss internal
// database when authenticated successfully. // database when authenticated successfully.
define('AUTH_AUTO_LOGIN', getenv('AUTH_AUTO_LOGIN')); define('AUTH_AUTO_LOGIN', getenv('TTRSS_AUTH_AUTO_LOGIN'));
// Automatically login user on remote or other kind of externally supplied // Automatically login user on remote or other kind of externally supplied
// authentication, otherwise redirect to login form as normal. // authentication, otherwise redirect to login form as normal.
// If set to true, users won't be able to set application language // If set to true, users won't be able to set application language
@ -84,7 +84,7 @@
// *** Feed settings *** // *** Feed settings ***
// ********************* // *********************
define('FORCE_ARTICLE_PURGE', getenv('FORCE_ARTICLE_PURGE')); define('FORCE_ARTICLE_PURGE', getenv('TTRSS_FORCE_ARTICLE_PURGE'));
// When this option is not 0, users ability to control feed purging // When this option is not 0, users ability to control feed purging
// intervals is disabled and all articles (which are not starred) // intervals is disabled and all articles (which are not starred)
// older than this amount of days are purged. // older than this amount of days are purged.
@ -93,16 +93,16 @@
// *** Self-registrations by users *** // *** Self-registrations by users ***
// *********************************** // ***********************************
define('ENABLE_REGISTRATION', getenv('ENABLE_REGISTRATION')); define('ENABLE_REGISTRATION', getenv('TTRSS_ENABLE_REGISTRATION'));
// Allow users to register themselves. Please be aware that allowing // Allow users to register themselves. Please be aware that allowing
// random people to access your tt-rss installation is a security risk // random people to access your tt-rss installation is a security risk
// and potentially might lead to data loss or server exploit. Disabled // and potentially might lead to data loss or server exploit. Disabled
// by default. // by default.
define('REG_NOTIFY_ADDRESS', getenv('REG_NOTIFY_ADDRESS')); define('REG_NOTIFY_ADDRESS', getenv('TTRSS_REG_NOTIFY_ADDRESS'));
// Email address to send new user notifications to. // Email address to send new user notifications to.
define('REG_MAX_USERS', getenv('REG_MAX_USERS')); define('REG_MAX_USERS', getenv('TTRSS_REG_MAX_USERS'));
// Maximum amount of users which will be allowed to register on this // Maximum amount of users which will be allowed to register on this
// system. 0 - no limit. // system. 0 - no limit.
@ -110,7 +110,7 @@
// *** Cookies and login sessions *** // *** Cookies and login sessions ***
// ********************************** // **********************************
define('SESSION_COOKIE_LIFETIME', getenv('SESSION_COOKIE_LIFETIME')); define('SESSION_COOKIE_LIFETIME', getenv('TTRSS_SESSION_COOKIE_LIFETIME'));
// Default lifetime of a session (e.g. login) cookie. In seconds, // Default lifetime of a session (e.g. login) cookie. In seconds,
// 0 means cookie will be deleted when browser closes. // 0 means cookie will be deleted when browser closes.
@ -124,29 +124,29 @@
// If you need SMTP support, take a look here: // If you need SMTP support, take a look here:
// https://git.tt-rss.org/fox/ttrss-mailer-smtp // https://git.tt-rss.org/fox/ttrss-mailer-smtp
define('SMTP_FROM_NAME', getenv('SMTP_FROM_NAME')); define('SMTP_FROM_NAME', getenv('TTRSS_SMTP_FROM_NAME'));
define('SMTP_FROM_ADDRESS', getenv('SMTP_FROM_ADDRESS')); define('SMTP_FROM_ADDRESS', getenv('TTRSS_SMTP_FROM_ADDRESS'));
// Name, address and subject for sending outgoing mail. This applies // Name, address and subject for sending outgoing mail. This applies
// to password reset notifications, digest emails and any other mail. // to password reset notifications, digest emails and any other mail.
define('DIGEST_SUBJECT', getenv('DIGEST_SUBJECT')); define('DIGEST_SUBJECT', getenv('TTRSS_DIGEST_SUBJECT'));
// Subject line for email digests // Subject line for email digests
// *************************************** // ***************************************
// *** Other settings (less important) *** // *** Other settings (less important) ***
// *************************************** // ***************************************
define('CHECK_FOR_UPDATES', getenv('CHECK_FOR_UPDATES')); define('CHECK_FOR_UPDATES', getenv('TTRSS_CHECK_FOR_UPDATES'));
// Check for updates automatically if running Git version // Check for updates automatically if running Git version
define('ENABLE_GZIP_OUTPUT', getenv('ENABLE_GZIP_OUTPUT')); define('ENABLE_GZIP_OUTPUT', getenv('TTRSS_ENABLE_GZIP_OUTPUT'));
// Selectively gzip output to improve wire performance. This requires // Selectively gzip output to improve wire performance. This requires
// PHP Zlib extension on the server. // PHP Zlib extension on the server.
// Enabling this can break tt-rss in several httpd/php configurations, // Enabling this can break tt-rss in several httpd/php configurations,
// if you experience weird errors and tt-rss failing to start, blank pages // if you experience weird errors and tt-rss failing to start, blank pages
// after login, or content encoding errors, disable it. // after login, or content encoding errors, disable it.
define('PLUGINS', getenv('PLUGINS')); define('PLUGINS', getenv('TTRSS_PLUGINS'));
// Comma-separated list of plugins to load automatically for all users. // Comma-separated list of plugins to load automatically for all users.
// System plugins have to be specified here. Please enable at least one // System plugins have to be specified here. Please enable at least one
// authentication plugin here (auth_*). // authentication plugin here (auth_*).
@ -155,7 +155,7 @@
// Disabling auth_internal in this list would automatically disable // Disabling auth_internal in this list would automatically disable
// reset password link on the login form. // reset password link on the login form.
define('LOG_DESTINATION', getenv('LOG_DESTINATION')); define('LOG_DESTINATION', getenv('TTRSS_LOG_DESTINATION'));
// Error log destination to use. Possible values: sql (uses internal logging // Error log destination to use. Possible values: sql (uses internal logging
// you can read in Preferences -> System), syslog - logs to system log. // you can read in Preferences -> System), syslog - logs to system log.
// Setting this to blank uses PHP logging (usually to http server // Setting this to blank uses PHP logging (usually to http server
@ -163,7 +163,7 @@
// Note that feed updating daemons don't use this logging facility // Note that feed updating daemons don't use this logging facility
// for normal output. // for normal output.
define('CONFIG_VERSION', getenv('CONFIG_VERSION')); define('CONFIG_VERSION', getenv('TTRSS_CONFIG_VERSION'));
// Expected config version. Please update this option in config.php // Expected config version. Please update this option in config.php
// if necessary (after migrating all new options from this file). // if necessary (after migrating all new options from this file).

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
sed -e "s/define('\([A-Z_]\+\)', [^)]\+/define('\1', getenv('\1')/" \ sed -e "s/define('\([A-Z_]\+\)', [^)]\+/define('\1', getenv('TTRSS_\1')/" \
< config.php-dist > config.docker.php < config.php-dist > config.docker.php
cat config.php-config.d >> config.docker.php cat config.php-config.d >> config.docker.php

@ -1,3 +1,4 @@
#!/bin/sh #!/bin/sh
grep define config.php-dist | sed -e "s/[ \t]*define('\([A-Z_]\+\)', ['\"]\?\([^'\")]\+\).*/ENV \1=\"\2\"/" grep define config.php-dist | sed -e "s/[ \t]*define('\([A-Z_]\+\)', ['\"]\?\([^'\")]\+\).*/ENV TTRSS_\1=\"\2\"/" \
-e 's/"false"/""/'

@ -1,7 +1,7 @@
#!/bin/sh -e #!/bin/sh -e
while ! pg_isready -h $DB_HOST -U $DB_USER; do while ! pg_isready -h $TTRSS_DB_HOST -U $TTRSS_DB_USER; do
echo waiting until $DB_HOST is ready... echo waiting until $TTRSS_DB_HOST is ready...
sleep 3 sleep 3
done done
@ -19,7 +19,7 @@ SRC_DIR=/src/tt-rss/
[ -e $DST_DIR ] && rm -f $DST_DIR/.app_is_ready [ -e $DST_DIR ] && rm -f $DST_DIR/.app_is_ready
export PGPASSWORD=$DB_PASS export PGPASSWORD=$TTRSS_DB_PASS
[ ! -e /var/www/html/index.php ] && cp /index.php /var/www/html [ ! -e /var/www/html/index.php ] && cp /index.php /var/www/html
@ -53,7 +53,7 @@ for d in cache lock feed-icons; do
find $DST_DIR/$d -type f -exec chmod 666 {} \; find $DST_DIR/$d -type f -exec chmod 666 {} \;
done done
PSQL="psql -q -h $DB_HOST -U $DB_USER $DB_NAME" PSQL="psql -q -h $TTRSS_DB_HOST -U $TTRSS_DB_USER $TTRSS_DB_NAME"
$PSQL -c "create extension if not exists pg_trgm" $PSQL -c "create extension if not exists pg_trgm"
@ -72,7 +72,7 @@ if [ ! -s $DST_DIR/config.php ]; then
define('NGINX_XACCEL_PREFIX', '/tt-rss'); define('NGINX_XACCEL_PREFIX', '/tt-rss');
EOF EOF
else else
egrep 'SELF_URL_PATH.*getenv' $DST_DIR/config.php || \ egrep -q 'SELF_URL_PATH.*getenv' $DST_DIR/config.php || \
echo -e "\nWARNING: you're using old-style config.php, overrides via .env will not work.\n" >/dev/stderr echo -e "\nWARNING: you're using old-style config.php, overrides via .env will not work.\n" >/dev/stderr
fi fi

@ -12,8 +12,8 @@ if ! id app; then
adduser -D -h /var/www/html -G app -u $OWNER_UID app adduser -D -h /var/www/html -G app -u $OWNER_UID app
fi fi
while ! pg_isready -h $DB_HOST -U $DB_USER; do while ! pg_isready -h $TTRSS_DB_HOST -U $TTRSS_DB_USER; do
echo waiting until $DB_HOST is ready... echo waiting until $TTRSS_DB_HOST is ready...
sleep 3 sleep 3
done done

Loading…
Cancel
Save