Compare commits

...

16 Commits

4 changed files with 30 additions and 14 deletions

View File

@@ -25,21 +25,25 @@ This role doesn't have any dependencies to other roles.
vars: vars:
freshrss_root_dir: "/var/www" freshrss_root_dir: "/var/www"
freshrss_version: "1.27.1" freshrss_version: "1.27.1"
freshrss_refresh_interval: 15 freshrss_checksum: "99fd1d0e6f506832e6600c98e4c9369edad6bfec715df9b1b7c8c3eb6a455c22"
freshrss_refresh_interval: 10
roles: roles:
- freshrss - ansible-role-freshrss
``` ```
## Variables ## Variables
| Variable | Required | Default | Description | | Variable | Required | Default | Description |
| --------------------------- | -------- | ---------------------------------- | ---------------------------------------------------------------- | | --------------------------- | -------- | ---------------------------------- | ---------------------------------------------------------------- |
| `freshrss_root_dir` | **Yes** | - | Directory where FreshRSS archive is downloaded and extracted | | `freshrss_checksum` | No | `""` | SHA256 checksum to verify the archive if user sets it |
| `freshrss_group` | No | `www-data` | Group that will own FreshRSS files |
| `freshrss_path` | No | `{{ freshrss_root_dir }}/freshrss` | Web-accessible path where FreshRSS will be symlinked | | `freshrss_path` | No | `{{ freshrss_root_dir }}/freshrss` | Web-accessible path where FreshRSS will be symlinked |
| `freshrss_refresh_interval` | No | `15` | Feed refresh interval in minutes (every X minutes) |
| `freshrss_root_dir` | **Yes** | - | Directory where FreshRSS archive is downloaded and extracted |
| `freshrss_user` | No | `www-data` | User that will own FreshRSS files and run the cron job |
| `freshrss_version` | **Yes** | - | FreshRSS version to deploy (e.g., `"1.27.1"`) | | `freshrss_version` | **Yes** | - | FreshRSS version to deploy (e.g., `"1.27.1"`) |
| `freshrss_refresh_interval` | **Yes** | - | Feed refresh interval in minutes (e.g., `15` = every 15 minutes) |
## Addititional information ## Additional information
FreshRSS configuration is to be done once deployed. FreshRSS configuration is to be done once deployed.

View File

@@ -1,3 +1,6 @@
--- ---
freshrss_path: "{{ freshrss_root_dir }}/freshrss" freshrss_path: "{{ freshrss_root_dir }}/freshrss"
freshrss_checksum: ""
freshrss_user: www-data
freshrss_group: www-data
freshrss_refresh_interval: 15

View File

@@ -8,8 +8,11 @@
ansible.builtin.get_url: ansible.builtin.get_url:
url: https://github.com/FreshRSS/FreshRSS/archive/refs/tags/{{ freshrss_version }}.tar.gz url: https://github.com/FreshRSS/FreshRSS/archive/refs/tags/{{ freshrss_version }}.tar.gz
dest: "{{ freshrss_root_dir }}/freshrss-{{ freshrss_version }}.tar.gz" dest: "{{ freshrss_root_dir }}/freshrss-{{ freshrss_version }}.tar.gz"
mode: '0644' mode: "0644"
checksum: "{{ 'sha256:' ~ freshrss_checksum if (freshrss_checksum | length > 0) else omit }}"
when: not freshrss_dir.stat.exists when: not freshrss_dir.stat.exists
retries: 3
delay: 5
- name: Uncompress FreshRSS - name: Uncompress FreshRSS
ansible.builtin.unarchive: ansible.builtin.unarchive:
@@ -24,11 +27,11 @@
state: absent state: absent
when: not freshrss_dir.stat.exists when: not freshrss_dir.stat.exists
- name: Give ownership to www-data - name: Give ownership to user {{ freshrss_user }} and group {{ freshrss_group }}
ansible.builtin.file: ansible.builtin.file:
path: "{{ freshrss_root_dir }}/FreshRSS-{{ freshrss_version }}" path: "{{ freshrss_root_dir }}/FreshRSS-{{ freshrss_version }}"
owner: www-data owner: "{{ freshrss_user }}"
group: www-data group: "{{ freshrss_group }}"
recurse: true recurse: true
- name: Link the folder to web root on folder - name: Link the folder to web root on folder
@@ -39,16 +42,16 @@
follow: false follow: false
force: true force: true
- name: Give ownership to www-data on link - name: Give ownership to {{ freshrss_user }} on link
ansible.builtin.file: ansible.builtin.file:
path: "{{ freshrss_path }}" path: "{{ freshrss_path }}"
owner: www-data owner: "{{ freshrss_user }}"
group: www-data group: "{{ freshrss_group }}"
follow: false follow: false
- name: Setup a cron to refresh feeds - name: Setup a cron to refresh feeds
ansible.builtin.cron: ansible.builtin.cron:
name: update feeds name: update feeds
user: www-data user: "{{ freshrss_user }}"
minute: "*/{{ freshrss_refresh_interval }}" minute: "*/{{ freshrss_refresh_interval }}"
job: php -f {{ freshrss_path }}/app/actualize_script.php 1>/dev/null 2>&1 job: php -f {{ freshrss_path }}/app/actualize_script.php 1>/dev/null 2>&1

View File

@@ -1,4 +1,10 @@
--- ---
- name: Create freshrss_root_dir if it doesn't exist
ansible.builtin.file:
path: "{{ freshrss_root_dir }}"
state: directory
mode: "0755"
- name: Install cron for automatic feed refresh - name: Install cron for automatic feed refresh
ansible.builtin.apt: ansible.builtin.apt:
name: cron name: cron