Commit Graph

23 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
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
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
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
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
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
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
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
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
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
570503b7f1 Require PHP 7.2+ (#4848)
Drop PHP 7.0- as planned https://github.com/FreshRSS/FreshRSS/discussions/3321#discussioncomment-835704
2022-11-14 15:02:44 +01:00
Alexandre Alapetite
a90d93979f Docker Alpine updates (#4420)
* Added PHP extensions `php-openssl`  (used by PHPMailer) and php-xml (used by SimplePie)
* Upgraded dev image `freshrss/freshrss:newest` to PHP 8.2.
2022-06-19 20:09:09 +02:00
Alexandre Alapetite
a6ea90e58b Docker :newest Alpine PHP 8.1 (#4121)
* Docker :newest Alpine PHP 8.1
Update our `:newest` development image to use PHP 8.1 in alpine:edge

* Increase memory for tests
2022-01-04 22:33:31 +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
483b6eb333 Drop PHP5 and IE11 (#3666)
* Drop PHP5 and IE11
https://github.com/FreshRSS/FreshRSS/discussions/3321
Our Docker :oldest is now based on Alpine 3.5 (2016-12-22)

* More uniform

* More changelog
2021-06-07 17:53:47 +02:00
Alexandre Alapetite
0d69175875 Alpine oldest: php5-openssl (#3482)
alpine:3.13 require php5-openssl for some https features.

Otherwise, fail on e.g. the extension page:

```
file_get_contents(): php Unable to find the wrapper "https" - did you
forget to enable it when you configured PHP? in
/var/www/FreshRSS/app/Controllers/extensionController.php on line 45

PHP Warning:
file_get_contents(https://raw.githubusercontent.com/FreshRSS/Extensions/master/extensions.json):
failed to open stream: No such file or directory in
/var/www/FreshRSS/app/Controllers/extensionController.php on line 45

[error] --- Could not fetch available extension from GitHub
```

Does not seem required for newer Alpine versions using PHP7 / PHP8
2021-02-27 11:22:06 +01: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
da4121cb6c Docker image for oldest supported PHP version (#3274)
Add a Docker file, which can be used to test FreshRSS with our oldest
supported PHP version.

See
https://pkgs.alpinelinux.org/packages?name=php5&branch=v3.4&arch=x86_64

PHP 5.6.36-r0
2020-12-12 15:59:06 +01:00