Commit Graph

157 Commits

Author SHA1 Message Date
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
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 97226dc8a6
Update Docker image Alpine 3.18 (#5383)
https://alpinelinux.org/posts/Alpine-3.18.0-released.html

Minor updates with Apache 2.4.57 and PHP 8.1.19
2023-05-10 23:54:49 +02:00
maTh 54c8de86c7
docs: language table added (#5375)
* docs: language table added

* Update 05_Configuration.md

* Update 05_Configuration.md

* french docs

* Unicode quote and a few fixes
(Same search&replace aslo applied to a few other files)

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-05-07 21:35:08 +02:00
Alexandre Alapetite c9d5fe2da1
Document automated Docker build from git (#5237)
* Document automated Docker build from git
Fix https://github.com/FreshRSS/FreshRSS/issues/5236
Contributes to https://github.com/FreshRSS/FreshRSS/issues/4089

* Rolling
2023-03-30 11:39:50 +02:00
Rufubi 9604856482
[Docker] Listening for IPv6 connections (#5180)
* Listen for IPv6 connections

* Added information about LISTEN6 variable

* Make LISTEN variable a comma-separated list of values

* Removed debug commands

* Revert changes

---------

Co-authored-by: Rufubi <>
2023-03-26 21:50:27 +02:00
witchcraze 425d790735
docs: fix nginx configuration (#5194)
Update nginx nginx configuration in `Hosted in a subdirectory type.`
2023-03-13 13:02:08 +01:00
Rebecca Scott 1c502aaac2
Add docker-compose instructions for ARM64 (#5175)
* Add docker-compose instructions for ARM64

* Update Docker/README.md

* Update Docker/README.md

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-03-07 10:33:49 +01:00
Alexandre Alapetite e899e4edd9
More robust application of access permissions (#5062)
* More robust application of access permissions
We were in particular missing directory traversal `+X` in our current recommendations.
Extracted to own shell script so it can easily be invoked.
Update access permissions in Docker to account to be more robust.
#fix https://github.com/FreshRSS/FreshRSS/discussions/5037

* Minor simplification

* Restrict mkdir permissions
Default mkdir permissions are 0777, which is not good for security, so downgrade to 0770.
2023-02-06 15:42:53 +01:00
Alexandre Alapetite dbdb7869c4
Safer timezone set (#5021)
* Safer timezone set
Add missing tzdata in Docker :newest
Fallback to UTC if no timezone is defined at all
#fix https://github.com/FreshRSS/FreshRSS/pull/4906#issuecomment-1386747169

* Better refactoring
Show fallback timezone everywhere
2023-01-19 18:26:04 +01:00
Alexandre Alapetite 075cf4c800
API avoid logging passwords (#5001)
* API avoid logging passwords
* Strip passwords and tokens from API logs
* Only log failed requests information when in debug mode

* Remove debug SHA

* Clean also Apache logs

* Better comments

* Redact also token parameters

* shfmt

* Simplify whitespace

* redacted
2023-01-11 23:27:14 +01:00
Alexandre Alapetite 7330cbab38
chmod +x extensions (#4956)
To ease adding custom extensions such as in https://github.com/FreshRSS/Extensions/issues/37#issuecomment-1363474585
2022-12-28 23:07:52 +01: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 60d626030d
Docker Alpine time zone (#4903)
Allow setting the timezone with a `TZ` environment variable in our Alpine-based Docker images just like for our Debian-based Doker images.
See https://github.com/FreshRSS/FreshRSS/discussions/4898#discussioncomment-4245991
2022-11-28 18:02:33 +01:00
Alexandre Alapetite be79c5a8e7
Docker Alpine 3.17 (#4886)
* Docker Alpine 3.17
Update alternative Docker image to Alpine 3.17 with PHP 8.1.12 (and still Apache 2.4.54)
https://alpinelinux.org/posts/Alpine-3.17.0-released.html

* Fix developer access rights
Put developer in www-data group
2022-11-23 22:40:41 +01:00
Alexandre Alapetite e1b2f6ae13
Apache TraceEnable Off (#4863)
I have just received an e-mail with a security concern.
Although most likely an obsolete concern (old browsers with Java applets), and the Apache team saying that there is no problem, let's disable the TRACE method by default in our Docker images until we hear anybody actually wanting this feature.
https://httpd.apache.org/docs/current/mod/core.html#traceenable
https://owasp.org/www-community/attacks/Cross_Site_Tracing
2022-11-16 23:27:45 +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 95af935a5f
Docker entrypoint fix buffering (#4417)
Remove output buffering during auto-install of FreshRSS and auto-creation of the default user.
We were only getting outputs at the end of each command, which was a problem for getting errors and progress, for instance when automatically importing a very large OPML
2022-06-19 20:03:34 +02:00
Alexandre Alapetite 15de58a024
Docker readme volume for extensions (#4397)
* Docker readme volume for extensions
Forgotten from https://github.com/FreshRSS/FreshRSS/pull/4320
Keeping https://github.com/FreshRSS/FreshRSS/pull/2837

* Minor whitespace

* No extension volume for development
2022-05-31 10:04:07 +02:00