FreshRSS
https://github.com/FreshRSS/FreshRSS/tree/edge/Docker
Deploy FreshRSS with Docker
FreshRSS is a self-hosted RSS feed aggregator.
- Official website:
freshrss.org
- Official Docker images:
hub.docker.com/r/freshrss/freshrss
- Repository:
github.com/FreshRSS/FreshRSS
- Documentation:
freshrss.github.io/FreshRSS
- License: GNU AGPL 3
Install Docker
See https://docs.docker.com/get-docker/
Example for Linux Debian / Ubuntu:
# Install default Docker Compose and automatically the corresponding version of Docker apt install docker-compose-v2
Quick run
Example running FreshRSS (or scroll down to the Docker Compose section instead):
docker run -d --restart unless-stopped --log-opt max-size=10m \ -p 8080:80 \ -e TZ=Europe/Paris \ -e 'CRON_MIN=1,31' \ -v freshrss_data:/var/www/FreshRSS/data \ -v freshrss_extensions:/var/www/FreshRSS/extensions \ --name freshrss \ freshrss/freshrss
- Exposing on port 8080
- With a server timezone (default is
UTC
) - With an automatic cron job to refresh feeds
- Saving FreshRSS data in a Docker volume
freshrss_data
and optional extensions infreshrss_extensions
- Using the default image, which is the latest stable release
Complete installation
Browse to your server https://freshrss.example.net/ to complete the installation via the FreshRSS Web interface, or use the command line described below.
Command line
See the CLI documentation for all the commands, which can be applied like:
docker exec --user www-data freshrss cli/list-users.php
Example of installation via command line:
docker exec --user www-data freshrss cli/do-install.php --default_user freshrss docker exec --user www-data freshrss cli/create-user.php --user freshrss --password freshrss
ℹ️ You have to replace
--user www-data
by--user apache
when using our images based on Linux Alpine.
Our Docker image variants
:latest
(default) is the latest stable release:edge
is the rolling release, same than our gitedge
branch:x.y.z
tags correspond to specific FreshRSS releases, allowing you to target a precise version for deployment:x
tags track the latest release within a major version series. For instance,:1
will update to include any1.x
releases, but will exclude versions beyond2.x
*-alpine
use Linux Alpine as base-image instead of Debian- Our Docker images are designed with multi-architecture support, accommodating a variety of Linux platforms including
linux/arm/v7
,linux/arm64
, andlinux/amd64
.- For other platforms, see the custom build section
Linux: Debian vs. Alpine
Our default image is based on Debian. We offer an alternative based on Alpine (with the *-alpine
tag suffix). In our tests (2019), Alpine was slower, while Alpine is smaller on disk (and much faster to build), and with newer packages in general (Apache, PHP).
ℹ️ For some rare systems, one variant might work but not the other, for instance due to kernel incompatibilities.
Environment variables
TZ
: (default isUTC
) A server timezoneCRON_MIN
: (default is disabled) Define minutes for the built-in cron job to automatically refresh feeds (see below for more advanced options)DATA_PATH
: (default is empty, defined by./constants.local.php
or./constants.php
) Defines the path for writeable data.FRESHRSS_ENV
: (default isproduction
) Enables additional development information if set todevelopment
(increases the level of logging and ensures that errors are displayed) (see below for more development options)COPY_LOG_TO_SYSLOG
: (default isOn
) Copy all the logs to syslogCOPY_SYSLOG_TO_STDERR
: (default isOn
) Copy syslog to Standard Error so that it is visible in docker logsLISTEN
: (default is80
) Modifies the internal Apache listening address and port, e.g.0.0.0.0:8080
(for advanced users; useful for Docker host networking)FRESHRSS_INSTALL
: automatically pass arguments to command linecli/do-install.php
(for advanced users; see example in Docker Compose section). Only executed at the very first run (so far), so if you make any change, you need to delete yourfreshrss
service,freshrss_data
volume, before running again.FRESHRSS_USER
: automatically pass arguments to command linecli/create-user.php
(for advanced users; see example in Docker Compose section). Only executed at the very first run (so far), so if you make any change, you need to delete yourfreshrss
service,freshrss_data
volume, before running again.
How to update
# Rebuild an image (see build section below) or get a new online version: docker pull freshrss/freshrss # And then docker stop freshrss docker rename freshrss freshrss_old # See the run section above for the full command docker run ... --name freshrss freshrss/freshrss # If everything is working, delete the old container docker rm freshrss_old
No Comments