192 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
2e54352051 Docker: Alpine 3.23 (#8285)
https://alpinelinux.org/posts/Alpine-3.23.0-released.html
PHP 8.4.15, Apache/2.4.65
Dev Container updated from PHP 8.3.x to PHP 8.4.x.
2025-12-05 22:20:57 +01:00
Alexandre Alapetite
9c8e9a8b87 Fix Docker for PostgreSQL (#8224)
Better fix instead of https://github.com/FreshRSS/FreshRSS/pull/8216
Based on error message:

Error: in 18+, these Docker images are configured to store database data in a
format which is compatible with "pg_ctlcluster" (specifically, using
major-version-specific directory names).  This better reflects how
PostgreSQL itself works, and how upgrades are to be performed.

See also https://github.com/docker-library/postgres/pull/1259

Counter to that, there appears to be PostgreSQL data in:
 /var/lib/postgresql/data (unused mount/volume)

This is usually the result of upgrading the Docker image without
upgrading the underlying database using "pg_upgrade" (which requires both
versions).

The suggested container configuration for 18+ is to place a single mount
at /var/lib/postgresql which will then place PostgreSQL data in a
subdirectory, allowing usage of "pg_upgrade --link" without mount point
boundary issues.

See https://github.com/docker-library/postgres/issues/37 for a (long)
discussion around this process, and suggestions for how to do so.
2025-11-17 00:27:24 +01:00
FollowTheWizard
39725cdde9 Change PostgreSQL data volume path in Docker Compose (#8216)
adjusted to v18 change in DATA path
db container will not start and freshrss will complain
fix https://github.com/FreshRSS/FreshRSS/issues/8215
2025-11-15 21:48:13 +01:00
Alexandre Alapetite
50eeede063 Docker Compose PostgreSQL 18 (#8111)
Update to version 18.
https://www.postgresql.org/about/news/postgresql-18-released-3142/
Tested to work: Debian, Alpine, PHP 8.2, PHP 8.4.
2025-10-16 21:16:38 +02: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
c8da217e87 Docker healthcheck (#7945)
* Docker healthcheck
fix https://github.com/FreshRSS/FreshRSS/issues/7377

* Use echo for non-CLI error

* curl_close is deprecated

* Connection: close

* Update cli/health.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

---------

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2025-09-11 09:43:28 +02:00
John Marlo Evangelista
70f0d6d24f Fix Docker Traefik .yml and SERVER_DNS (#7858)
* Rename tls.yml to tls.yaml

Rename tls.yaml so it will be align to the entry in docker-compose-proxy.yml:

volumes:
  - ./tls.yaml:/etc/traefik/tls.yaml

To prevent error:
error="error reading configuration file: /etc/traefik/tls.yaml - read /etc/traefik/tls.yaml: is a directory"

* Update example.env

Added option for SERVER_URL

To prevent warning:
WARN[0000] The "SERVER_DNS" variable is not set. Defaulting to a blank string.

* Update example.env

Change SERVER_URL to SERVER_DNS

* Use .yml consistently

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-08-27 21:54:41 +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
8f0d69efb2 Docker Alpine PHP 8.4 (#7803)
Force our Alpine-based Docker image to PHP 8.4 (default is still PHP 8.3).
Related to the fact that we may have to [revert our Debian image to Debian 12 with PHP 8.2 instead of Debian 13 with PHP 8.4](https://github.com/FreshRSS/FreshRSS/pull/7805), so for the next FreshRSS release, we can offer at least one image with PHP 8.4.
2025-08-09 19:14:48 +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
188cc0d063 Docker dev image :newest updated to PHP 8.5 (#7773)
Now that PHP 8.4 is covered by our main Debian image https://github.com/FreshRSS/FreshRSS/pull/7772, let's bump the :newest dev image to PHP 8.5.
Note: OPCache is now included in the core https://wiki.php.net/rfc/make_opcache_required
No other apparent breaking change.
2025-08-01 08:15:36 +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
Tarow
ef3505bac0 Docker: interpolate FRESHRSS_INSTALL and FRESHRSS_USER variables (#7725)
Closes https://github.com/FreshRSS/FreshRSS/issues/7300
Interpolate `FRESHRSS_INSTALL` and `FRESHRSS_USER` at runtime to allow secrets being passed as environment variables
2025-07-09 13:26:43 +02:00
Alexandre Alapetite
430d4e898e Docker: Alpine 3.22 (#7627)
https://alpinelinux.org/posts/Alpine-3.22.0-released.html
PHP 8.3.21, Apache 2.4.63
2025-06-03 00:15:12 +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
6c6695b835 Docker Compose remove deprecated version (#7309)
Minor doc
2025-02-19 11:26:07 +01:00
Alexandre Alapetite
68497030f9 Ligth update Docker Compose (#7249)
I just saw some users getting confused about the build section despite of the comment, so commented out by default
https://github.com/FreshRSS/FreshRSS/discussions/7246#discussioncomment-11908948
2025-01-25 09:13:44 +01:00
Max Bretschneider
539d58b8fc Doc changed default_user to default-user (#7238) 2025-01-25 09:13:03 +01:00
Alexandre Alapetite
c3089734c7 Docker Compose Traefik 3 (#7219)
Use :3 instead of `3.0` to avoid having to update the documentation too often.
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/6401
2025-01-13 19:48:24 +01:00
Christopher Moss
ec69fdcb27 Adds BASE_URL to example .env file (#7151)
* Adds BASE_URL to example .env file

I found without specifying a BASE_URL then the installation command gets confused

 FreshRSS error during installation!
FreshRSS error: invalid input: default-user cannot be empty

The provided example base url may not be desired, but the readme should be updated with 'something' to make first use more user friendly.

* Update Docker/README.md

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2024-12-27 14:13:20 +01:00
Alexandre Alapetite
e025d17a17 Docker: Alpine 3.21 (#7070)
PHP 8.3.14, Apache/2.4.62
https://alpinelinux.org/posts/Alpine-3.21.0-released.html
2024-12-07 12:11:58 +01:00
Alexandre Alapetite
91624037c7 Apache protect more non-public folders and files (#6881)
* Apache protect more non-public folders

* Also protect root

* Do the same for /p/

* Simplify Require all denied
In case of Apache 2.2, it will just make an error 500 instead of 403

* .htaccess.dist

* Simplify

* Better comment
2024-10-11 09:25:43 +02:00
Alexandre Alapetite
ec9f9a43ed PostgreSQL 17 (#6835)
https://www.postgresql.org/about/news/postgresql-17-released-2936/
2024-09-28 16:29:23 +02:00
Alexandre Alapetite
1207236e9c Docker entrypoint optimize find sed (#6827)
Single `find` and single `sed` command instead of 3
2024-09-23 11:13:48 +02: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
a81656c3ed Upgrade to PHP 8.1 (#6711)
* Upgrade to PHP 8.1
As discussed in https://github.com/FreshRSS/FreshRSS/discussions/5474

https://www.php.net/releases/8.0/en.php
https://www.php.net/releases/8.1/en.php

Upgrade to available native type declarations
https://php.net/language.types.declarations

Upgrade to https://phpunit.de/announcements/phpunit-10.html which requires PHP 8.1+ (good timing, as version 9 was not maintained anymore)

Upgrade `:oldest` Docker dev image to oldest Alpine version supporting PHP 8.1: Alpine 3.16, which includes PHP 8.1.22.

* Include 6736
https://github.com/FreshRSS/FreshRSS/pull/6736
2024-09-06 09:06:46 +02:00
Alexandre Alapetite
8ca70040b9 OIDC changelog + minor whitespace
+fix minor whitespace from https://github.com/FreshRSS/FreshRSS/pull/6730
2024-08-26 09:49:11 +02:00
pando85
82593f5968 Fix OIDC session params definition (#6730)
* Fix OIDC session params definition

- standardize environment variable names
- group all in the same configuration file
- use mod_auth_openidc default values
- fix `OIDCSessionMaxDuration` because it was not set with the previous
  code
- add documentation

* Add double quoting to prevent globbing and word splitting

* Revert line deleted by mistake
2024-08-25 19:57:30 +02:00
Alexandre Alapetite
692e30465d Update about running tests (#6709) 2024-08-14 21:54:34 +02:00
нездалисько
b4ceabc248 add OIDCSessionMaxDuration and OIDCSessionInactivityTimeout (#6642)
* add OIDCSessionMaxDuration and OIDCSessionInactivityTimeout

* entrypoint.sh OIDCSessionMaxDuration and Session fix

* fix: entrypoint.sh OIDCSessionMaxDuration and OIDCSessionInactivityTimeout and Alpine support

* Use Apache config file instead

* Spelling

* fixed after restarting the double OIDC lines

* Refactor

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2024-08-14 08:55:29 +02:00
Alexandre Alapetite
365cae8405 Re-enable OPCache for PHP 8.4-alpha2 (#6637)
Support https://www.php.net/index.php#2024-07-18-1
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/6615
Bug https://github.com/php/php-src/issues/14873 was fixed 3d0885f9e5
2024-07-18 22:53:01 +02:00
Alexandre Alapetite
0f395dad43 Initial support for PHP 8.4 (#6615)
* Initial support for PHP 8.4
Sole fix needed so far seems to be related to https://wiki.php.net/rfc/deprecate-implicitly-nullable-types

See also upstream PR https://github.com/PhpGt/CssXPath/pull/227

We are also hitting was seems to be a PHP bug https://github.com/php/php-src/issues/14873

* Fix return type

* Disable OPCache while waiting for PHP fix
2024-07-09 15:57:26 +02:00
Alexandre Alapetite
cdb9d4a5a8 Docker Alpine 3.20 (#6477)
https://alpinelinux.org/posts/Alpine-3.20.0-released.html
Moving from PHP 8.2.19 to PHP 8.3.7, still with Apache/2.4.59
2024-06-05 20:44:57 +02:00
Alexandre Alapetite
ffe68dcb97 Docker: Traefik 3.0 (#6401)
https://github.com/traefik/traefik/releases/tag/v3.0.0
https://doc.traefik.io/traefik/v3.0/migration/v2-to-v3/
2024-05-01 14:01:58 +02:00
Alexandre Alapetite
329fd4bcf6 CLI database backup and restore (#6387)
* CLI database backup and restore
Can also be used to migrate from one database to another (e.g. MySQL to PostgreSQL) or to ease upgrade to a major PostgreSQL version (e.g. 15 to 16).

* +x

* Fix some cases

* Update to docker-compose-v2

* More documentation
2024-04-30 08:31:13 +02:00
Alexandre Alapetite
b5445e1e56 Fix CLI install regressions (#6214)
* Fix CLI install with prefix
It was not possible to pass a blank prefix

* Fix regression EXIT_CODE_ALREADY_EXISTS
The dedicated exit code was not sent anymore when a user already exists
2024-03-19 13:42:12 +01:00
Alexandre Alapetite
53d40ea3bb Traefik 2.11 in docker-compose example (#6098)
https://github.com/traefik/traefik/releases/tag/v2.11.0
2024-02-17 14:44:57 +01: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
Alexandre Alapetite
f7c160b9af Alpine 3.19 (#5933)
https://alpinelinux.org/posts/Alpine-3.19.0-released.html
Apache/2.4.58, PHP 8.2.13
2023-12-10 12:41:49 +01:00
Alexandre Alapetite
bc9ef0d188 Improve filtering of Cron env variables (#5898)
Avoid keeping environment variables used for init.
Improvement of https://github.com/FreshRSS/FreshRSS/pull/5795
Spotted when checking https://github.com/FreshRSS/FreshRSS/issues/5894
2023-11-21 16:33:19 +01:00
Alexandre Alapetite
b65ea97901 Fix PHP 7 compatibility strict_types (#5893)
* Fix PHP 7 compatibility
https://github.com/FreshRSS/FreshRSS/discussions/5892

* Multiple PHP 7 fixes

* PHPStan
2023-11-18 23:21:20 +01:00
Alexandre Alapetite
e6b0f8c3e3 Document Traefik PathPrefix (#5845) 2023-11-10 08:35:31 +01:00
Alexandre Alapetite
44a7c54a5a Update WebSub documentation a bit (#5829)
* Update WebSub documentation a bit

* Marien prefers not to promote his hub too much :-)
2023-11-08 20:24:24 +01:00
Alexandre Alapetite
711e2153d1 Fix FreshRSS logo link on Docker Hub
The link resolution does not seem to be supported automatically
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/5819
2023-11-05 23:36:13 +01:00
Alexandre Alapetite
d4f659f915 Try automatic update of Docker description
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/5819
2023-11-05 23:33:20 +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
72aaea8636 Fix Docker CRON_MIN for env with special characters (#5795)
fix https://github.com/FreshRSS/FreshRSS/issues/5792
regression from https://github.com/FreshRSS/FreshRSS/pull/5772
2023-10-31 23:36:23 +01:00
Alexandre Alapetite
06d0099504 Require PHP 7.4+ (#5720)
* Require PHP 7.4+
https://github.com/FreshRSS/FreshRSS/discussions/5474

* Update Docker oldest
Alpine 3.13 with PHP 7.4.26

* Add missing packets to Docker oldest

* Update to typed properties
https://php.net/migration74.new-features#migration74.new-features.core.typed-properties

* More types
2023-10-30 20:47:27 +01:00