56 Commits

Author SHA1 Message Date
Alexandre Alapetite
b66d4ade41 Improve Docker + compatibility Arch (#8299)
* Better comments in our Docker images
* Make `cli/access-permissions.sh` compatible with other Apache groups such as `http` for Linux Arch
* Better `/Docker/entrypoint.sh` supporting various Apache configuration paths (and slightly faster).
* Add test image for Linux Arch (not sure we will keep it)

See
* https://github.com/FreshRSS/FreshRSS/pull/8279#issuecomment-3620674818
2025-12-12 22:07:19 +01:00
Alexandre Alapetite
128c375fc9 Debian 13 with OIDC fix (#8032)
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/7772
fix https://github.com/FreshRSS/FreshRSS/issues/7860
fix https://github.com/FreshRSS/FreshRSS/issues/7798
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/7805

PHP 8.4.11, Apache 2.4.65
* https://wiki.debian.org/DebianTrixie
* https://www.debian.org/releases/testing/release-notes/whats-new.en.html
* https://downloads.apache.org/httpd/CHANGES_2.4

And thanks to @CrazyWolf13 for [the debugging](https://github.com/OpenIDC/mod_auth_openidc/discussions/1349#discussioncomment-14542930)!

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-10-02 21:15:51 +02:00
Alexandre Alapetite
6c64e7b07b Docker CMD compatibility (#7861)
Some caller systems do not seem escape the CMD quotes correctly.
fix https://github.com/FreshRSS/FreshRSS/issues/7859#issuecomment-3225691432
fix https://github.com/FreshRSS/FreshRSS/discussions/5611
fix https://github.com/FreshRSS/FreshRSS/discussions/7267
2025-08-27 14:34:24 +02:00
Alexandre Alapetite
5c7ea3c7e5 Docker revert to Debian 12 Bookworm (#7805)
Fix https://github.com/FreshRSS/FreshRSS/issues/7798
Revert https://github.com/FreshRSS/FreshRSS/pull/7772
Revert af6f7f013a
2025-08-09 19:13:38 +02:00
Carey Metcalfe
bb659ee27a Optimize how much data needs to be chown/chmoded on container startup (#7793)
* Optimize how much data needs to be `chown`/`chmod`ed on container startup

This works around an issue where `chmod`/`chown` operations inside a
container can be extremely slow when using the `overlay2` storage
driver, resulting in 10min+ container startup times.

It modifies the owner of the webapp when building the container so that
only the `data` and `extensions` directories (which are commonly mapped
as volumes into the container) have to be modified by the
`access-permissions.sh` script at container startup.

When not running via docker the behaviour of the `access-permissions.sh`
script is unchanged.

* Take DATA_PATH environment variable into account when fixing permissions

* Revert change to using bash for arrays

(the alpine image doesn't include `bash`)

* A few more improvements

* Slightly tweak reapply permissions variable

- lowercase to indicate it's not an env variable
- use 0/1 to address potentially-irrational paranoia about unset variables

* Remove conditional logic to skip reapplying permissions

Also documents why in a comment so it's not missed in the future.

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-08-08 13:36:57 +02:00
Alexandre Alapetite
af6f7f013a Docker: Debian 13 RC with PHP 8.4 (#7772)
Help final testing of Debian 13 Trixie before the release (9 August)
https://lists.debian.org/debian-devel-announce/2025/07/msg00003.html
PHP 8.4.10, Apache 2.4.64
I will make another PR after the release to update to `debian:13-slim` when it gets available.
2025-08-01 07:53:40 +02:00
Dezponia
df545b513b Add check for Apache mod_filter to ensure "AddOutputFilterByType" works. (#7419)
* Update .htaccess

Add check for Apache mod_filter to ensure "AddOutputFilterByType" works.

* Explicit enabling mod_filter in our Docker images

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-03-13 22:40:26 +01:00
Alexandre Alapetite
e165cf6b43 Docker LegacyKeyValueFormat (#6819)
* Docker LegacyKeyValueFormat
https://docs.docker.com/reference/build-checks/legacy-key-value-format/

* Also for devcontainer
2024-09-21 09:54:01 +02:00
Alexandre Alapetite
a3ebfe76ea Docker Debian disable unused PHP modules (#5994)
https://github.com/FreshRSS/FreshRSS/issues/5993
2023-12-30 23:42:57 +01:00
Benjamin Reich
8f07199777 add multi arch docker build (#5808)
* Add multi arch container build

Co-authored-by: EdJoPaTo <rfc-conform-git-commit-email@funny-long-domain-label-everyone-hates-as-it-is-too-long.edjopato.de>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* using label from github action

* dont remove static labels and split docker readme in seperate action

* pin 3rd party action to a commit

* enable pushing to dockerhub

* Update .github/workflows/build-images.yml

Co-authored-by: EdJoPaTo <github@edjopato.de>

* remove not needed checkout

* set github token permissions

* Update .github/workflows/push-dockerhub-readme.yml

* update docker readme to match new tags

* Apply suggestions from code review

* fix suffix for alpine image

* fix suffix for alpine image

* push images only at upstream repo

* push images only at upstream repo

* push images only at upstream repo

* tag latest-alpine as alpine

* tag latest-alpine as alpine

* remove no needed falvor

* keep falvor for build

* Clean more things

* Rename action
To use same default name than https://github.com/actions/starter-workflows/blob/main/ci/docker-publish.yml

* Rename readme action
To use same default name than https://github.com/peter-evans/dockerhub-description/blob/main/.github/workflows/dockerhub-description.yml

* Use default name for dockerhub-description
https://github.com/peter-evans/dockerhub-description/blob/main/.github/workflows/dockerhub-description.yml
Plus minor wording

* Experiment with build-args

* Debug

* Add checkout back

* Revert back to metadata-action

* Remove quotes in version

* Try to fix variables

* Experiment with automatic label values again

* Delete last Docker Hub hooks

* Use only git SHA for org.opencontainers.image.revision
https://specs.opencontainers.org/image-spec/annotations/#pre-defined-annotation-keys

* Comment out semver for now
Might be enabled later if desired

* Enable major semver

---------

Co-authored-by: EdJoPaTo <rfc-conform-git-commit-email@funny-long-domain-label-everyone-hates-as-it-is-too-long.edjopato.de>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: EdJoPaTo <github@edjopato.de>
2023-11-05 22:46:01 +01:00
Alexandre Alapetite
e7689459f2 Rework trusted proxies (#5549)
* Rework trusted proxies
Fix https://github.com/FreshRSS/FreshRSS/issues/5502
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/3226

New environment variable `TRUSTED_PROXY`: set to 0 to disable, or to a list of trusted IP ranges compatible with https://httpd.apache.org/docs/current/mod/mod_remoteip.html#remoteiptrustedproxy

New internal environment variable `CONN_REMOTE_ADDR` to remember the true IP address of the connection (e.g. last proxy), even when using mod_remoteip.

Current working setups should not observe any significant change.

* Minor whitespace

* Safer trusted sources during install
Rework of https://github.com/FreshRSS/FreshRSS/pull/5358
https://github.com/FreshRSS/FreshRSS/issues/5357

* Minor readme
2023-07-30 12:59:18 +02:00
Alexandre Alapetite
644427b9b1 Docker quiet Apache a2enmod (#5464)
Quiet output for a2enmod, a2dismod, a2disconf, a2dissite, a2ensite to avoid many messages the following, which are not even relevant because Apache is not yet started at this stage:

```
To activate the new configuration, you need to run:
  systemctl restart apache2
```

Related to https://github.com/FreshRSS/FreshRSS/pull/5463
2023-06-14 15:18:26 +02:00
Alexandre Alapetite
dd5a021061 Docker: Debian 12 (#5461)
https://www.debian.org/releases/bookworm/
With PHP 8.2.5 and Apache 2.4.57
2023-06-14 15:18:03 +02:00
Alexandre Alapetite
ae8dfc1b1b Fix OpenID Connect crash on ARM (#5463)
Only enable the Apache auth_openidc module when actually used
Fix https://github.com/FreshRSS/FreshRSS/issues/5460
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/5351
2023-06-13 16:28:51 +02:00
Aaron Schif
58b254f9cb Add OpenID Connect (#5351)
* Add OIDC

* Update documentation.

* Update apache conf adding IfModule

* Use IfDefine for OIDC in apache conf

* Fix non-oidc support

* Fix typing

* Use IfDefine to enable OIDC

* Add OIDC support to all dockerfiles

* Re add apache Require option

* Fixes and documentation

* A few more fixes

* A bit more doc

* Change type of environment variable

* Update readme

* Correct apache config for OIDC support.

* Fix README formatting

* Update oidc control path

* Fix oidc endpoint being cached

* A bit more review

* Simplify ExpiresActive

* Add session refresh and improve caching

* Allow more different setups

* A bit more documentation

* A bit more readme

---------

Co-authored-by: Aaron Schif <aschif@netdevgroup.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: maTh <math-home@web.de>
2023-06-12 10:22:46 +02:00
Alexandre Alapetite
0292b2f1f3 Improve Dev Container (#5423)
* Improve Dev Container
PHPStan was failing in Dev Container

* Update Docker to Alpine Linux 3.18
* New DATA_PATH environment variable

* README
2023-05-28 18:03:34 +02:00
Alexandre Alapetite
543fa4e76c Docker uniform timezone behaviour (#4905)
* Docker Alpine timezone for :newest and :oldest
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/4903
Forgot the development images Newest and Oldest

* Uniform timezone behaviour

* shellcheck

* A bit more documentation
2022-11-30 20:45:40 +01:00
Alexandre Alapetite
81b00bd8aa Docker: Move logic to disable FreshRSS updates (#3973)
Should be done during build and not during entrypoint, to avoid modifying a potential volume (e.g. mounting the source code as a volume is used during development).
2021-11-14 23:25:27 +01:00
Alexandre Alapetite
d924fc5fbb Fix cron regression (#3933)
#fix https://github.com/FreshRSS/FreshRSS/pull/3927/files#r735146297
The path `/var/www/FreshRSS/` might be a Docker volume, breaking files created there during Docker build
2021-10-24 19:39:35 +02:00
Chris Francy
07e00c7681 Docker: don't add crontab unless needed. (#3927)
Adding the crontab as part of the image build makes it more complicated
to add custom entries to the crontab. Adjusting the image and entrypoint
to make it so that the crontab is only added when CRON_MIN is set
simplifies having a custom crontab.
2021-10-24 17:25:03 +02:00
Alexandre Alapetite
6004de845f Docker with Debian 11 (#3782)
PHP 7.4.21, Apache/2.4.48
2021-08-19 16:38:55 +02:00
Alexandre Alapetite
69060cda33 Docker: Environment variable to change Apache port (#3343)
#fix https://github.com/FreshRSS/FreshRSS/issues/3341

New environment variable `LISTEN='0.0.0.0:8080'`

```
docker run -d --network host --uts host -e LISTEN='0.0.0.0:8080' -e
TZ=Europe/Paris --name freshrss   freshrss/freshrss
```
2021-01-07 23:32:39 +01:00
Alexandre Alapetite
9ab05c7f67 Docker: Use Apache remoteip (#3226)
#fix https://github.com/FreshRSS/FreshRSS/issues/3224
Log the client remote IP instead of the local proxy IP
https://httpd.apache.org/docs/2.4/mod/mod_remoteip.html
2020-10-16 09:25:43 +02:00
Jucgshu
5eef40162c Remove Docker heathchecks (#3161)
* Update Dockerfile

Remove heathcheck

* Update Dockerfile-Alpine

Remove heathcheck

* Update Dockerfile-QEMU-ARM

Remove heathcheck
2020-08-30 10:10:49 +02:00
Alexandre Alapetite
b6b6a6de1d Docker use Debian instead of Ubuntu (#3159)
#fix https://github.com/FreshRSS/FreshRSS/issues/3026
Ubuntu 19.10 has expired.
I still cannot get Ubuntu 20.04 to work on ARM (Raspberry Pi) https://github.com/FreshRSS/FreshRSS/pull/2943
Move to Debian 10 Buster instead of our current Ubuntu 19.10 (which was based on Debian 10 Buster).
2020-08-29 15:54:58 +02:00
Alexandre Alapetite
af575e061d Revert to Ubuntu 19.10 (#2943)
* Revert to Ubuntu 19.10

#Fix https://github.com/FreshRSS/FreshRSS/issues/2939
Revert https://github.com/FreshRSS/FreshRSS/pull/2925

Will upgrade back to 20.04 when Ubuntu bugs are fixed, e.g.
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1867675

* Revert changelog
2020-05-02 18:24:13 +02:00
Alexandre Alapetite
0f7970b4c0 Docker: Ubuntu 20.04 (#2925)
https://ubuntu.com/blog/ubuntu-20-04-lts-arrives
PHP 7.4.3, Apache 2.4.41
https://php.net/migration74
We have already addressed PHP 7.4 issues in FreshRSS 1.16
2020-04-25 12:27:25 +02:00
Alexandre Alapetite
3c49986ec8 New environment variable COPY_LOG_TO_SYSLOG (#2591)
* New environment variable COPY_LOG_TO_SYSLOG

False by default.
Makes it easy to monitor all logs from Syslog or STDERR (e.g. docker
logs).

* Suggestion of native constants
2019-10-26 11:19:42 +02:00
Alexandre Alapetite
bc820a151a Docker update to Ubuntu 19.10 (#2577)
Released today with PHP 7.3.8, Apache 2.4.41
http://releases.ubuntu.com/eoan/
2019-10-19 02:39:18 +02:00
Alexandre Alapetite
6cedeeeae5 Minz: New environment variable to control development mode (#2508)
* New environment variable to control development mode

Suggestion of new enviromnent variable, as discussed
https://github.com/FreshRSS/FreshRSS/pull/2492#issuecomment-523613920

* Update Docker/README.md

Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com>

* Update Docker/README.md

Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com>

* Update Docker/README.md

Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com>

* Declare ENV in Dockerfile

Tested
2019-08-22 20:04:26 +02:00
Sandro Jäckel
4e0acf5296 Ignore JSON notation 2019-07-23 08:49:41 +02:00
Sandro Jäckel
71270e4d5c Replace curl healthcheck with pure php, apply haodlint suggestions (#2455)
Closes #2453
2019-07-22 15:26:55 +02:00
Alexandre Alapetite
0a297addc0 Add php-gmp for API in Ubuntu 32-bit (#2450)
And adjust slightly the HEALTHCHECK parameters for faster start in
Træfik
2019-07-21 12:49:29 +02:00
Alexandre Alapetite
8c2cf1b4dd Docker healthcheck+ labels (#2438)
* Add Docker labels

And try to fix the platform metadata for ARM, and add health check

* Execution rights

* Remove experimental features not supported by Docker Hub

"--squash" is only supported on a Docker daemon with experimental
features enabled. build hook failed! (1)

* Fix paths
2019-07-07 20:07:01 +02:00
Sandro Jäckel
bc79359748 Don't delete lists directory, small nitpick (#2435) 2019-07-04 20:46:25 +02:00
Alexandre Alapetite
e2cf756d2f Update Docker to Ubuntu 19.04 2019-06-21 18:44:20 +02:00
Alexandre Alapetite
4599d171df Docker fix cron logs (#2329)
Fix environment variable bug
2019-04-02 21:47:57 +02:00
Alexandre Alapetite
32dd2e3c33 Docker better use of crontab (#2326)
Misc. from https://github.com/FreshRSS/FreshRSS/pull/2325
https://github.com/FreshRSS/FreshRSS/issues/2319
2019-04-02 14:21:34 +02:00
Alexandre Alapetite
c48e28baf6 Fix Docker cron mistake (#2325)
https://github.com/FreshRSS/FreshRSS/issues/2319
2019-04-02 13:27:41 +02:00
Alexandre Alapetite
d67465a438 Fix Docker Ubuntu cron (#2321)
https://github.com/FreshRSS/FreshRSS/issues/2319
2019-04-01 23:52:41 +02:00
Alexandre Alapetite
707388c093 Docker ca-certificates missing (#2285) 2019-03-19 21:51:16 +01:00
Alexandre Alapetite
60b7f5e6d9 Docker Ubuntu notes (#2259)
https://github.com/FreshRSS/FreshRSS/pull/2205
(And removed proxy_fcgi forgotten from php-fpm)
2019-03-02 22:53:04 +01:00
Alexandre Alapetite
fc8fb0a7ee Docker image alternative using Ubuntu (#2205)
* Docker image alternative using Ubuntu

Ubuntu seems to be faster, cf. e.g. PHPBench.
It is quite usual for Docker images to offer both a Debian/Ubuntu and an
Alpine version, so we could also do the same if there is any need.
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/2202

* Only explicit use of Apache confs

Fix double-logging issue

* Explicit ServerTokens OS

Default Apache configuration in Ubuntu, which was removed when disabling all confs.
It is also the default Apache configuration in Alpine.

* Take advantage of syslog for actualization

Same than for Alpine
43ab629e27

* COPY_SYSLOG_TO_STDERR

Same as https://github.com/FreshRSS/FreshRSS/pull/2213

* Update to libapache2-mod-php instead of php-fpm

* Default to Ubuntu

Ubuntu mod-php wins, being ~14% faster than Ubuntu php-fpm (which was ~300% faster than Alpine mod-php)
2019-03-02 21:49:20 +01:00
Alexandre Alapetite
5bd3d92b9f Alpine 3.9
PHP 7.2.14, Apache 2.4.38
https://alpinelinux.org/posts/Alpine-3.9.0-released.html
2019-02-03 12:30:34 +01:00
Alexandre Alapetite
4355849ec3 Docker Alpine PHP timezone (#2218)
https://github.com/FreshRSS/FreshRSS/issues/2153
2019-01-16 22:19:40 +01:00
Alexandre Alapetite
b73d4c807f COPY_SYSLOG_TO_STDERR (#2213)
Update of https://github.com/FreshRSS/FreshRSS/pull/2208
Fixes https://github.com/FreshRSS/FreshRSS/issues/2212
2019-01-08 00:06:01 +01:00
Alexandre Alapetite
15d74d9347 Changelog + Revert mistakes from 2202 and 2204 (#2210)
* GMP is needed because Alpine on e.g. ARM runs 32-bit
https://github.com/FreshRSS/FreshRSS/pull/2202
* Remove documentation for Træfik HTTP authentication as it is not
compatible with API
https://github.com/FreshRSS/FreshRSS/pull/2204

https://github.com/FreshRSS/FreshRSS/pull/2208
https://github.com/FreshRSS/FreshRSS/pull/2207
2019-01-06 12:07:51 +01:00
Alexandre Alapetite
802c264574 Copy syslog to STDERR (#2208)
* Use openlog before syslog
In order to have a copy on stderr when syslog is not available.

* Take advantage of syslog for actualization
Pipe cron job STDERR and syslog to Docker log
Cf. 00bd467655
2019-01-06 00:46:48 +01:00
Alexandre Alapetite
a6623b7b2f Apache performance (#2202)
* Apache performance
API: Use SetEnvIf if available and fallback to RewriteRule
Docker: Disable unused modules.
Docker: Hard-include .htaccess to avoid having to scan for changes in
that file.
Docker: Disable security check of symlinks, which we do not use ayway.

* Apache readme

* Docker/Apache tuning
Run cron job with correct www-data user instead of root
Remove PHP GMP module uneeded for 64-bit Docker image
Add option to mount custom .htaccess for HTTP authentication
Re-add Apache module for HTTP authentication
Move Alpine-specific instructions to Docker file (instead of Apache
conf) to make it easier to have other base images than Alpine
2019-01-02 21:36:33 +01:00
Alexandre Alapetite
e0bc6a2855 Docker from Alpine 3.8 (#1956)
PHP 7.2 http://php.net/manual/migration72.incompatible.php
TODO: create_function() is deprecated (used by lib_phpQuery.php)
2018-07-07 13:45:38 +02:00