initial for legacy-php5

legacy-php5
Andrew Dolgov 4 years ago
parent 2e13396bd7
commit 87b9df7bf7

@ -1,12 +1,12 @@
FROM alpine:3.13
FROM alpine:3.5
EXPOSE 9000/tcp
RUN apk add --no-cache dcron php8 php8-fpm \
php8-pdo php8-gd php8-pgsql php8-pdo_pgsql php8-mbstring \
php8-intl php8-xml php8-curl php8-session \
php8-dom php8-fileinfo php8-json php8-iconv \
php8-pcntl php8-posix php8-zip php8-openssl \
git postgresql-client sudo
RUN apk add --no-cache dcron php5 php5-fpm \
php5-pdo php5-gd php5-pgsql php5-pdo_pgsql \
php5-intl php5-xml php5-curl \
php5-dom php5-json php5-iconv \
php5-pcntl php5-posix php5-zip php5-openssl \
git postgresql-client sudo php5-ctype
ENV SCRIPT_ROOT=/opt/tt-rss
@ -19,13 +19,21 @@ ADD dcron.sh ${SCRIPT_ROOT}
ADD backup.sh /etc/periodic/weekly/backup
ADD config.docker.php ${SCRIPT_ROOT}
RUN sed -i.bak 's/^listen = 127.0.0.1:9000/listen = 9000/' /etc/php8/php-fpm.d/www.conf
RUN sed -i.bak 's/\(memory_limit =\) 128M/\1 256M/' /etc/php8/php.ini
RUN sed -i.bak 's/;clear_env = .*/clear_env = no/i' /etc/php8/php-fpm.d/www.conf
RUN sed -i.bak 's/^listen = 127.0.0.1:9000/listen = 9000/' /etc/php5/php-fpm.conf
#RUN sed -i.bak 's/\(memory_limit =\) 128M/\1 256M/' /etc/php5/php.ini
RUN sed -i.bak 's/;clear_env = .*/clear_env = no/i' /etc/php5/php-fpm.conf
ENV OWNER_UID=1000
ENV OWNER_GID=1000
#commit b25df544b4d77a3deb43c9968797e5703e1e84f2 (HEAD)
#Author: Andrew Dolgov <fox@bah.org.ru>
#Date: Mon Sep 13 16:10:17 2010 +0400
#
# release 1.4.3.1
ENV TARGET_COMMIT="b25df544b4d77a3deb43c9968797e5703e1e84f2"
ENV TTRSS_DB_TYPE="pgsql"
ENV TTRSS_DB_HOST="db"
ENV TTRSS_DB_USER="%DB_USER"
@ -34,29 +42,67 @@ ENV TTRSS_DB_PASS="%DB_PASS"
ENV TTRSS_DB_PORT="5432"
# config.php defaults
ENV TTRSS_MYSQL_CHARSET="UTF8"
ENV TTRSS_SELF_URL_PATH="%SELF_URL_PATH"
ENV TTRSS_SINGLE_USER_MODE=""
ENV TTRSS_SIMPLE_UPDATE_MODE=""
ENV TTRSS_PHP_EXECUTABLE="/usr/bin/php8"
ENV TTRSS_LOCK_DIRECTORY="lock"
ENV TTRSS_CACHE_DIR="cache"
ENV TTRSS_ICONS_DIR="feed-icons"
ENV TTRSS_ICONS_URL="feed-icons"
ENV TTRSS_AUTH_AUTO_CREATE="true"
ENV TTRSS_AUTH_AUTO_LOGIN="true"
ENV TTRSS_FORCE_ARTICLE_PURGE="0"
#ENV TTRSS_MYSQL_CHARSET="UTF8"
#ENV TTRSS_SELF_URL_PATH="%SELF_URL_PATH"
#ENV TTRSS_SINGLE_USER_MODE=""
#ENV TTRSS_SIMPLE_UPDATE_MODE=""
#ENV TTRSS_PHP_EXECUTABLE="/usr/bin/php5"
#ENV TTRSS_LOCK_DIRECTORY="lock"
#ENV TTRSS_CACHE_DIR="cache"
#ENV TTRSS_ICONS_DIR="feed-icons"
#ENV TTRSS_ICONS_URL="feed-icons"
#ENV TTRSS_AUTH_AUTO_CREATE="true"
#ENV TTRSS_AUTH_AUTO_LOGIN="true"
#ENV TTRSS_FORCE_ARTICLE_PURGE="0"
#ENV TTRSS_ENABLE_REGISTRATION=""
#ENV TTRSS_REG_NOTIFY_ADDRESS="user@your.domain.dom"
#ENV TTRSS_REG_MAX_USERS="10"
#ENV TTRSS_SESSION_COOKIE_LIFETIME="86400"
#ENV TTRSS_SMTP_FROM_NAME="Tiny Tiny RSS"
#ENV TTRSS_SMTP_FROM_ADDRESS="noreply@your.domain.dom"
#ENV TTRSS_DIGEST_SUBJECT="[tt-rss] New headlines for last 24 hours"
#ENV TTRSS_CHECK_FOR_UPDATES="true"
#ENV TTRSS_ENABLE_GZIP_OUTPUT=""
#ENV TTRSS_PLUGINS="auth_internal, note, nginx_xaccel"
#ENV TTRSS_LOG_DESTINATION="sql"
#ENV TTRSS_CONFIG_VERSION="26"
ENV TTRSS_MAGPIE_FETCH_TIME_OUT="60"
ENV TTRSS_MAGPIE_CACHE_DIR="/var/tmp/magpie-ttrss-cache"
ENV TTRSS_MAGPIE_CACHE_AGE="60*30"
ENV TTRSS_ICONS_DIR="icons"
ENV TTRSS_ICONS_URL="icons"
ENV TTRSS_SINGLE_USER_MODE="true"
ENV TTRSS_TMP_DIRECTORY="/tmp"
ENV TTRSS_FEEDS_FRAME_REFRESH="600"
ENV TTRSS_ENABLE_UPDATE_DAEMON="1"
ENV TTRSS_DAEMON_SLEEP_INTERVAL="120"
ENV TTRSS_DATABASE_BACKED_SESSIONS=""
ENV TTRSS_SESSION_CHECK_ADDRESS="true"
ENV TTRSS_SESSION_COOKIE_LIFETIME="0"
ENV TTRSS_SESSION_EXPIRE_TIME="86400"
ENV TTRSS_DAEMON_UPDATE_LOGIN_LIMIT="0"
ENV TTRSS_CHECK_FOR_NEW_VERSION="true"
ENV TTRSS_USE_CURL_FOR_ICONS=""
ENV TTRSS_DIGEST_ENABLE="true"
ENV TTRSS_DIGEST_EMAIL_LIMIT="10"
ENV TTRSS_DAEMON_SENDS_DIGESTS="true"
ENV TTRSS_ENABLE_TRANSLATIONS="true"
ENV TTRSS_DEFAULT_UPDATE_METHOD="0"
ENV TTRSS_SIMPLEPIE_CACHE_IMAGES=""
ENV TTRSS_COUNTERS_MAX_AGE="365"
ENV TTRSS_DIGEST_FROM_NAME="Tiny Tiny RSS"
ENV TTRSS_DIGEST_FROM_ADDRESS="noreply@your.domain.dom"
ENV TTRSS_DIGEST_SUBJECT="[tt-rss] New headlines for last 24 hours"
ENV TTRSS_DAEMON_FEED_LIMIT="100"
ENV TTRSS_ALLOW_REMOTE_USER_AUTH=""
ENV TTRSS_LOCK_DIRECTORY="."
ENV TTRSS_ENABLE_GZIP_OUTPUT=""
ENV TTRSS_PHP_EXECUTABLE="/usr/bin/php"
ENV TTRSS_ENABLE_REGISTRATION=""
ENV TTRSS_REG_NOTIFY_ADDRESS="user@your.domain.dom"
ENV TTRSS_REG_MAX_USERS="10"
ENV TTRSS_SESSION_COOKIE_LIFETIME="86400"
ENV TTRSS_SMTP_FROM_NAME="Tiny Tiny RSS"
ENV TTRSS_SMTP_FROM_ADDRESS="noreply@your.domain.dom"
ENV TTRSS_DIGEST_SUBJECT="[tt-rss] New headlines for last 24 hours"
ENV TTRSS_CHECK_FOR_UPDATES="true"
ENV TTRSS_ENABLE_GZIP_OUTPUT=""
ENV TTRSS_PLUGINS="auth_internal, note, nginx_xaccel"
ENV TTRSS_LOG_DESTINATION="sql"
ENV TTRSS_CONFIG_VERSION="26"
ENV TTRSS_FORCE_ARTICLE_PURGE="0"
ENV TTRSS_CONFIG_VERSION="19"
CMD ${SCRIPT_ROOT}/startup.sh

