Commit Graph

176 Commits

Author SHA1 Message Date
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
Alexandre Alapetite
de51f6e7a0 Export all environment variables to cron (#5772)
fix https://github.com/FreshRSS/FreshRSS/issues/5770
Note, the syntax complying with https://www.shellcheck.net/wiki/SC2002 does not seem to work in ash / Alpine
2023-10-29 22:18:06 +01:00
Alexandre Alapetite
51a95afdbb Prepare Alpine OIDC (#5764)
* Prepare Alpine OIDC
* Prepare syntax for OpenID Connect in Alpine.
* Update :newest Alpine development image to PHP 8.3
* Fix a little bug in test of OIDC_SCOPES

* Changelog + syntax

* shellchecks
2023-10-28 13:40:22 +02:00
Alexandre Alapetite
ce6ba583be OIDC_SCOPES compatibility colon (#5753)
fix https://github.com/FreshRSS/FreshRSS/issues/5744
2023-10-27 15:26:39 +02:00
Mossroy
5374df384a Use RemoteIPInternalProxy directive of remoteip Apache module (#5740)
* Use RemoteIPInternalProxy directive of remoteip Apache module

instead of RemoteIPTrustedProxy directive

To allow internal IPs to be trusted: for internal clients,
and also for the case of chained internal reverse-proxies

Fixes #5726

* One last reference forgotten

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-10-25 16:23:03 +02:00
Mossroy
280a1e1155 Avoid a warning on non-numeric TRUSTED_PROXY en var (#5733)
* Update entrypoint.sh to avoid a warning on non-numeric TRUSTED_PROXY env var

Fixes #5732 5732

* Use POSIX-compatible syntax

* Fix POSIX syntax
2023-10-25 15:57:27 +02:00
Alexandre Alapetite
86d713478b docker-compose PostgreSQL 16 (#5661)
https://www.postgresql.org/about/news/postgresql-16-released-2715/
Watch out, there are no auto-updates between major versions
2023-09-24 00:39:50 +02:00
Alexandre Alapetite
24be95756f Docker MySQL update doc (#5639)
Remove obsolete parameter not needed anymore now that all our images are using PHP 8+
2023-09-09 11:15:09 +02: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
Zhaofeng Li
c35a9ee061 Docker: Add DATA_PATH to cron env (#5531) 2023-07-19 23:36:13 +02:00
otaconix
a066be93b0 Add OIDC_X_FORWARDED_HEADERS environment variable (fixes #5516) (#5523)
* Add OIDC_X_FORWARDED_HEADERS environment variable (fixes #5516)

The mod_auth_oidc needs an additional directive (`OIDCXForwardedHeaders`)
in case FreshRSS is running behind a reverse proxy, so it knows what host,
protocol and port were used to access it. This information is then used
in the `redirect_uri` when directing the user agent (browser) to the identity
provider for authentication.

Please note that, if you are running FreshRSS behind a reverse proxy that
handles TLS, you may need to update your identity provider's configuration so
it accepts `https://...` as a `redirect_uri`.

* Add link to mod_auth_openidc's documentation for the OIDCXForwardedHeaders Apache configuration directive

* Minor spelling

---------

Co-authored-by: Stefan Zwanenburg <stefan@zwanenburg.info>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-07-16 14:50:42 +02:00
otaconix
fc579bd2bc Allow choosing the OIDC remote user claim and scopes to request from the identity provider (#5481)
* Allow choosing the OIDC remote user claim and scopes to request from the identity provider

* Added comment to explain how checking whether an environment variable is set is done

* Use apostrophe's instead of single quotes for verb contractions in docs

* Move variables used for checking presence of environment variables inside IfDefine block
2023-06-30 12:58:20 +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
a495e995bc Docker example of PostgreSQL tuning (#5446)
Provide example of how to easily tune selected PostgreSQL settings
https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
2023-06-09 08:26:34 +02:00