Compare commits
4 Commits
2ab04172c3
...
b52faac854
| Author | SHA1 | Date | |
|---|---|---|---|
| b52faac854 | |||
| fb80445c83 | |||
| 807c6e1c9b | |||
| 9e70d15619 |
33
README.md
Normal file
33
README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# ansible-role-freshrss
|
||||
|
||||
This role deploys [FreshRSS](https://www.freshrss.org/) to your server(s).
|
||||
|
||||
It **does not** deploy php, nor a webserver or a database. However, it does install the dependencies for FreshRSS, including php-sqlite3 in case you want to use a simple SQLite database.
|
||||
|
||||
## Example playbook
|
||||
|
||||
```yaml
|
||||
- name: Deploy FreshRSS
|
||||
hosts: freshrss
|
||||
become: true
|
||||
|
||||
roles:
|
||||
- freshrss
|
||||
```
|
||||
|
||||
## Example var file
|
||||
|
||||
```yaml
|
||||
freshrss_root_dir: "/var/www"
|
||||
freshrss_path: "/var/www/rss"
|
||||
freshrss_version: "1.27.1"
|
||||
freshrss_refresh_interval: 15 # every 15 minutes
|
||||
```
|
||||
|
||||
## FreshRSS configuration
|
||||
|
||||
It's done once deployed, navigate to the address you’ve installed your server to complete the installation from the GUI.
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the GNU General Public License v3.0 or later (GPLv3+). See the [LICENSE](LICENSE) file for details.
|
||||
53
tasks/deploy.yml
Normal file
53
tasks/deploy.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
---
|
||||
- name: Check if this is the first run
|
||||
ansible.builtin.stat:
|
||||
path: "{{ freshrss_path }}"
|
||||
register: freshrss_dir
|
||||
|
||||
- name: Download FreshRSS
|
||||
ansible.builtin.get_url:
|
||||
url: https://github.com/FreshRSS/FreshRSS/archive/refs/tags/{{ freshrss_version }}.tar.gz
|
||||
dest: "{{ freshrss_root_dir }}/freshrss-{{ freshrss_version }}.tar.gz"
|
||||
mode: '0644'
|
||||
when: not freshrss_dir.stat.exists
|
||||
|
||||
- name: Uncompress FreshRSS
|
||||
ansible.builtin.unarchive:
|
||||
src: "{{ freshrss_root_dir }}/freshrss-{{ freshrss_version }}.tar.gz"
|
||||
dest: "{{ freshrss_root_dir }}"
|
||||
remote_src: true
|
||||
when: not freshrss_dir.stat.exists
|
||||
|
||||
- name: Clean archive
|
||||
ansible.builtin.file:
|
||||
name: "{{ freshrss_root_dir }}/freshrss-{{ freshrss_version }}.tar.gz"
|
||||
state: absent
|
||||
|
||||
- name: Give ownership to www-data
|
||||
ansible.builtin.file:
|
||||
path: "{{ freshrss_root_dir }}/FreshRSS-{{ freshrss_version }}"
|
||||
owner: www-data
|
||||
group: www-data
|
||||
recurse: true
|
||||
|
||||
- name: Link the folder to web root on folder
|
||||
ansible.builtin.file:
|
||||
src: "{{ freshrss_root_dir }}/FreshRSS-{{ freshrss_version }}"
|
||||
dest: "{{ freshrss_path }}"
|
||||
state: link
|
||||
follow: false
|
||||
force: true
|
||||
|
||||
- name: Give ownership to www-data on link
|
||||
ansible.builtin.file:
|
||||
path: "{{ freshrss_path }}"
|
||||
owner: www-data
|
||||
group: www-data
|
||||
follow: false
|
||||
|
||||
- name: Setup a cron to refresh feeds
|
||||
ansible.builtin.cron:
|
||||
name: update feeds
|
||||
user: www-data
|
||||
minute: "*/{{ freshrss_refresh_interval }}"
|
||||
job: php -f {{ freshrss_path }}/app/actualize_script.php 1>/dev/null 2>&1
|
||||
6
tasks/main.yml
Normal file
6
tasks/main.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: Setup requirements
|
||||
ansible.builtin.include_tasks: preparation.yml
|
||||
|
||||
- name: Deploy FreshRSS
|
||||
ansible.builtin.include_tasks: deploy.yml
|
||||
20
tasks/preparation.yml
Normal file
20
tasks/preparation.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
- name: Install cron for automatic feed refresh
|
||||
ansible.builtin.apt:
|
||||
name: cron
|
||||
state: present
|
||||
update_cache: true
|
||||
|
||||
- name: Install php dependencies
|
||||
ansible.builtin.apt:
|
||||
pkg:
|
||||
- php
|
||||
- php-curl
|
||||
- php-gmp
|
||||
- php-intl
|
||||
- php-mbstring
|
||||
- php-sqlite3
|
||||
- php-xml
|
||||
- php-zip
|
||||
state: present
|
||||
update_cache: true
|
||||
Reference in New Issue
Block a user