@ -1,62 +1,26 @@
<?php
// *******************************************
// *** Database configuration (important!) ***
// *******************************************
// Your RDBMS must be configured to accept connections
// via TCP/IP and authentified by password.
define('DB_TYPE', getenv('TTRSS_DB_TYPE')); // pgsql or mysql
define('DB_TYPE', getenv('TTRSS_DB_TYPE')); // or mysql
define('DB_HOST', getenv('TTRSS_DB_HOST'));
define('DB_USER', getenv('TTRSS_DB_USER'));
define('DB_NAME', getenv('TTRSS_DB_NAME'));
define('DB_PASS', getenv('TTRSS_DB_PASS'));
define('DB_PORT', getenv('TTRSS_DB_PORT')); // usually 5432 for PostgreSQL, 3306 for MySQL
//define('DB_PORT', getenv('TTRSS_DB_PORT')); // when neeeded, PG-only
define('MYSQL_CHARSET', getenv('TTRSS_MYSQL_CHARSET'));
// 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.
// ***********************************
// *** Basic settings (important!) ***
// ***********************************
define('MAGPIE_FETCH_TIME_OUT', getenv('TTRSS_MAGPIE_FETCH_TIME_OUT'));
// Magpie's default timeout is 5 seconds. Some RSS feeds,
// such as from large Trac installs, can take significantly
// longer than 5 seconds to generate. To prevent failed
// updates, increase this.
define('SELF_URL_PATH', getenv('TTRSS_SELF_URL_PATH'));
// 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/
// The value should be a constant string literal. Please don't use
// PHP server variables here - you might introduce security
// issues on your install and cause hard to debug problems.
// If your tt-rss instance is behind a reverse proxy, use the external URL.
define('SINGLE_USER_MODE', getenv('TTRSS_SINGLE_USER_MODE'));
// Operate in single user mode, disables all functionality related to
// multiple users and authentication. Enabling this assumes you have
// your tt-rss directory protected by other means (e.g. http auth).
define('SIMPLE_UPDATE_MODE', getenv('TTRSS_SIMPLE_UPDATE_MODE'));
// Enables fallback update mode where tt-rss tries to update feeds in
// 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
// background processes while not running tt-rss, this method is generally
// viable to keep your feeds up to date.
// Still, there are more robust (and recommended) updating methods
// available, you can read about them here: https://tt-rss.org/wiki/UpdatingFeeds
// *****************************
// *** Files and directories ***
// *****************************
define('MAGPIE_CACHE_DIR', getenv('TTRSS_MAGPIE_CACHE_DIR'));
// Local cache directory for RSS feeds
define('PHP_EXECUTABLE', getenv('TTRSS_PHP_EXECUTABLE'));
// 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.
// 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
// put in here, ask your hosting provider.
define('LOCK_DIRECTORY', getenv('TTRSS_LOCK_DIRECTORY'));
// Directory for lockfiles, must be writable to the user you run
// daemon process or cronjobs under.
define('CACHE_DIR', getenv('TTRSS_CACHE_DIR'));
// Local cache directory for RSS feed content.
define('MAGPIE_CACHE_AGE', getenv('TTRSS_MAGPIE_CACHE_AGE'));
// How long to store cached RSS objects? In seconds.
// Defaults to 30 minutes
define('ICONS_DIR', getenv('TTRSS_ICONS_DIR'));
define('ICONS_URL', getenv('TTRSS_ICONS_URL'));
@ -64,104 +28,144 @@
// Unless you really know what you're doing, please keep those relative
// to tt-rss main directory.
// **********************
// *** Authentication ***
// **********************
define('SINGLE_USER_MODE', getenv('TTRSS_SINGLE_USER_MODE'));
// Operate in single user mode, disables all functionality related to
// multiple users.
// Please see PLUGINS below to configure various authentication modules.
define('TMP_DIRECTORY', getenv('TTRSS_TMP_DIRECTORY'));
// Directory for temporary files
define('AUTH_AUTO_CREATE', getenv('TTRSS_AUTH_AUTO_CREATE'));
// Allow authentication modules to auto-create users in tt-rss internal
// database when authenticated successfully.
define('FEEDS_FRAME_REFRESH', getenv('TTRSS_FEEDS_FRAME_REFRESH'));
// Auto refresh interval for feeds frame (in seconds)
define('AUTH_AUTO_LOGIN', getenv('TTRSS_AUTH_AUTO_LOGIN'));
// Automatically login user on remote or other kind of externally supplied
// authentication, otherwise redirect to login form as normal.
// If set to true, users won't be able to set application language
// and settings profile.
define('ENABLE_UPDATE_DAEMON', getenv('TTRSS_ENABLE_UPDATE_DAEMON'));
// This enables different mechanism for user-triggered updates designed
// for update daemon running in background on the server.
// This option suggests FEEDS_FRAME_REFRESH set to a small value
// (like 60 seconds, depending on number of users and server/bandwidth load).
// *********************
// *** Feed settings ***
// *********************
define('DAEMON_SLEEP_INTERVAL', getenv('TTRSS_DAEMON_SLEEP_INTERVAL'));
// Interval between update daemon update runs
define('FORCE_ARTICLE_PURGE', getenv('TTRSS_FORCE_ARTICLE_PURGE'));
// When this option is not 0, users ability to control feed purging
// intervals is disabled and all articles (which are not starred)
// older than this amount of days are purged.
define('DATABASE_BACKED_SESSIONS', getenv('TTRSS_DATABASE_BACKED_SESSIONS'));
// Store session information in a database, recommended for multiuser
// configurations. Doesn't seem to work for everyone, so enable with caution.
// tt-rss uses default PHP session storing mechanism if disabled.
// ***********************************
// *** Self-registrations by users ***
// ***********************************
define('SESSION_CHECK_ADDRESS', getenv('TTRSS_SESSION_CHECK_ADDRESS'));
// Bind session to client IP address (recommended)
define('ENABLE_REGISTRATION', getenv('TTRSS_ENABLE_REGISTRATION'));
// Allow users to register themselves. Please be aware that allowing
// random people to access your tt-rss installation is a security risk
// and potentially might lead to data loss or server exploit. Disabled
// by default.
define('SESSION_COOKIE_LIFETIME', getenv('TTRSS_SESSION_COOKIE_LIFETIME'));
// Default lifetime of a session (e.g. login) cookie. In seconds,
// 0 means cookie will be deleted when browser closes.
define('REG_NOTIFY_ADDRESS', getenv('TTRSS_REG_NOTIFY_ADDRESS'));
// Email address to send new user notifications to.
define('SESSION_EXPIRE_TIME', getenv('TTRSS_SESSION_EXPIRE_TIME'));
// Hard expiration limit for sessions. Should be
// greater or equal to SESSION_COOKIE_LIFETIME
define('REG_MAX_USERS', getenv('TTRSS_REG_MAX_USERS'));
// Maximum amount of users which will be allowed to register on this
// system. 0 - no limit.
define('DAEMON_UPDATE_LOGIN_LIMIT', getenv('TTRSS_DAEMON_UPDATE_LOGIN_LIMIT'));
// Stop updating feeds of user who haven't logged in specified
// amount of days. 0 disables.
// **********************************
// *** Cookies and login sessions ***
// **********************************
define('CHECK_FOR_NEW_VERSION', getenv('TTRSS_CHECK_FOR_NEW_VERSION'));
// Check for new versions of tt-rss automatically.
define('SESSION_COOKIE_LIFETIME', getenv('TTRSS_SESSION_COOKIE_LIFETIME'));
// Default lifetime of a session (e.g. login) cookie. In seconds,
// 0 means cookie will be deleted when browser closes.
define('USE_CURL_FOR_ICONS', getenv('TTRSS_USE_CURL_FOR_ICONS'));
// Fetch favicons using CURL, useful if your PHP has disabled remote fopen()
// *********************************
// *** Email and digest settings ***
// *********************************
define('DIGEST_ENABLE', getenv('TTRSS_DIGEST_ENABLE'));
// Global option to enable daily digests
// Tiny Tiny RSS sends mail via PHP mail() function, unless handled
// by a plugin.
define('DIGEST_EMAIL_LIMIT', getenv('TTRSS_DIGEST_EMAIL_LIMIT'));
// The maximum amount of emails sent in one digest batch
// If you need SMTP support, take a look here:
// https://git.tt-rss.org/fox/ttrss-mailer-smtp
define('DAEMON_SENDS_DIGESTS', getenv('TTRSS_DAEMON_SENDS_DIGESTS'));
// If update daemon and update_feeds should send digests
// Disable if you prefer querying special URL (see wiki)
define('SMTP_FROM_NAME', getenv('TTRSS_SMTP_FROM_NAME'));
define('SMTP_FROM_ADDRESS', getenv('TTRSS_SMTP_FROM_ADDRESS'));
define('ENABLE_TRANSLATIONS', getenv('TTRSS_ENABLE_TRANSLATIONS'));
// Enable support for interface translations
define('MYSQL_CHARSET', getenv('TTRSS_MYSQL_CHARSET'));
// Connection charset for MySQL. Only enable if having charset-related
// errors with MySQL (mangled characters, errors when updating feeds, etc).
define('DEFAULT_UPDATE_METHOD', getenv('TTRSS_DEFAULT_UPDATE_METHOD'));
// Which feed parsing library to use as default:
// 0 - Magpie
// 1 - SimplePie
define('SIMPLEPIE_CACHE_DIR', '/var/tmp/simplepie-ttrss-cache');
// Cache directory for RSS feeds when using SimplePie
define('SIMPLEPIE_CACHE_IMAGES', getenv('TTRSS_SIMPLEPIE_CACHE_IMAGES'));
// Allow caching feed images when using SimplePie, to bypass hotlink
// prevention and such at expense of local disk space and bandwidth.
// Note that you (or your users) also have to enable image caching
// in feed editor.
define('COUNTERS_MAX_AGE', getenv('TTRSS_COUNTERS_MAX_AGE'));
// Hard limit for unread counters calculation. Try tweaking this
// parameter to speed up tt-rss when having a huge number of articles
// in the database (better yet, enable purging!)
define('DIGEST_FROM_NAME', getenv('TTRSS_DIGEST_FROM_NAME'));
define('DIGEST_FROM_ADDRESS', getenv('TTRSS_DIGEST_FROM_ADDRESS'));
// Name, address and subject for sending outgoing mail. This applies
// to password reset notifications, digest emails and any other mail.
define('DIGEST_SUBJECT', getenv('TTRSS_DIGEST_SUBJECT'));
// Subject line for email digests
// ***************************************
// *** Other settings (less important) ***
// ***************************************
define('DIGEST_SMTP_HOST', getenv('TTRSS_DIGEST_SMTP_HOST'));
// SMTP Host to send outgoing mail. Blank - use system MTA.
define('CHECK_FOR_UPDATES', getenv('TTRSS_CHECK_FOR_UPDATES'));
// Check for updates automatically if running Git version
define('DIGEST_SMTP_LOGIN', getenv('TTRSS_DIGEST_SMTP_LOGIN'));
define('DIGEST_SMTP_PASSWORD', getenv('TTRSS_DIGEST_SMTP_PASSWORD'));
// These two options enable SMTP authentication when sending
// outgoing mail. Require DIGEST_SMTP_HOST.
define('DAEMON_FEED_LIMIT', getenv('TTRSS_DAEMON_FEED_LIMIT'));
// Limits the amount of feeds daemon (or a cronjob) updates on one run
define('ALLOW_REMOTE_USER_AUTH', getenv('TTRSS_ALLOW_REMOTE_USER_AUTH'));
// Set to 'true' if you trust your web server's REMOTE_USER
// environment variable to validate that the user is logged in. This
// option can be used to integrate tt-rss with Apache's external
// authentication modules.
define('LOCK_DIRECTORY', getenv('TTRSS_LOCK_DIRECTORY'));
// Directory for lockfiles, must be writable to the user you run
// daemon process or cronjobs under.
define('ENABLE_GZIP_OUTPUT', getenv('TTRSS_ENABLE_GZIP_OUTPUT'));
// Selectively gzip output to improve wire performance. This requires
// PHP Zlib extension on the server.
// Enabling this can break tt-rss in several httpd/php configurations,
// if you experience weird errors and tt-rss failing to start, blank pages
// after login, or content encoding errors, disable it.
define('PLUGINS', getenv('TTRSS_PLUGINS'));
// Comma-separated list of plugins to load automatically for all users.
// System plugins have to be specified here. Please enable at least one
// authentication plugin here (auth_*).
// Users may enable other user plugins from Preferences/Plugins but may not
// disable plugins specified in this list.
// Disabling auth_internal in this list would automatically disable
// reset password link on the login form.
define('LOG_DESTINATION', getenv('TTRSS_LOG_DESTINATION'));
// Error log destination to use. Possible values: sql (uses internal logging
// you can read in Preferences -> System), syslog - logs to system log.
// Setting this to blank uses PHP logging (usually to http server
// error.log).
// Note that feed updating daemons don't use this logging facility
// for normal output.
define('PHP_EXECUTABLE', getenv('TTRSS_PHP_EXECUTABLE'));
// Path to PHP executable
define('ENABLE_REGISTRATION', getenv('TTRSS_ENABLE_REGISTRATION'));
// Allow users to register themselves. Please be vary that allowing
// random people to access your tt-rss installation is a security risk
// and potentially might lead to data loss or server exploit. Disabled
// by default.
define('REG_NOTIFY_ADDRESS', getenv('TTRSS_REG_NOTIFY_ADDRESS'));
// Email address to send new user notifications to.
define('REG_MAX_USERS', getenv('TTRSS_REG_MAX_USERS'));
// Maximum amount of users which will be allowed to register on this
// system. 0 - no limit.
define('FEEDBACK_URL', getenv('TTRSS_FEEDBACK_URL'));
// Displays an URL for users to provide feedback or comments regarding
// this instance of tt-rss. Can lead to a forum, contact email, etc.
define('FORCE_ARTICLE_PURGE', getenv('TTRSS_FORCE_ARTICLE_PURGE'));
// When this option is not 0, users ability to control feed purging
// intervals is disabled and all articles (which are not starred)
// older than this amount of days are purged.
define('CONFIG_VERSION', getenv('TTRSS_CONFIG_VERSION'));
// Expected config version. Please update this option in config.php

