Commit Graph
207 Commits
Author SHA1 Message Date
Inverle b8b657488d Fix some broken links from CI scans (#9495)
* Fix some broken links from CI scans

Follow-up of https://github.com/FreshRSS/FreshRSS/pull/9209 and https://github.com/FreshRSS/FreshRSS/pull/9207.

See: https://github.com/FreshRSS/FreshRSS/pull/9209#issuecomment-6383267668

* Apply some selected redirects

* Escape . properly
2026-10-24 22:55:59 +02:00
spa77k bf0bedae1c Docker: Explain how to update with volumes and Compose (#9480)
Closes #4942

- Explain in *How to update* that data and extensions stay in the Docker volumes, so updating only means running a newer image with the same volumes, and recommend a back-up first.
- Add the Docker Compose variant (`pull` then `up` with the same `-f` files).
- Warn to keep the same major version of the PostgreSQL image when updating FreshRSS (a new major version refuses to start with older data), pointing to *Migrate database*, and to check `.env` variable names when replacing Compose files with newer copies.
2026-10-22 22:18:30 +02:00
Nat Welch 2258f411d3 Docker: disable session.upload_progress
Disable this unused option for improved security, as recommended by PHP documentation
https://www.php.net/session.upload-progress
https://www.php.net/session.configuration#ini.session.upload-progress.enabled
2026-10-21 22:27:32 +02:00
Yuchen Shi 818b57a9a9 Update documentation of TRUSTED_PROXY syntax and document limitations. (#9283)
* Update documentation of TRUSTED_PROXY syntax and document limitations.

Single IPs are now supported as of #9301.
Document the existing limitation of domain names, see #9210.

For IPs without `/`, I manually tested the behavior and found requests got rejected on my server before #9301. After #9301 is merged, I've tested again and found that requests are now authorized as expected. So I've updated the corresponding documentation to say "_IPs or_ ranges" where applicable.

Domain names are still silently ignored as of writing. I looked at the code, as described in #9210 investigation steps, and concluded that they are WAI (working as _implemented_ , not sure if _intended_ ). I don't particularly like the existing behavior (failures with no debuggable warnings or logs) but I try to document it as-is without judgement.

* Update TRUSTED_PROXY comments accordingly for Docker usage.

Single IPs are now supported as of #9301.
Document the existing limitation of domain names, see #9210.
2026-09-28 08:53:12 +02:00
Alexandre AlapetiteandInverle cea88ace69 Reword explanations for edge/latest channels (#9270)
* Reword explanations for edge/latest channels
Highlight the fact that we do not backport bug fixes or security fixes to previous releases.
Simplify also a slightly obsolte MySQL doc to favour SQLite

* Merge i18n: az

* Update Polish translations to specify rolling/versioned releases

Co-authored-by: Inverle <inverle@proton.me>

* Update 05_Release_new_version.md

---------

Co-authored-by: Inverle <inverle@proton.me>
2026-09-08 23:25:18 +02:00
InverleandAlexandre Alapetite a84c0a8bc2 Fix all broken links in the entire repository (#9207)
* Fix all broken links in the entire repository

* Update docs/CHANGELOG-old2.md

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update config.default.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update README.md

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update docs/i18n/freshrss.fr.po

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update docs/i18n/templates/freshrss.pot

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update README.md

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update docs/fr/users/01_Installation.md

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update docs/fr/users/01_Installation.md

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update docs/en/internationalization.md

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Manual fixes, preferences
* Prefer canonical when known, prefer shorter, prefer roots, prefer URLs with content negotation (e.g. language preference)
* Keep 302, 307 unchanged
* Use only `.example`, `example.net` or similarly reserved domains for URL examples

* Fix language negotiation for developer.mozilla.org

* Restore a Stackoverflow 302

* Fix some example.com

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-08-19 16:19:21 +02:00
Alexandre AlapetiteandFrans de Jonge 2ceb78fefb Dev updates: composer, hadolint, typos... (#9219)
* Dev updates: composer, hadolint, typos...
Composer compatibility PHP 8.6.
Manual updates not supported by Dependabot

* Fix hadolint

* Update lib/Minz/Url.php

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

* Add sha256sum for composer

---------

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2026-08-18 09:36:01 +02:00
MoraxandAlexandre Alapetite 4023406fee Add Docker access log toggle (#9191)
* Add Docker access log toggle

Allow container operators to disable Apache access logging with DISABLE_ACCESS_LOG=1 while preserving the existing default.

* Use positive access log toggle

* Include dev container

* Better POSIX compatibility
```
  -E, -r, --regexp-extended
                 use extended regular expressions in the script
                 (for portability use POSIX -E).
```

Note: we should probably replace the other `sed -r` by `sed -E` elsewhere

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-08-14 23:40:47 +02:00
Alexandre Alapetite ccff81efe3 Docker dev newest: PHP 8.6 (#9155)
Update our dev image `:newest` to PHP 8.6.
Tests passing.

https://php.watch/versions/8.6
https://php.watch/versions/8.6/rfcs
2026-08-01 14:26:39 +02:00
CronandAlexandre Alapetite 09478222ce Docker/OIDC: redirect to a default URL on expired auth state instead of 400-ing (#9143)
## Problem

With OIDC on the official Docker image, interactive SSO logins intermittently return `HTTP 400` at the `/i/oidc/` callback. The failure tracks login duration. `mod_auth_openidc` sets an anti-CSRF state cookie bounded by `OIDCStateTimeout` (default 300 s). If a login through an external IdP takes longer than that (MFA, a slow provider screen, the user stepping away), the cookie is already gone when the callback returns. The image does not set `OIDCDefaultURL`, so the module has no fallback and returns an error instead of restarting the login.

Apache log:

```
oidc_response_proto_state_restore: state has expired
oidc_response_process: invalid authorization response state and
        no default SSO URL is set, sending an error...
→ GET /i/oidc/?code=…&state=… 400
```

This is [documented mod_auth_openidc behaviour](https://github.com/OpenIDC/mod_auth_openidc/blob/72c9f479c2d228477ff0a9518964f61879c83fb6/auth_openidc.conf#L723-L733) when `OIDCDefaultURL` is unset. Both `OIDCDefaultURL` and `OIDCStateTimeout` are `RSRC_CONF` (server config only), so the `./FreshRSS/p/i/.htaccess` escape hatch cannot set them and the fix has to live in the image.

Reproduce: log out, start SSO, wait more than 5 minutes on the IdP screen, complete.

## Fix

Add `OIDC_DEFAULT_URL`, wired through the existing `${OIDC_*}` env pattern, defaulting to `/i/` (the index, consistent with `OIDCRedirectURI /i/oidc/`). On an expired or unmatchable state the module now redirects to `/i/`, which is protected and starts a fresh login against the existing IdP session. `OIDCStateTimeout` stays at 300 s; the window is fine, the missing fallback was the bug.

`OIDC_STATE_TIMEOUT` is intentionally not exposed. It can be added the same way if there is a reason to tune the window.

* Docker/OIDC: redirect to a default URL on expired auth state instead of 400-ing

Adds OIDC_DEFAULT_URL (default /i/), wired through the existing ${OIDC_*} env
pattern, so an expired or unmatchable mod_auth_openidc state redirects to the
FreshRSS index and restarts the login instead of returning HTTP 400.

* git commit update

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-07-24 17:55:36 +02:00
Gerard Alvear PorrasandGerard Alvear cf298e2680 Docker: use double quotes for CRON_MIN examples (#9011)
The Docker Quick Run / cron examples use single-quoted `-e 'CRON_MIN=1,31'`. This works on Linux/macOS shells and PowerShell, but not on Windows `cmd.exe`, which does not strip single quotes from arguments — they end up included literally in the variable, so the cron job never gets scheduled correctly. Using `-e CRON_MIN=*/20` (no quotes) works, which was the original report.


Fixes #4818

* Docs: remove CRON_MIN quoting

---------

Co-authored-by: Gerard Alvear <gerard.alvear@logiqd.me>
2026-07-15 13:45:02 +02:00
InverleandAlexandre Alapetite dcec27c69d Add SSRF mitigations using filter_var and CURLOPT_RESOLVE (#8400)
* Add SSRF mitigations using `filter_var` and `CURLOPT_RESOLVE`
The idea is to prevent FreshRSS from sending any HTTP requests to internal services, except for the ones that are explicitly allowed in the config.

Based on https://github.com/moodle/moodle/blob/6e82b46a480826d1a85394d9e5087f7d82d1dd52/lib/filelib.php#L3818 and https://github.com/symfony/symfony/blob/8.1/src/Symfony/Component/HttpClient/NoPrivateNetworkHttpClient.php

https://github.com/FreshRSS/simplepie/pull/76
https://github.com/FreshRSS/simplepie/pull/78

* Add allowlist setting in Web UI

* make readme

* Update app/i18n/fr/admin.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* make readme again

* make readme

* Further work

Still WIP and needs testing etc.

* Readd previous if check for domain combination allowlist

* Turn POST to GET after redirect

* Improve

* Update config.default.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* make readme

* Skip SSRF check if `CURLOPT_PROXY` is set

* make readme

* Fix `!empty()` mistake

* Respect max redirects feed option when fetching with `httpGet()`

* Respect max redirects during SimplePie fetching + fix bypass

bypass fix: `CURLOPT_FOLLOWLOCATION` was moved below so that emulated redirects are enforced.

* Avoid FreshRSS and Minz code in SimplePie
https://github.com/FreshRSS/FreshRSS/pull/8400#discussion_r2935375980

* Corrected hook code

* phpdoc wrong return type

* Add CIDR support in allowlist

* Implement simple DNS caching

* Suppress `dns_get_record()` warnings

* A bit of proof-reading

* Minor typo

* Fix proxy logic

* Fix HTTP POST redirect logic

* Proofread checkCIDR
Add fixes for several situations

* Remove credentials from URL in logs

* Ensure `CURLOPT_FOLLOWLOCATION` is `false` by setting it at the end

* Fix codesniffer long line

* Fix potential bypass due to wrong return value

If there were no records returned by `dns_get_record()`, no overrides to `CURLOPT_RESOLVE` would get passed,
and a potential bypass could occur, when cURL would try to resolve the domain by itself.

* Put the URL at the end in logs

* Add documentation and environment variable support

* make readme

* Fix wrong behavior in case of IP

* Fix duplicate selector in CSS

* Minor type check change

* i18n fr, en

* Minor type check change

* Fix whitespace i18n fr

* make fix-all

* Fix `$ips_ok` not being returned after domain records were cached

* make readme

* PHPStan fix

* make readme

* Minor syntax in SimplePie

* Only return `null` if no allowed IPs were found

* Add wildcard *, help message

* Consistent docs with help message

* i18n: pl

* SimplePie compatibility PHP 7.2

* make fix-all

* Sync SimplePie
* https://github.com/FreshRSS/simplepie/pull/76

* 💥 Breaking change in the Changelog

* Document `INTERNAL_HOST_ALLOWLIST` in Docker docs

* Remove `Cookie` and `Authorization` headers in `httpGet()` during cross-origin redirect

* Minor whitespace
And same comment convention than below

* Remove authentication headers and change POST to GET on redirect in SimplePie

* Remove .local in Docker example

* Fill in default ports when comparing URL origins

* Remove .local from other places than the Docker example

* Rewrite WebSub subscribe to use `httpGet()`

* make fix-all

* Also unset `CURLOPT_USERPWD` during redirects

* phpcs fix

* Always unset `CURLOPT_FOLLOWLOCATION`

* Bump SimplePie
https://github.com/FreshRSS/simplepie/pull/78

* Update logic for CURLOPT_FOLLOWLOCATION

* Fix PHPStan

* Changelog fix security section

* Update most common RSS Bridge case
https://hub.docker.com/r/rssbridge/rss-bridge

* Replace misleading 127.0.0.1:8080 example for Docker
This does not make sense for a Docker container

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-06-28 18:51:04 +02:00
Alexandre Alapetite 8e27fb1c09 Docker Alpine 3.24.0 (#8916)
https://alpinelinux.org/posts/Alpine-3.24.0-released.html
Revert to using default PHP version, which is now PHP 8.5.7
2026-06-11 22:17:16 +02:00
Timon Klinkert d5f3126d6c Also push to github registry (#8669)
Closes https://github.com/FreshRSS/FreshRSS/issues/8647

Changes proposed in this pull request:

- add push to ghcr
2026-04-03 22:34:05 +02:00
Alexandre Alapetite 15814cfd35 Add remote user in Apache logs, also for API (#8392)
* API: add remote user in Apache logs
fix https://github.com/FreshRSS/FreshRSS/discussions/8385

Example:
```
2026-01-01T18:38:28.645486326Z 0.0.0.0 - alex [01/Jan/2026:19:38:28 +0100] "GET /api/greader.php/reader/api/0/subscription/list?output=json HTTP/1.1" 200 9798 "-" "curl/8.14.1"
```

* Fallback mod_rewrite

* Log remote user with same priority as FreshRSS_http_Util::httpAuthUser()
2026-01-03 17:48:33 +01:00
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 AlapetiteandTobias 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 AlapetiteandFrans de Jonge 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 EvangelistaandAlexandre Alapetite 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 https://github.com/FreshRSS/FreshRSS/commit/af6f7f013ae5b908520aa0d9fb0e0b56247ff026
2025-08-09 19:13:38 +02:00
Carey MetcalfeandAlexandre Alapetite 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
DezponiaandAlexandre Alapetite 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 MossandAlexandre Alapetite 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
нездалиськоandAlexandre Alapetite 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 https://github.com/nielsdos/php-src/commit/3d0885f9e54ba46bbb082df4c9c32f0be98ee423
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