Merge branch 'Dylancyclone-add-fresh-rss'

* Dylancyclone-add-fresh-rss:
  Add Fresh RSS
This commit is contained in:
David Stephens 2022-05-28 17:59:55 +01:00
commit 9159c35995
6 changed files with 76 additions and 0 deletions

View file

@ -49,6 +49,7 @@ Ansible config and a bunch of Docker containers.
* [Duplicati](https://www.duplicati.com/) - for backing up your stuff
* [Emby](https://emby.media/) - Media streaming and management
* [Firefly III](https://firefly-iii.org/) - Free and open source personal finance manager
* [Fresh RSS](https://freshrss.org/) - Self-hosted RSS feed aggregator like Leed or Kriss Feed
* [get_iplayer](https://github.com/get-iplayer/get_iplayer) - download programmes from BBC iplayer
* [Gitea](https://gitea.io/en-us/) - Simple self-hosted GitHub clone
* [GitLab](https://about.gitlab.com/features/) - Self-hosted GitHub clone of the highest order

View file

@ -0,0 +1,22 @@
# FreshRSS
Homepage: [https://freshrss.org/](https://freshrss.org/)
FreshRSS is a self-hosted RSS feed aggregator like Leed or Kriss Feed.
It is lightweight, easy to work with, powerful, and customizable.
It is a multi-user application with an anonymous reading mode. It supports custom tags. There is an API for (mobile) clients, and a Command-Line Interface.
Thanks to the WebSub standard (formerly PubSubHubbub), FreshRSS is able to receive instant push notifications from compatible sources, such as Mastodon, Friendica, WordPress, Blogger, FeedBurner, etc.
FreshRSS natively supports basic Web scraping, based on XPath, for Web sites not providing any RSS / Atom feed.
Finally, it supports extensions for further tuning.
## Usage
Set `freshrss_enabled: true` in your `inventories/<your_inventory>/nas.yml` file.
The FreshRSS web interface can be found at http://ansible_nas_host_or_ip:8089.

View file

@ -20,6 +20,7 @@ By default, applications can be found on the ports listed below.
| Emby | 8096 | Bridge | HTTP |
| Emby | 8920 | Bridge | HTTPS |
| Firefly III | 8066 | Bridge | HTTP |
| Fresh RSS | 8089 | Bridge | HTTP |
| get_iplayer | 8182 | Bridge | HTTP |
| Gitea | 3001 | Bridge | HTTP |
| Gitea | 222 | Bridge | SSH |

View file

@ -113,6 +113,11 @@
- firefly
when: (firefly_enabled | default(False))
- role: freshrss
tags:
- freshrss
when: (freshrss_enabled | default(False))
- role: get_iplayer
tags:
- get_iplayer

View file

@ -0,0 +1,15 @@
---
freshrss_enabled: false
freshrss_available_externally: "false"
# directories
freshrss_data_directory: "{{ docker_home }}/freshrss"
freshrss_extensions_directory: "{{ docker_home }}/freshrss"
# network
freshrss_port: "8089"
freshrss_hostname: "freshrss"
# specs
freshrss_memory: 1g

View file

@ -0,0 +1,32 @@
---
- name: Create FreshRSS Directories
file:
path: "{{ item }}"
state: directory
# mode: 0755
with_items:
- "{{ freshrss_data_directory }}/data"
- "{{ freshrss_extensions_directory }}/extensions"
- name: FreshRSS Docker Container
docker_container:
name: freshrss
image: freshrss/freshrss
pull: true
volumes:
- "{{ freshrss_data_directory }}/data:/var/www/FreshRSS/data:rw"
- "{{ freshrss_extensions_directory }}/extensions:/var/www/FreshRSS/extensions:rw"
ports:
- "{{ freshrss_port }}:80"
env:
TZ: "{{ ansible_nas_timezone }}"
CRON_MIN: "1,31"
restart_policy: unless-stopped
memory: "{{ freshrss_memory }}"
labels:
traefik.enable: "{{ freshrss_available_externally }}"
traefik.http.routers.freshrss.rule: "Host(`{{ freshrss_hostname }}.{{ ansible_nas_domain }}`)"
traefik.http.routers.freshrss.tls.certresolver: "letsencrypt"
traefik.http.routers.freshrss.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.freshrss.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
traefik.http.services.freshrss.loadbalancer.server.port: "80"