@ -1,169 +1,173 @@
<?php
// *******************************************
// *** Database configuration (important!) ***
// *******************************************
define('DB_TYPE', '%DB_TYPE'); // pgsql or mysql
define('DB_HOST', '%DB_HOST');
define('DB_USER', '%DB_USER');
define('DB_NAME', '%DB_NAME');
define('DB_PASS', '%DB_PASS');
define('DB_PORT', '%DB_PORT'); // usually 5432 for PostgreSQL, 3306 for MySQL
define('MYSQL_CHARSET', 'UTF8');
// 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.
// ***********************************
// *** Basic settings (important!) ***
// ***********************************
define('SELF_URL_PATH', '%SELF_URL_PATH');
// 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/
// The value should be a constant string literal. Please don't use
// PHP server variables here - you might introduce security
// issues on your install and cause hard to debug problems.
// If your tt-rss instance is behind a reverse proxy, use the external URL.
define('SINGLE_USER_MODE', false);
// Your RDBMS must be configured to accept connections
// via TCP/IP and authentified by password.
define('DB_TYPE', "pgsql"); // or mysql
define('DB_HOST', "localhost");
define('DB_USER', "fox");
define('DB_NAME', "fox");
define('DB_PASS', "XXXXXX");
//define('DB_PORT', '5432'); // when neeeded, PG-only
define('MAGPIE_FETCH_TIME_OUT', 60);
// Magpie's default timeout is 5 seconds. Some RSS feeds,
// such as from large Trac installs, can take significantly
// longer than 5 seconds to generate. To prevent failed
// updates, increase this.
define('MAGPIE_CACHE_DIR', '/var/tmp/magpie-ttrss-cache');
// Local cache directory for RSS feeds
define('MAGPIE_CACHE_AGE', 60*30);
// How long to store cached RSS objects? In seconds.
// Defaults to 30 minutes
define('ICONS_DIR', "icons");
define('ICONS_URL', "icons");
// Local and URL path to the directory, where feed favicons are stored.
// Unless you really know what you're doing, please keep those relative
// to tt-rss main directory.
define('SINGLE_USER_MODE', true);
// Operate in single user mode, disables all functionality related to
// multiple users and authentication. Enabling this assumes you have
// your tt-rss directory protected by other means (e.g. http auth).
define('SIMPLE_UPDATE_MODE', false);
// Enables fallback update mode where tt-rss tries to update feeds in
// 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
// background processes while not running tt-rss, this method is generally
// viable to keep your feeds up to date.
// Still, there are more robust (and recommended) updating methods
// available, you can read about them here: https://tt-rss.org/wiki/UpdatingFeeds
// *****************************
// *** Files and directories ***
// *****************************
// multiple users.
define('PHP_EXECUTABLE', '/usr/bin/php');
// 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.
// 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
// put in here, ask your hosting provider.
define('TMP_DIRECTORY', '/tmp');
// Directory for temporary files
define('LOCK_DIRECTORY', 'lock');
// Directory for lockfiles, must be writable to the user you run
// daemon process or cronjobs under.
define('FEEDS_FRAME_REFRESH', 600);
// Auto refresh interval for feeds frame (in seconds)
define('CACHE_DIR', 'cache');
// Local cache directory for RSS feed content.
define('ENABLE_UPDATE_DAEMON', false);
// This enables different mechanism for user-triggered updates designed
// for update daemon running in background on the server.
// This option suggests FEEDS_FRAME_REFRESH set to a small value
// (like 60 seconds, depending on number of users and server/bandwidth load).
define('ICONS_DIR', "feed-icons");
define('ICONS_URL', "feed-icons");
// Local and URL path to the directory, where feed favicons are stored.
// Unless you really know what you're doing, please keep those relative
// to tt-rss main directory.
define('DAEMON_SLEEP_INTERVAL', 120);
// Interval between update daemon update runs
// **********************
// *** Authentication ***
// **********************
define('DATABASE_BACKED_SESSIONS', false);
// Store session information in a database, recommended for multiuser
// configurations. Doesn't seem to work for everyone, so enable with caution.
// tt-rss uses default PHP session storing mechanism if disabled.
// Please see PLUGINS below to configure various authentication modules.
define('SESSION_CHECK_ADDRESS', true);
// Bind session to client IP address (recommended)
define('AUTH_AUTO_CREATE', true);
// Allow authentication modules to auto-create users in tt-rss internal
// database when authenticated successfully.
define('SESSION_COOKIE_LIFETIME', 0);
// Default lifetime of a session (e.g. login) cookie. In seconds,
// 0 means cookie will be deleted when browser closes.
define('AUTH_AUTO_LOGIN', true);
// Automatically login user on remote or other kind of externally supplied
// authentication, otherwise redirect to login form as normal.
// If set to true, users won't be able to set application language
// and settings profile.
define('SESSION_EXPIRE_TIME', 86400);
// Hard expiration limit for sessions. Should be
// greater or equal to SESSION_COOKIE_LIFETIME
// *********************
// *** Feed settings ***
// *********************
define('DAEMON_UPDATE_LOGIN_LIMIT', 0);
// Stop updating feeds of user who haven't logged in specified
// amount of days. 0 disables.
define('FORCE_ARTICLE_PURGE', 0);
// When this option is not 0, users ability to control feed purging
// intervals is disabled and all articles (which are not starred)
// older than this amount of days are purged.
define('CHECK_FOR_NEW_VERSION', true);
// Check for new versions of tt-rss automatically.
// ***********************************
// *** Self-registrations by users ***
// ***********************************
define('USE_CURL_FOR_ICONS', false);
// Fetch favicons using CURL, useful if your PHP has disabled remote fopen()
define('ENABLE_REGISTRATION', false);
// Allow users to register themselves. Please be aware that allowing
// random people to access your tt-rss installation is a security risk
// and potentially might lead to data loss or server exploit. Disabled
// by default.
define('DIGEST_ENABLE', true);
// Global option to enable daily digests
define('REG_NOTIFY_ADDRESS', 'user@your.domain.dom');
// Email address to send new user notifications to.
define('DIGEST_EMAIL_LIMIT', 10);
// The maximum amount of emails sent in one digest batch
define('REG_MAX_USERS', 10);
// Maximum amount of users which will be allowed to register on this
// system. 0 - no limit.
define('DAEMON_SENDS_DIGESTS', true);
// If update daemon and update_feeds should send digests
// Disable if you prefer querying special URL (see wiki)
// **********************************
// *** Cookies and login sessions ***
// **********************************
define('ENABLE_TRANSLATIONS', true);
// Enable support for interface translations
define('SESSION_COOKIE_LIFETIME', 86400);
// Default lifetime of a session (e.g. login) cookie. In seconds,
// 0 means cookie will be deleted when browser closes.
define('MYSQL_CHARSET', '');
// Connection charset for MySQL. Only enable if having charset-related
// errors with MySQL (mangled characters, errors when updating feeds, etc).
// *********************************
// *** Email and digest settings ***
// *********************************
define('DEFAULT_UPDATE_METHOD', 0);
// Which feed parsing library to use as default:
// 0 - Magpie
// 1 - SimplePie
// Tiny Tiny RSS sends mail via PHP mail() function, unless handled
// by a plugin.
define('SIMPLEPIE_CACHE_DIR', '/var/tmp/simplepie-ttrss-cache');
// Cache directory for RSS feeds when using SimplePie
// If you need SMTP support, take a look here:
// https://git.tt-rss.org/fox/ttrss-mailer-smtp
define('SIMPLEPIE_CACHE_IMAGES', false);
// Allow caching feed images when using SimplePie, to bypass hotlink
// prevention and such at expense of local disk space and bandwidth.
// Note that you (or your users) also have to enable image caching
// in feed editor.
define('SMTP_FROM_NAME', 'Tiny Tiny RSS');
define('SMTP_FROM_ADDRESS', 'noreply@your.domain.dom');
define('COUNTERS_MAX_AGE', 365);
// Hard limit for unread counters calculation. Try tweaking this
// parameter to speed up tt-rss when having a huge number of articles
// in the database (better yet, enable purging!)
define('DIGEST_FROM_NAME', 'Tiny Tiny RSS');
define('DIGEST_FROM_ADDRESS', 'noreply@your.domain.dom');
// Name, address and subject for sending outgoing mail. This applies
// to password reset notifications, digest emails and any other mail.
define('DIGEST_SUBJECT', '[tt-rss] New headlines for last 24 hours');
// Subject line for email digests
// ***************************************
// *** Other settings (less important) ***
// ***************************************
define('DIGEST_SMTP_HOST', '');
// SMTP Host to send outgoing mail. Blank - use system MTA.
define('DIGEST_SMTP_LOGIN', '');
define('DIGEST_SMTP_PASSWORD', '');
// These two options enable SMTP authentication when sending
// outgoing mail. Require DIGEST_SMTP_HOST.
define('CHECK_FOR_UPDATES', true);
// Check for updates automatically if running Git version
define('DAEMON_FEED_LIMIT', 100);
// Limits the amount of feeds daemon (or a cronjob) updates on one run
define('ALLOW_REMOTE_USER_AUTH', false);
// Set to 'true' if you trust your web server's REMOTE_USER
// environment variable to validate that the user is logged in. This
// option can be used to integrate tt-rss with Apache's external
// authentication modules.
define('LOCK_DIRECTORY', '.');
// Directory for lockfiles, must be writable to the user you run
// daemon process or cronjobs under.
define('ENABLE_GZIP_OUTPUT', false);
// Selectively gzip output to improve wire performance. This requires
// PHP Zlib extension on the server.
// Enabling this can break tt-rss in several httpd/php configurations,
// if you experience weird errors and tt-rss failing to start, blank pages
// after login, or content encoding errors, disable it.
define('PLUGINS', 'auth_internal, note');
// Comma-separated list of plugins to load automatically for all users.
// System plugins have to be specified here. Please enable at least one
// authentication plugin here (auth_*).
// Users may enable other user plugins from Preferences/Plugins but may not
// disable plugins specified in this list.
// Disabling auth_internal in this list would automatically disable
// reset password link on the login form.
define('LOG_DESTINATION', 'sql');
// Error log destination to use. Possible values: sql (uses internal logging
// you can read in Preferences -> System), syslog - logs to system log.
// Setting this to blank uses PHP logging (usually to http server
// error.log).
// Note that feed updating daemons don't use this logging facility
// for normal output.
define('CONFIG_VERSION', 26);
define('PHP_EXECUTABLE', '/usr/bin/php');
// Path to PHP executable
define('ENABLE_REGISTRATION', false);
// Allow users to register themselves. Please be vary that allowing
// random people to access your tt-rss installation is a security risk
// and potentially might lead to data loss or server exploit. Disabled
// by default.
define('REG_NOTIFY_ADDRESS', 'user@your.domain.dom');
// Email address to send new user notifications to.
define('REG_MAX_USERS', 10);
// Maximum amount of users which will be allowed to register on this
// system. 0 - no limit.
define('FEEDBACK_URL', '');
// Displays an URL for users to provide feedback or comments regarding
// this instance of tt-rss. Can lead to a forum, contact email, etc.
define('FORCE_ARTICLE_PURGE', 0);
// When this option is not 0, users ability to control feed purging
// intervals is disabled and all articles (which are not starred)
// older than this amount of days are purged.
define('CONFIG_VERSION', 19);
// Expected config version. Please update this option in config.php
// if necessary (after migrating all new options from this file).

