mirror of
https://git.tt-rss.org/fox/ttrss-docker-compose
synced 2025-06-13 13:39:53 +02:00
- merge changes from dynamic-env branch
- cleanup YML files, etc
This commit is contained in:
parent
c0443faf7f
commit
8b4cfe23ea
11 changed files with 474 additions and 152 deletions
15
.env-dist
15
.env-dist
|
@ -1,22 +1,21 @@
|
||||||
# Copy this file to .env before building the container.
|
# Copy this file to .env before building the container.
|
||||||
# Put any local modifications here.
|
# Put any local modifications here.
|
||||||
|
|
||||||
BUILD_TAG=latest
|
|
||||||
|
|
||||||
POSTGRES_USER=postgres
|
POSTGRES_USER=postgres
|
||||||
POSTGRES_PASSWORD=password
|
POSTGRES_PASSWORD=password
|
||||||
|
|
||||||
OWNER_UID=1000
|
# This is only used by web-ssl container.
|
||||||
OWNER_GID=1000
|
#HTTP_HOST=localhost
|
||||||
|
|
||||||
# You can keep this as localhost unless you want to use the ssl sidecar
|
|
||||||
# container (I suggest terminating ssl on the reverse proxy instead).
|
|
||||||
HTTP_HOST=localhost
|
|
||||||
|
|
||||||
# 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
|
SELF_URL_PATH=http://localhost:8280/tt-rss
|
||||||
|
|
||||||
|
# You can customize other config.php defines by setting overrides here.
|
||||||
|
# See app/Dockerfile for complete list. Examples:
|
||||||
|
# PLUGINS=auth_remote
|
||||||
|
# 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
|
||||||
# use next HTTP_PORT definition (or remove "127.0.0.1:").
|
# use next HTTP_PORT definition (or remove "127.0.0.1:").
|
||||||
|
|
|
@ -1,64 +1,36 @@
|
||||||
version: '3'
|
version: '3'
|
||||||
|
|
||||||
# set database password in .env
|
|
||||||
# please don't use quote (') or (") symbols in variables
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
db:
|
db:
|
||||||
image: postgres:12-alpine
|
image: postgres:12-alpine
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
volumes:
|
volumes:
|
||||||
- db:/var/lib/postgresql/data
|
- db:/var/lib/postgresql/data
|
||||||
environment:
|
|
||||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
||||||
- POSTGRES_USER=${POSTGRES_USER}
|
|
||||||
|
|
||||||
app:
|
app:
|
||||||
image: cthulhoo/ttrss-fpm-pgsql-static
|
image: cthulhoo/ttrss-fpm-pgsql-static
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
environment:
|
environment:
|
||||||
- DB_TYPE=pgsql
|
|
||||||
- DB_HOST=db
|
|
||||||
- DB_NAME=${POSTGRES_USER}
|
- DB_NAME=${POSTGRES_USER}
|
||||||
- DB_USER=${POSTGRES_USER}
|
- DB_USER=${POSTGRES_USER}
|
||||||
- DB_PASS=${POSTGRES_PASSWORD}
|
- DB_PASS=${POSTGRES_PASSWORD}
|
||||||
- OWNER_UID=${OWNER_UID}
|
|
||||||
- OWNER_GID=${OWNER_GID}
|
|
||||||
- SELF_URL_PATH=${SELF_URL_PATH}
|
|
||||||
volumes:
|
volumes:
|
||||||
- app:/var/www/html
|
- app:/var/www/html
|
||||||
|
- ./config.d:/opt/tt-rss/config.d:ro
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
|
|
||||||
updater:
|
|
||||||
image: cthulhoo/ttrss-fpm-pgsql-static
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
- DB_TYPE=pgsql
|
|
||||||
- DB_HOST=db
|
|
||||||
- DB_NAME=${POSTGRES_USER}
|
|
||||||
- DB_USER=${POSTGRES_USER}
|
|
||||||
- DB_PASS=${POSTGRES_PASSWORD}
|
|
||||||
- OWNER_UID=${OWNER_UID}
|
|
||||||
- OWNER_GID=${OWNER_GID}
|
|
||||||
- SELF_URL_PATH=${SELF_URL_PATH}
|
|
||||||
volumes:
|
|
||||||
- app:/var/www/html
|
|
||||||
depends_on:
|
|
||||||
- app
|
|
||||||
command: /updater.sh
|
|
||||||
|
|
||||||
backups:
|
backups:
|
||||||
image: cthulhoo/ttrss-fpm-pgsql-static
|
image: cthulhoo/ttrss-fpm-pgsql-static
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- DB_TYPE=pgsql
|
|
||||||
- DB_HOST=db
|
|
||||||
- DB_NAME=${POSTGRES_USER}
|
- DB_NAME=${POSTGRES_USER}
|
||||||
- DB_USER=${POSTGRES_USER}
|
- DB_USER=${POSTGRES_USER}
|
||||||
- DB_PASS=${POSTGRES_PASSWORD}
|
- DB_PASS=${POSTGRES_PASSWORD}
|
||||||
- OWNER_UID=${OWNER_UID}
|
|
||||||
- OWNER_GID=${OWNER_GID}
|
|
||||||
volumes:
|
volumes:
|
||||||
- backups:/backups
|
- backups:/backups
|
||||||
- app:/var/www/html
|
- app:/var/www/html
|
||||||
|
@ -66,6 +38,22 @@ services:
|
||||||
- db
|
- db
|
||||||
command: /dcron.sh -f
|
command: /dcron.sh -f
|
||||||
|
|
||||||
|
updater:
|
||||||
|
image: cthulhoo/ttrss-fpm-pgsql-static
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
- DB_NAME=${POSTGRES_USER}
|
||||||
|
- DB_USER=${POSTGRES_USER}
|
||||||
|
- DB_PASS=${POSTGRES_PASSWORD}
|
||||||
|
volumes:
|
||||||
|
- app:/var/www/html
|
||||||
|
- ./config.d:/opt/tt-rss/config.d:ro
|
||||||
|
depends_on:
|
||||||
|
- app
|
||||||
|
command: /updater.sh
|
||||||
|
|
||||||
# web:
|
# web:
|
||||||
# image: cthulhoo/ttrss-web
|
# image: cthulhoo/ttrss-web
|
||||||
# restart: unless-stopped
|
# restart: unless-stopped
|
||||||
|
@ -103,6 +91,6 @@ services:
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
db:
|
db:
|
||||||
app:
|
app:
|
||||||
certs:
|
certs:
|
||||||
backups:
|
backups:
|
||||||
|
|
|
@ -14,10 +14,51 @@ ADD index.php /
|
||||||
ADD build-prepare.sh /
|
ADD build-prepare.sh /
|
||||||
ADD dcron.sh /
|
ADD dcron.sh /
|
||||||
ADD backup.sh /etc/periodic/weekly/backup
|
ADD backup.sh /etc/periodic/weekly/backup
|
||||||
|
ADD config.docker.php /
|
||||||
|
|
||||||
RUN sed -i.bak 's/^listen = 127.0.0.1:9000/listen = 9000/' /etc/php7/php-fpm.d/www.conf
|
RUN sed -i.bak 's/^listen = 127.0.0.1:9000/listen = 9000/' /etc/php7/php-fpm.d/www.conf
|
||||||
RUN sed -i.bak 's/\(memory_limit =\) 128M/\1 256M/' /etc/php7/php.ini
|
RUN sed -i.bak 's/\(memory_limit =\) 128M/\1 256M/' /etc/php7/php.ini
|
||||||
|
RUN sed -i.bak 's/;clear_env = .*/clear_env = no/i' /etc/php7/php-fpm.d/www.conf
|
||||||
|
|
||||||
|
RUN mkdir -p /var/www
|
||||||
|
RUN mkdir -p /opt/tt-rss/config.d
|
||||||
|
|
||||||
RUN sh -c /build-prepare.sh
|
RUN sh -c /build-prepare.sh
|
||||||
|
|
||||||
|
ENV OWNER_UID=1000
|
||||||
|
ENV OWNER_GID=1000
|
||||||
|
|
||||||
|
ENV DB_TYPE="pgsql"
|
||||||
|
ENV DB_HOST="db"
|
||||||
|
ENV DB_USER="%DB_USER"
|
||||||
|
ENV DB_NAME="%DB_NAME"
|
||||||
|
ENV DB_PASS="%DB_PASS"
|
||||||
|
ENV DB_PORT="5432"
|
||||||
|
|
||||||
|
# config.php defaults
|
||||||
|
ENV MYSQL_CHARSET="UTF8"
|
||||||
|
ENV SELF_URL_PATH="%SELF_URL_PATH"
|
||||||
|
ENV SINGLE_USER_MODE=""
|
||||||
|
ENV SIMPLE_UPDATE_MODE=""
|
||||||
|
ENV PHP_EXECUTABLE="/usr/bin/php"
|
||||||
|
ENV LOCK_DIRECTORY="lock"
|
||||||
|
ENV CACHE_DIR="cache"
|
||||||
|
ENV ICONS_DIR="feed-icons"
|
||||||
|
ENV ICONS_URL="feed-icons"
|
||||||
|
ENV AUTH_AUTO_CREATE="true"
|
||||||
|
ENV AUTH_AUTO_LOGIN="true"
|
||||||
|
ENV FORCE_ARTICLE_PURGE="0"
|
||||||
|
ENV ENABLE_REGISTRATION=""
|
||||||
|
ENV REG_NOTIFY_ADDRESS="user@your.domain.dom"
|
||||||
|
ENV REG_MAX_USERS="10"
|
||||||
|
ENV SESSION_COOKIE_LIFETIME="86400"
|
||||||
|
ENV SMTP_FROM_NAME="Tiny Tiny RSS"
|
||||||
|
ENV SMTP_FROM_ADDRESS="noreply@your.domain.dom"
|
||||||
|
ENV DIGEST_SUBJECT="[tt-rss] New headlines for last 24 hours"
|
||||||
|
ENV CHECK_FOR_UPDATES="true"
|
||||||
|
ENV ENABLE_GZIP_OUTPUT=""
|
||||||
|
ENV PLUGINS="auth_internal, note"
|
||||||
|
ENV LOG_DESTINATION="sql"
|
||||||
|
ENV CONFIG_VERSION="26"
|
||||||
|
|
||||||
CMD /startup.sh
|
CMD /startup.sh
|
||||||
|
|
174
src/app/config.docker.php
Normal file
174
src/app/config.docker.php
Normal file
|
@ -0,0 +1,174 @@
|
||||||
|
<?php
|
||||||
|
// *******************************************
|
||||||
|
// *** Database configuration (important!) ***
|
||||||
|
// *******************************************
|
||||||
|
|
||||||
|
define('DB_TYPE', getenv('DB_TYPE')); // pgsql or mysql
|
||||||
|
define('DB_HOST', getenv('DB_HOST'));
|
||||||
|
define('DB_USER', getenv('DB_USER'));
|
||||||
|
define('DB_NAME', getenv('DB_NAME'));
|
||||||
|
define('DB_PASS', getenv('DB_PASS'));
|
||||||
|
define('DB_PORT', getenv('DB_PORT')); // usually 5432 for PostgreSQL, 3306 for MySQL
|
||||||
|
|
||||||
|
define('MYSQL_CHARSET', getenv('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('SELF_URL_PATH', getenv('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('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('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('PHP_EXECUTABLE', getenv('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('LOCK_DIRECTORY'));
|
||||||
|
// Directory for lockfiles, must be writable to the user you run
|
||||||
|
// daemon process or cronjobs under.
|
||||||
|
|
||||||
|
define('CACHE_DIR', getenv('CACHE_DIR'));
|
||||||
|
// Local cache directory for RSS feed content.
|
||||||
|
|
||||||
|
define('ICONS_DIR', getenv('ICONS_DIR'));
|
||||||
|
define('ICONS_URL', getenv('ICONS_URL'));
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// **********************
|
||||||
|
// *** Authentication ***
|
||||||
|
// **********************
|
||||||
|
|
||||||
|
// Please see PLUGINS below to configure various authentication modules.
|
||||||
|
|
||||||
|
define('AUTH_AUTO_CREATE', getenv('AUTH_AUTO_CREATE'));
|
||||||
|
// Allow authentication modules to auto-create users in tt-rss internal
|
||||||
|
// database when authenticated successfully.
|
||||||
|
|
||||||
|
define('AUTH_AUTO_LOGIN', getenv('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.
|
||||||
|
|
||||||
|
// *********************
|
||||||
|
// *** Feed settings ***
|
||||||
|
// *********************
|
||||||
|
|
||||||
|
define('FORCE_ARTICLE_PURGE', getenv('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.
|
||||||
|
|
||||||
|
// ***********************************
|
||||||
|
// *** Self-registrations by users ***
|
||||||
|
// ***********************************
|
||||||
|
|
||||||
|
define('ENABLE_REGISTRATION', getenv('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('REG_NOTIFY_ADDRESS', getenv('REG_NOTIFY_ADDRESS'));
|
||||||
|
// Email address to send new user notifications to.
|
||||||
|
|
||||||
|
define('REG_MAX_USERS', getenv('REG_MAX_USERS'));
|
||||||
|
// Maximum amount of users which will be allowed to register on this
|
||||||
|
// system. 0 - no limit.
|
||||||
|
|
||||||
|
// **********************************
|
||||||
|
// *** Cookies and login sessions ***
|
||||||
|
// **********************************
|
||||||
|
|
||||||
|
define('SESSION_COOKIE_LIFETIME', getenv('SESSION_COOKIE_LIFETIME'));
|
||||||
|
// Default lifetime of a session (e.g. login) cookie. In seconds,
|
||||||
|
// 0 means cookie will be deleted when browser closes.
|
||||||
|
|
||||||
|
// *********************************
|
||||||
|
// *** Email and digest settings ***
|
||||||
|
// *********************************
|
||||||
|
|
||||||
|
// Tiny Tiny RSS sends mail via PHP mail() function, unless handled
|
||||||
|
// by a plugin.
|
||||||
|
|
||||||
|
// If you need SMTP support, take a look here:
|
||||||
|
// https://git.tt-rss.org/fox/ttrss-mailer-smtp
|
||||||
|
|
||||||
|
define('SMTP_FROM_NAME', getenv('SMTP_FROM_NAME'));
|
||||||
|
define('SMTP_FROM_ADDRESS', getenv('SMTP_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('DIGEST_SUBJECT'));
|
||||||
|
// Subject line for email digests
|
||||||
|
|
||||||
|
// ***************************************
|
||||||
|
// *** Other settings (less important) ***
|
||||||
|
// ***************************************
|
||||||
|
|
||||||
|
define('CHECK_FOR_UPDATES', getenv('CHECK_FOR_UPDATES'));
|
||||||
|
// Check for updates automatically if running Git version
|
||||||
|
|
||||||
|
define('ENABLE_GZIP_OUTPUT', getenv('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('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('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('CONFIG_VERSION', getenv('CONFIG_VERSION'));
|
||||||
|
// Expected config version. Please update this option in config.php
|
||||||
|
// if necessary (after migrating all new options from this file).
|
||||||
|
|
||||||
|
// vim:ft=php
|
||||||
|
$snippets = glob("/opt/tt-rss/config.d/*.php");
|
||||||
|
|
||||||
|
foreach ($snippets as $snippet)
|
||||||
|
require_once $snippet;
|
4
src/app/config.php-config.d
Normal file
4
src/app/config.php-config.d
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
$snippets = glob("/opt/tt-rss/config.d/*.php");
|
||||||
|
|
||||||
|
foreach ($snippets as $snippet)
|
||||||
|
require_once $snippet;
|
170
src/app/config.php-dist
Normal file
170
src/app/config.php-dist
Normal file
|
@ -0,0 +1,170 @@
|
||||||
|
<?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);
|
||||||
|
// 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 ***
|
||||||
|
// *****************************
|
||||||
|
|
||||||
|
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('LOCK_DIRECTORY', 'lock');
|
||||||
|
// Directory for lockfiles, must be writable to the user you run
|
||||||
|
// daemon process or cronjobs under.
|
||||||
|
|
||||||
|
define('CACHE_DIR', 'cache');
|
||||||
|
// Local cache directory for RSS feed content.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
// **********************
|
||||||
|
// *** Authentication ***
|
||||||
|
// **********************
|
||||||
|
|
||||||
|
// Please see PLUGINS below to configure various authentication modules.
|
||||||
|
|
||||||
|
define('AUTH_AUTO_CREATE', true);
|
||||||
|
// Allow authentication modules to auto-create users in tt-rss internal
|
||||||
|
// database when authenticated successfully.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
// *********************
|
||||||
|
// *** Feed settings ***
|
||||||
|
// *********************
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
// ***********************************
|
||||||
|
// *** Self-registrations by users ***
|
||||||
|
// ***********************************
|
||||||
|
|
||||||
|
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('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.
|
||||||
|
|
||||||
|
// **********************************
|
||||||
|
// *** Cookies and login sessions ***
|
||||||
|
// **********************************
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
// *********************************
|
||||||
|
// *** Email and digest settings ***
|
||||||
|
// *********************************
|
||||||
|
|
||||||
|
// Tiny Tiny RSS sends mail via PHP mail() function, unless handled
|
||||||
|
// by a plugin.
|
||||||
|
|
||||||
|
// If you need SMTP support, take a look here:
|
||||||
|
// https://git.tt-rss.org/fox/ttrss-mailer-smtp
|
||||||
|
|
||||||
|
define('SMTP_FROM_NAME', 'Tiny Tiny RSS');
|
||||||
|
define('SMTP_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('CHECK_FOR_UPDATES', true);
|
||||||
|
// Check for updates automatically if running Git version
|
||||||
|
|
||||||
|
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);
|
||||||
|
// Expected config version. Please update this option in config.php
|
||||||
|
// if necessary (after migrating all new options from this file).
|
||||||
|
|
||||||
|
// vim:ft=php
|
6
src/app/prepare-config.php
Executable file
6
src/app/prepare-config.php
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
sed -e "s/define('\([A-Z_]\+\)', [^)]\+/define('\1', getenv('\1')/" \
|
||||||
|
< config.php-dist > config.docker.php
|
||||||
|
|
||||||
|
cat config.php-config.d >> config.docker.php
|
3
src/app/prepare-environment.sh
Executable file
3
src/app/prepare-environment.sh
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
grep define config.php-dist | sed -e "s/[ \t]*define('\([A-Z_]\+\)', ['\"]\?\([^'\")]\+\).*/ENV \1=\"\2\"/"
|
|
@ -1,11 +1,15 @@
|
||||||
#!/bin/sh -ex
|
#!/bin/sh -e
|
||||||
|
|
||||||
while ! pg_isready -h $DB_HOST -U $DB_USER; do
|
while ! pg_isready -h $DB_HOST -U $DB_USER; do
|
||||||
echo waiting until $DB_HOST is ready...
|
echo waiting until $DB_HOST is ready...
|
||||||
sleep 3
|
sleep 3
|
||||||
done
|
done
|
||||||
|
|
||||||
if ! id app; then
|
# We don't need those here (HTTP_HOST would cause false SELF_URL_PATH check failures)
|
||||||
|
unset HTTP_PORT
|
||||||
|
unset HTTP_HOST
|
||||||
|
|
||||||
|
if ! id app >/dev/null 2>&1; then
|
||||||
addgroup -g $OWNER_GID app
|
addgroup -g $OWNER_GID app
|
||||||
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
|
||||||
|
@ -15,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=$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
|
||||||
|
|
||||||
|
@ -41,14 +45,14 @@ for d in cache lock feed-icons plugins.local themes.local; do
|
||||||
mkdir -p $DST_DIR/$d
|
mkdir -p $DST_DIR/$d
|
||||||
done
|
done
|
||||||
|
|
||||||
|
chown -R $OWNER_UID:$OWNER_GID $DST_DIR \
|
||||||
|
/var/log/php7
|
||||||
|
|
||||||
for d in cache lock feed-icons; do
|
for d in cache lock feed-icons; do
|
||||||
chmod 777 $DST_DIR/$d
|
chmod 777 $DST_DIR/$d
|
||||||
find $DST_DIR/$d -type f -exec chmod 666 {} \;
|
find $DST_DIR/$d -type f -exec chmod 666 {} \;
|
||||||
done
|
done
|
||||||
|
|
||||||
chown -R $OWNER_UID:$OWNER_GID $DST_DIR \
|
|
||||||
/var/log/php7
|
|
||||||
|
|
||||||
PSQL="psql -q -h $DB_HOST -U $DB_USER $DB_NAME"
|
PSQL="psql -q -h $DB_HOST -U $DB_USER $DB_NAME"
|
||||||
|
|
||||||
$PSQL -c "create extension if not exists pg_trgm"
|
$PSQL -c "create extension if not exists pg_trgm"
|
||||||
|
@ -61,32 +65,20 @@ elif ! $PSQL -c 'select * from ttrss_version'; then
|
||||||
$PSQL < /var/www/html/tt-rss/schema/ttrss_schema_pgsql.sql
|
$PSQL < /var/www/html/tt-rss/schema/ttrss_schema_pgsql.sql
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SELF_URL_PATH=$(echo $SELF_URL_PATH | sed -e 's/[\/&]/\\&/g')
|
|
||||||
|
|
||||||
if [ ! -s $DST_DIR/config.php ]; then
|
if [ ! -s $DST_DIR/config.php ]; then
|
||||||
sed \
|
cp /config.docker.php $DST_DIR/config.php
|
||||||
-e "s/define('DB_HOST'.*/define('DB_HOST', '$DB_HOST');/" \
|
|
||||||
-e "s/define('DB_USER'.*/define('DB_USER', '$DB_USER');/" \
|
|
||||||
-e "s/define('DB_NAME'.*/define('DB_NAME', '$DB_NAME');/" \
|
|
||||||
-e "s/define('DB_PASS'.*/define('DB_PASS', '$DB_PASS');/" \
|
|
||||||
-e "s/define('DB_TYPE'.*/define('DB_TYPE', 'pgsql');/" \
|
|
||||||
-e "s/define('DB_PORT'.*/define('DB_PORT', 5432);/" \
|
|
||||||
-e "s/define('PLUGINS'.*/define('PLUGINS', 'auth_internal, note, nginx_xaccel');/" \
|
|
||||||
-e "s/define('SELF_URL_PATH'.*/define('SELF_URL_PATH','$SELF_URL_PATH');/" \
|
|
||||||
< $DST_DIR/config.php-dist > $DST_DIR/config.php
|
|
||||||
|
|
||||||
cat >> $DST_DIR/config.php << EOF
|
cat >> $DST_DIR/config.php << EOF
|
||||||
define('NGINX_XACCEL_PREFIX', '/tt-rss');
|
define('NGINX_XACCEL_PREFIX', '/tt-rss');
|
||||||
EOF
|
EOF
|
||||||
else
|
|
||||||
sed \
|
|
||||||
-e "s/define('SELF_URL_PATH'.*/define('SELF_URL_PATH','$SELF_URL_PATH');/" \
|
|
||||||
-i $DST_DIR/config.php
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd $DST_DIR && sudo -u app php ./update.php --update-schema=force-yes
|
# this was previously generated
|
||||||
|
rm -f $DST_DIR/config.php.bak
|
||||||
|
|
||||||
|
cd $DST_DIR && sudo -E -u app php ./update.php --update-schema=force-yes
|
||||||
|
|
||||||
touch $DST_DIR/.app_is_ready
|
touch $DST_DIR/.app_is_ready
|
||||||
|
|
||||||
sudo -u app /usr/sbin/php-fpm7 -F
|
sudo -E -u app /usr/sbin/php-fpm7 -F
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
#!/bin/sh -ex
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
# We don't need those here (HTTP_HOST would cause false SELF_URL_PATH check failures)
|
||||||
|
unset HTTP_PORT
|
||||||
|
unset HTTP_HOST
|
||||||
|
|
||||||
# wait for the app container to delete .app_is_ready and perform rsync, etc.
|
# wait for the app container to delete .app_is_ready and perform rsync, etc.
|
||||||
sleep 30
|
sleep 30
|
||||||
|
@ -20,4 +24,4 @@ while [ ! -s $DST_DIR/config.php -a -e $DST_DIR/.app_is_ready ]; do
|
||||||
sleep 3
|
sleep 3
|
||||||
done
|
done
|
||||||
|
|
||||||
sudo -u app /usr/bin/php /var/www/html/tt-rss/update_daemon2.php
|
sudo -E -u app /usr/bin/php /var/www/html/tt-rss/update_daemon2.php
|
||||||
|
|
|
@ -1,17 +1,11 @@
|
||||||
version: '3'
|
version: '3'
|
||||||
|
|
||||||
# set database password in .env
|
|
||||||
# please don't use quote (') or (") symbols in variables
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
db:
|
db:
|
||||||
image: postgres:12-alpine
|
image: postgres:12-alpine
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- db:/var/lib/postgresql/data
|
- db:/var/lib/postgresql/data
|
||||||
environment:
|
|
||||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
||||||
- POSTGRES_USER=${POSTGRES_USER}
|
|
||||||
|
|
||||||
app:
|
app:
|
||||||
image: cthulhoo/ttrss-fpm-pgsql-static:${BUILD_TAG}
|
image: cthulhoo/ttrss-fpm-pgsql-static:${BUILD_TAG}
|
||||||
|
@ -19,95 +13,42 @@ services:
|
||||||
context:
|
context:
|
||||||
./app
|
./app
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
|
||||||
- DB_TYPE=pgsql
|
|
||||||
- DB_HOST=db
|
|
||||||
- DB_NAME=${POSTGRES_USER}
|
|
||||||
- DB_USER=${POSTGRES_USER}
|
|
||||||
- DB_PASS=${POSTGRES_PASSWORD}
|
|
||||||
- OWNER_UID=${OWNER_UID}
|
|
||||||
- OWNER_GID=${OWNER_GID}
|
|
||||||
- SELF_URL_PATH=${SELF_URL_PATH}
|
|
||||||
volumes:
|
volumes:
|
||||||
- app:/var/www/html
|
- app:/var/www/html
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
|
|
||||||
updater:
|
# web:
|
||||||
image: cthulhoo/ttrss-fpm-pgsql-static:${BUILD_TAG}
|
# image: cthulhoo/ttrss-web:latest
|
||||||
build:
|
# build: ./web
|
||||||
context:
|
# restart: unless-stopped
|
||||||
./app
|
# ports:
|
||||||
restart: unless-stopped
|
# - ${HTTP_PORT}:2015
|
||||||
environment:
|
# volumes:
|
||||||
- DB_TYPE=pgsql
|
# - app:/var/www/html:ro
|
||||||
- DB_HOST=db
|
# depends_on:
|
||||||
- DB_NAME=${POSTGRES_USER}
|
# - app
|
||||||
- DB_USER=${POSTGRES_USER}
|
|
||||||
- DB_PASS=${POSTGRES_PASSWORD}
|
|
||||||
- OWNER_UID=${OWNER_UID}
|
|
||||||
- OWNER_GID=${OWNER_GID}
|
|
||||||
- SELF_URL_PATH=${SELF_URL_PATH}
|
|
||||||
volumes:
|
|
||||||
- app:/var/www/html
|
|
||||||
depends_on:
|
|
||||||
- app
|
|
||||||
command: /updater.sh
|
|
||||||
|
|
||||||
backups:
|
# web-ssl:
|
||||||
image: cthulhoo/ttrss-fpm-pgsql-static:${BUILD_TAG}
|
# image: cthulhoo/ttrss-web-ssl:latest
|
||||||
build:
|
# build: ./web-ssl
|
||||||
context:
|
# restart: unless-stopped
|
||||||
./app
|
# environment:
|
||||||
restart: unless-stopped
|
# - CADDYPATH=/certs
|
||||||
environment:
|
# - HTTP_HOST=${HTTP_HOST}
|
||||||
- DB_TYPE=pgsql
|
# ports:
|
||||||
- DB_HOST=db
|
# - 80:80
|
||||||
- DB_NAME=${POSTGRES_USER}
|
# - 443:443
|
||||||
- DB_USER=${POSTGRES_USER}
|
# volumes:
|
||||||
- DB_PASS=${POSTGRES_PASSWORD}
|
# - app:/var/www/html:ro
|
||||||
- OWNER_UID=${OWNER_UID}
|
# - certs:/certs
|
||||||
- OWNER_GID=${OWNER_GID}
|
# depends_on:
|
||||||
volumes:
|
# - app
|
||||||
- backups:/backups
|
|
||||||
- app:/var/www/html
|
|
||||||
depends_on:
|
|
||||||
- db
|
|
||||||
command: /dcron.sh -f
|
|
||||||
|
|
||||||
web:
|
|
||||||
image: cthulhoo/ttrss-web:latest
|
|
||||||
build: ./web
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- ${HTTP_PORT}:2015
|
|
||||||
volumes:
|
|
||||||
- app:/var/www/html:ro
|
|
||||||
depends_on:
|
|
||||||
- app
|
|
||||||
|
|
||||||
web-ssl:
|
|
||||||
image: cthulhoo/ttrss-web-ssl:latest
|
|
||||||
build: ./web-ssl
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
- CADDYPATH=/certs
|
|
||||||
- HTTP_HOST=${HTTP_HOST}
|
|
||||||
ports:
|
|
||||||
- 80:80
|
|
||||||
- 443:443
|
|
||||||
volumes:
|
|
||||||
- app:/var/www/html:ro
|
|
||||||
- certs:/certs
|
|
||||||
depends_on:
|
|
||||||
- app
|
|
||||||
|
|
||||||
web-nginx:
|
web-nginx:
|
||||||
image: cthulhoo/ttrss-web-nginx:latest
|
image: cthulhoo/ttrss-web-nginx:latest
|
||||||
build: ./web-nginx
|
build: ./web-nginx
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
|
||||||
- ${HTTP_PORT}:80
|
|
||||||
volumes:
|
volumes:
|
||||||
- app:/var/www/html:ro
|
- app:/var/www/html:ro
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue