From b8b657488dbfeb39d8beb9dc65e3fac330f6ea35 Mon Sep 17 00:00:00 2001 From: Inverle Date: Sat, 24 Oct 2026 22:55:59 +0200 Subject: [PATCH] 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 --- .editorconfig | 2 +- .github/workflows/tests.yml | 3 +-- .lycheeignore | 10 +++++++++- CREDITS.md | 12 ++++++------ Docker/README.md | 2 +- README.fr.md | 2 +- README.md | 4 ++-- docs/en/admins/08_FeedUpdates.md | 2 +- docs/en/admins/18_Pocket-ID.md | 2 +- docs/en/users/08_sharing_services.md | 2 +- 10 files changed, 24 insertions(+), 17 deletions(-) diff --git a/.editorconfig b/.editorconfig index 48e59bb40..048045b1a 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,4 @@ -# http://EditorConfig.org +# https://editorconfig.org/ [*] charset = utf-8 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a974f27d4..9d59e490d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,7 +17,7 @@ jobs: tests: name: tests - # https://github.com/actions/virtual-environments + # https://github.com/actions/runner-images runs-on: ubuntu-26.04 steps: @@ -105,7 +105,6 @@ jobs: run: GOBIN=${PWD}/bin/ go install mvdan.cc/sh/v3/cmd/shfmt@v3.8.0 - name: Check shell script syntax - # shellcheck is pre-installed https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2204-Readme.md run: ./tests/shellchecks.sh - name: Install hadolint diff --git a/.lycheeignore b/.lycheeignore index 93ff6ee20..d913bed6d 100644 --- a/.lycheeignore +++ b/.lycheeignore @@ -7,7 +7,6 @@ # URLs used in source code / tests ^http://www\.blogger\.com/feeds/1/posts ^https://www\.blogger\.com/feeds/1/posts -^http://a\.bc/ ^https://web\.archive\.org/save/~LINK~ ^https://www\.facebook\.com/sharer\.php\?u=~LINK~&t=~TITLE~ ^https://archive\.ph/submit/\?url=~LINK~ @@ -17,6 +16,10 @@ ^https://www\.journalduhacker\.net/stories/new\?url=~LINK~&title=~TITLE~ ^https://www\.linkedin\.com/shareArticle\?url=~LINK~&title=~TITLE~&source=FreshRSS ^https://www\.xing\.com/spi/shares/new\?url=~LINK +^http://a\.bc/ +^http://rss-bridge\.lan/ +^https://198\.51\.100\.7/ +^https://198\.51\.100\.7:8443/ # URLs that likely exist, but will be published in the future ^https://github\.com/FreshRSS/FreshRSS/security/advisories/.* @@ -42,13 +45,18 @@ ^https://alternativeto\.net/ ^https://www\.patreon\.com/ ^https://www\.reddit\.com/ +^https://fiat-tux\.fr/ # Works normally in the browser, but not in lychee ^https://www\.vsta\.org/andy/ ^https://gnusocial\.rocks/ ^https://friendi\.ca/ +# TODO: Temporarily broken +^https://install-app\.yunohost\.org/\?app=freshrss + # TODO: Dead? ^https://template\.run\.claw\.cloud/\?openapp=system-fastdeploy%3FtemplateName%3Dfreshrss ^https://amaury\.carrade\.eu/ ^https://www\.pimsnel\.com/ +^https://fsf\.org/ diff --git a/CREDITS.md b/CREDITS.md index a9b9187ca..e6f6c2a5b 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -19,7 +19,7 @@ People are sorted by name so please keep this order. * [Aidi Stan](https://github.com/aidistan): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:aidistan), [Web](https://aidistan.site/) * [akine](https://github.com/akine): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:akine) * [ale-rt](https://github.com/ale-rt): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ale-rt) -* [Alejandro Borrego](https://github.com/abp002): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:abp002), [Web](https://abp002.github.io/) +* [Alejandro Borrego](https://github.com/abp002): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:abp002), [Web](https://alejandroborrego.dev/) * [Alexander Steinhöfer](https://github.com/lx-s): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:lx-s), [Web](https://lx-s.de/) * [Alexandre Alapetite](https://github.com/Alkarex): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Alkarex), [Web](https://alexandre.alapetite.fr/) * [Alexis Degrugillier](https://github.com/aledeg): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:aledeg) @@ -44,7 +44,7 @@ People are sorted by name so please keep this order. * [Axel Leroy](https://github.com/axeleroy): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:axeleroy), [Web](https://axel.leroy.sh/) * [azlux](https://github.com/azlux): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:azlux), [Web](https://azlux.fr/) * [Balázs Keresztury](https://github.com/belidzs/): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:belidzs), [Web](https://www.keresztury.com/) -* [Bartłomiej Dmitruk](https://github.com/hackerman70000): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:hackerman70000), [Web](https://www.bartek-dmitruk.com/) +* [Bartłomiej Dmitruk](https://github.com/hackerman70000): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:hackerman70000), [Web](https://www.bartekdmitruk.com/) * [Bartosz Taudul](https://github.com/wolfpld): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:wolfpld), [Web](https://wolf.nereid.pl/) * [beerisgood](https://github.com/beerisgood): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:beerisgood) * [Ben Passmore](https://github.com/passbe): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:passbe), [Web](https://passbe.com/) @@ -174,7 +174,7 @@ People are sorted by name so please keep this order. * [Jules Bertholet](https://github.com/Jules-Bertholet): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Jules-Bertholet) * [Julien Herr](https://github.com/juherr): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:juherr), [Web](https://juherr.dev/) * [Julien Reichardt](https://github.com/j8r): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:j8r) -* [Julien-Pierre Avérous](https://github.com/javerous): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:javerous), [Web](https://www.sourcemac.com/) +* [Julien-Pierre Avérous](https://github.com/javerous): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:javerous), [Web](https://www.sourcemac.fr/) * [junkfood](https://github.com/JunkFood02): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:JunkFood02) * [Justin Tracey](https://github.com/jtracey): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jtracey), [Web](https://unsuspicious.click) * [Kachelkaiser](https://github.com/Kachelkaiser): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Kachelkaiser) @@ -223,13 +223,13 @@ People are sorted by name so please keep this order. * [matthew-neavling](https://github.com/matthew-neavling): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:matthew-neavling) * [Maurice Schleußinger](https://github.com/maurice-schleussinger): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:maurice-schleussinger) * [Max Oberrauch](https://github.com/Juice-de-Orange): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Juice-de-Orange) -* [May Meow](https://github.com/MayMeow): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:MayMeow), [Web](https://maymeow.com) +* [May Meow](https://github.com/MayMeow): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:MayMeow), [Web](https://www.maymeow.com) * [McFev](https://github.com/McFev): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:McFev) * [Mejans](https://github.com/Mejans): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Mejans) * [Melvyn Laïly](https://github.com/yaurthek): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:yaurthek), [Web](https://x2a.yt/) * [Michael Meier](https://github.com/mmeier86): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mmeier86) * [Michael Thomas](https://github.com/nanos): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nanos), [Web](https://michael.thms.uk) -* [Michael Wagner](https://github.com/michi-onl): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:michi-onl), [Web](https://about.michi.onl/) +* [Michael Wagner](https://github.com/michi-onl): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:michi-onl), [Web](https://michi.onl/) * [Miguel Sánchez](https://github.com/msdlr): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:msdlr) * [Miika Launiainen](https://gitlab.com/miicat): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:miicat), [Web](https://miicat.eu/) * [Mike Vanbuskirk](https://github.com/codevbus): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:codevbus) [Web](https://mikevanbuskirk.io/) @@ -300,7 +300,7 @@ People are sorted by name so please keep this order. * [Raineer](https://github.com/Raineer): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Raineer) * [Ramazan Sancar](https://github.com/ramazansancar): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ramazansancar), [Web](https://www.ramazansancar.com.tr/) * [Ramón Cutanda](https://github.com/rcutanda): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rcutanda) -* [Rasmus Larsen](https://github.com/rlrs): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rlrs), [Web](https://rlrs.github.io/) +* [Rasmus Larsen](https://github.com/rlrs): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rlrs), [Web](https://rlrs.dk/) * [raspo](https://github.com/raspo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:raspo), [Web](https://raspo.dev/) * [rdmitr](https://github.com/rdmitr): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rdmitr) * [Rebecca Scott](https://github.com/becdetat): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:becdetat), [Web](https://becdetat.com) diff --git a/Docker/README.md b/Docker/README.md index b5a2350c8..3e89bc273 100644 --- a/Docker/README.md +++ b/Docker/README.md @@ -446,7 +446,7 @@ docker compose down --remove-orphans --volumes ## Run in production For production, it is a good idea to use a reverse proxy on your host server, providing HTTPS. -A dedicated solution such as [Træfik](https://traefik.io/traefik/) is recommended +A dedicated solution such as [Træfik](https://traefik.io/traefik) is recommended (or see [alternative options below](#alternative-reverse-proxy-configurations)). You must first chose a domain (DNS) or sub-domain, e.g. `freshrss.example.net`, and set it in your `.env` file: diff --git a/README.fr.md b/README.fr.md index 865b35ce5..956322e0c 100644 --- a/README.fr.md +++ b/README.fr.md @@ -64,7 +64,7 @@ FreshRSS n’est fourni avec aucune garantie. * Fonctionne même sur un Raspberry Pi 1 avec des temps de réponse < 1s (testé sur 150 flux, 22k articles) * Serveur Web Apache2.4+ (recommandé), ou nginx, lighttpd (non testé sur les autres) * PHP 8.1+ - * Extensions requises : [cURL](https://www.php.net/curl), [DOM](https://www.php.net/dom), [JSON](https://www.php.net/json), [XML](https://www.php.net/xml), [session](https://www.php.net/session), [ctype](https://www.php.net/ctype) + * Extensions requises : [cURL](https://www.php.net/curl), [DOM](https://www.php.net/dom), [JSON](https://www.php.net/json), [XML](https://www.php.net/xml), [session](https://www.php.net/features.sessions), [ctype](https://www.php.net/ctype) * Extensions recommandées : [PDO_SQLite](https://www.php.net/pdo-sqlite) (pour l’export/import), [GMP](https://www.php.net/gmp) (pour accès API sur plateformes < 64 bits), [IDN](https://www.php.net/intl.idn) (pour les noms de domaines internationalisés), [mbstring](https://www.php.net/mbstring) (pour le texte Unicode), [iconv](https://www.php.net/iconv) (pour conversion d’encodages), [ZIP](https://www.php.net/zip) (pour import/export), [zlib](https://www.php.net/zlib) (pour les flux compressés) * Extension pour base de données : [PDO_PGSQL](https://www.php.net/pdo-pgsql) ou [PDO_SQLite](https://www.php.net/pdo-sqlite) ou [PDO_MySQL](https://www.php.net/pdo-mysql) * PostgreSQL 10+ ou SQLite ou MariaDB 10.6+ ou MySQL 8.0+ diff --git a/README.md b/README.md index 50540e70e..f370ed4eb 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ and the [list of releases](https://github.com/FreshRSS/FreshRSS/releases). | | | | |-|-|-| | [Docker](./Docker/) | [YunoHost](https://install-app.yunohost.org/?app=freshrss) | [Elestio](https://elest.io/open-source/freshrss) | -| [Cloudron](https://cloudron.io/button.html?app=org.freshrss.cloudronapp) | [PikaPods](https://www.pikapods.com/pods?run=freshrss) | [Zeabur](https://zeabur.com/templates/MD4TRW) | +| [Cloudron](https://www.cloudron.io/button.html?app=org.freshrss.cloudronapp) | [PikaPods](https://www.pikapods.com/pods?run=freshrss) | [Zeabur](https://zeabur.com/templates/MD4TRW) | | [ClawCloud](https://template.run.claw.cloud/?openapp=system-fastdeploy%3FtemplateName%3Dfreshrss) | [Hostinger](https://www.hostinger.com/docker-hosting?compose_url=https://github.com/FreshRSS/FreshRSS/blob/edge/Docker/freshrss/docker-compose.yml) | | For more cloud hosting options, see the [list of cloud providers](https://freshrss.org/cloud-providers.html) or [Chatons](https://www.chatons.org/search/by-service?field_software_target_id=269) (a directory of ethical hosting providers). @@ -199,7 +199,7 @@ and [Fever API](https://freshrss.github.io/FreshRSS/en/developers/06_Fever_API.h | [lire](https://lireapp.com/) | iOS, macOS | – | ✓✓ | GReader | ? | ? | ? | ? | ? | ? | ? | ? | | [Unread](https://www.goldenhillsoftware.com/unread/) | iOS | – | ✓✓ | Fever | ✓ | ? | ? | ? | ✓ | – | – | – | | [Fiery Feeds](https://voidstern.net/fiery-feeds) | iOS | – | ✓✓ | Fever | ? | ? | ? | ? | ? | – | – | – | -| [Netnewswire](https://ranchero.com/netnewswire/) | iOS, macOS | [✓](https://github.com/Ranchero-Software/NetNewsWire) | Work in progress | GReader | ✓ | ? | ? | ? | ✓ | – | – | ✓ | +| [Netnewswire](https://netnewswire.com/) | iOS, macOS | [✓](https://github.com/Ranchero-Software/NetNewsWire) | Work in progress | GReader | ✓ | ? | ? | ? | ✓ | – | – | ✓ | # Included libraries diff --git a/docs/en/admins/08_FeedUpdates.md b/docs/en/admins/08_FeedUpdates.md index d59ce48f9..2e5a01e6d 100644 --- a/docs/en/admins/08_FeedUpdates.md +++ b/docs/en/admins/08_FeedUpdates.md @@ -24,7 +24,7 @@ docker run ... \ ## Cron as a trigger -You’ll need to check the Cron documentation for your specific distribution ([Debian/Ubuntu](https://help.ubuntu.com/community/CronHowto), [Red Hat/Fedora/CentOS](https://fedoraproject.org/wiki/Administration_Guide_Draft/Cron), [Slackware](https://docs.slackware.com/slackbook:process_control#cron), [Gentoo](https://wiki.gentoo.org/wiki/Cron), [Arch Linux](https://wiki.archlinux.org/title/Cron) …) to make sure you set the Cron job correctly. +You’ll need to check the Cron documentation for your specific distribution ([Debian/Ubuntu](https://ubuntu.com/server/docs/how-to/backups/back-up-using-shell-scripts/#run-with-cron), [Red Hat/Fedora/CentOS](https://fedoraproject.org/wiki/Administration_Guide_Draft/Cron), [Slackware](https://docs.slackware.com/slackbook:process_control#cron), [Gentoo](https://wiki.gentoo.org/wiki/Cron), [Arch Linux](https://wiki.archlinux.org/title/Cron) …) to make sure you set the Cron job correctly. It’s advisable that you run the Cron job as your Web server user (often `www-data`). diff --git a/docs/en/admins/18_Pocket-ID.md b/docs/en/admins/18_Pocket-ID.md index f5019c911..b9652affd 100644 --- a/docs/en/admins/18_Pocket-ID.md +++ b/docs/en/admins/18_Pocket-ID.md @@ -3,7 +3,7 @@ **[Pocket ID](https://github.com/pocket-id/pocket-id)** is a simple OIDC provider that allows users to authenticate with their passkeys to your services. (See [FreshRSS’ OpenID Connect documentation](16_OpenID-Connect.md)). -You can find more information in the [Pocket ID documentation](https://pocket-id.org/docs). +You can find more information in the [Pocket ID documentation](https://pocket-id.org/docs/introduction). ## 1. Create OAuth2/OpenID Provider diff --git a/docs/en/users/08_sharing_services.md b/docs/en/users/08_sharing_services.md index 330d6f3b0..445ae6753 100644 --- a/docs/en/users/08_sharing_services.md +++ b/docs/en/users/08_sharing_services.md @@ -29,7 +29,7 @@ FreshRSS has the option to share links with a bunch of services. | Nextcloud Bookmarks | Selfhosted bookmark app for Nextcloud | [Website](https://apps.nextcloud.com/apps/bookmarks) | | | Omnivore | A complete, open source read-it-later solution for people who love to read. | [Website](https://omnivore.app/) | | | Pinboard | Social Bookmarking for Introverts | [Website](https://pinboard.in/) | | -| Pinterest | Is an image sharing and social media service designed to enable saving and discovery of information| [Website](https://pinterest.com/), [Wikipedia](https://en.wikipedia.org/wiki/Pinterest) | | +| Pinterest | Is an image sharing and social media service designed to enable saving and discovery of information| [Website](https://www.pinterest.com/), [Wikipedia](https://en.wikipedia.org/wiki/Pinterest) | | | Raindrop.io | All-in-one bookmark manager | [Website](https://raindrop.io/)| | | Reddit | A network of communities where people can dive into their interests, hobbies and passions| [Website](https://www.reddit.com/), [Wikipedia](https://en.wikipedia.org/wiki/Reddit)| | | Shaarli | Self-hosted minimalist bookmark manager and link sharing service | [Website](https://shaarli.readthedocs.io/) | |