@ -1,6 +1,6 @@
#!/bin/sh -e
while ! pg_isready -h $TTRSS_DB_HOST -U $TTRSS_DB_USER; do
while ! PGPASSWORD=$TTRSS_DB_PASS psql -h $TTRSS_DB_HOST -U $TTRSS_DB_USER $TTRSS_DB_NAME -c 'select true'; do
echo waiting until $TTRSS_DB_HOST is ready...
sleep 3
done
@ -29,12 +29,13 @@ if [ ! -d $DST_DIR/.git ]; then
mkdir -p $DST_DIR
echo cloning tt-rss source from $SRC_REPO to $DST_DIR...
git clone $SRC_REPO $DST_DIR || echo error: failed to clone master repository.
git checkout $TARGET_COMMIT || echo error: unable to checkout ${TARGET_COMMIT}.
else
echo updating tt-rss source in $DST_DIR from $SRC_REPO...
cd $DST_DIR && \
git config core.filemode false && \
git config pull.rebase false && \
git pull origin master || echo error: unable to update master repository.
git checkout $TARGET_COMMIT || echo error: unable to checkout ${TARGET_COMMIT}.
fi
if [ ! -e $DST_DIR/index.php ]; then
@ -55,9 +56,10 @@ else
fi
chown -R $OWNER_UID:$OWNER_GID $DST_DIR \
/var/log/php8
/var/log/
for d in cache lock feed-icons; do
for d in lock icons; do
mkdir -p $DST_DIR/$d
chmod 777 $DST_DIR/$d
find $DST_DIR/$d -type f -exec chmod 666 {} \;
done
@ -69,7 +71,7 @@ RESTORE_SCHEMA=${SCRIPT_ROOT}/restore-schema.sql.gz
if [ -r $RESTORE_SCHEMA ]; then
zcat $RESTORE_SCHEMA | $PSQL
elif ! $PSQL -c 'select * from ttrss_version'; then
$PSQL < /var/www/html/tt-rss/schema/ttrss_schema_pgsql.sql
cat /var/www/html/tt-rss/schema/ttrss_schema_pgsql.sql | sed 's/tt-rss.spb.ru/tt-rss.org/g' | $PSQL
fi
if [ ! -s $DST_DIR/config.php ]; then
@ -85,9 +87,9 @@ fi
# this was previously generated
rm -f $DST_DIR/config.php.bak
cd $DST_DIR && sudo -E -u app php8 ./update.php --update-schema=force-yes
cd $DST_DIR && sudo -E -u app php ./update.php --update-schema=force-yes
touch $DST_DIR/.app_is_ready
sudo -E -u app /usr/sbin/php-fpm8 -F
sudo -E -u app /usr/bin/php-fpm -F

@ -12,7 +12,7 @@ if ! id app; then
adduser -D -h /var/www/html -G app -u $OWNER_UID app
fi
while ! pg_isready -h $TTRSS_DB_HOST -U $TTRSS_DB_USER; do
while ! PGPASSWORD=$TTRSS_DB_PASS psql -h $TTRSS_DB_HOST -U $TTRSS_DB_USER $TTRSS_DB_NAME -c 'select true'; do
echo waiting until $TTRSS_DB_HOST is ready...
sleep 3
done
@ -24,4 +24,6 @@ while [ ! -s $DST_DIR/config.php -a -e $DST_DIR/.app_is_ready ]; do
sleep 3
done
sudo -E -u app /usr/bin/php8 /var/www/html/tt-rss/update_daemon2.php
cd $DST_DIR
sudo -E -u app /usr/bin/php /var/www/html/tt-rss/update_daemon2.php

@ -2,7 +2,7 @@ version: '3'
services:
db:
image: postgres:12-alpine
image: postgres:9
restart: unless-stopped
environment:
- POSTGRES_USER=${TTRSS_DB_USER}
@ -24,19 +24,19 @@ services:
depends_on:
- db
backups:
build:
context:
./app
restart: unless-stopped
env_file:
- .env
volumes:
- backups:/backups
- app:/var/www/html
depends_on:
- db
command: /opt/tt-rss/dcron.sh -f
# backups:
# build:
# context:
# ./app
# restart: unless-stopped
# env_file:
# - .env
# volumes:
# - backups:/backups
# - app:/var/www/html
# depends_on:
# - db
# command: /opt/tt-rss/dcron.sh -f
updater:
build:

Loading…
Cancel
Save