♻: move freshrss app dir

This commit is contained in:
VC
2025-03-09 14:21:06 +01:00
parent a86577d5c1
commit 64c41a64df
5 changed files with 60 additions and 24 deletions

View File

@@ -2,7 +2,7 @@
- name: Check freshrss version
ansible.builtin.lineinfile:
path: "{{ freshrss_home }}/constants.php"
path: "{{ freshrss_app_home }}/constants.php"
line: "const FRESHRSS_VERSION = '{{ freshrss_version }}';"
state: present
check_mode: true

View File

@@ -1,40 +1,69 @@
---
- name: Create application directory
## Remove the previous app & install the new version
- name: Remove freshrss previous version
ansible.builtin.file:
state: absent
dest: "{{ freshrss_app_home }}"
- name: Create app home
ansible.builtin.file:
state: directory
dest: "{{ freshrss_home }}"
dest: "{{ freshrss_app_home }}"
owner: root
group: www-data
mode: "a-rwx,u+rwX,g+rX"
mode: "0o750"
- name: Install freshrss application
ansible.builtin.unarchive:
remote_src: true
src: "{{ freshrss_url }}"
dest: "{{ freshrss_home }}"
dest: "{{ freshrss_app_home }}"
owner: root
group: www-data
mode: "a-rwx,u+rwX,g+rX"
extra_opts: ['--strip-components=1']
exclude:
- "config/config.php"
exclude: "{{ freshrss_userdata_app_dirs }}"
## Ensure the data dirs exist, populate them if not
- name: Create data home
ansible.builtin.file:
state: directory
path: "{{ freshrss_data_home }}"
owner: www-data
group: www-data
mode: "a-rwx,u+rwX,g+rX"
# If the first data dir exists, other should exist too
- name: Get data dir
ansible.builtin.stat:
path: "{{ freshrss_data_home }}/{{ freshrss_userdata_app_dirs[0] }}"
register: _freshrss_userdata_dir_stat
- name: Install freshrss data dir
ansible.builtin.unarchive:
remote_src: true
src: "{{ freshrss_url }}"
dest: "{{ freshrss_data_home }}"
owner: www-data
group: www-data
mode: "a-rwx,u+rwX,g+rX"
extra_opts: ['--strip-components=1']
include: "{{ freshrss_userdata_app_dirs | map('regex_replace', '^', 'FreshRSS-' ~ freshrss_version ~ '/') }}"
when: not _freshrss_userdata_dir_stat.stat.exists
- name: Link FreshRSS userdata dirs
ansible.builtin.file:
state: link
src: "{{ freshrss_data_home }}/{{ item }}"
dest: "{{ freshrss_app_home }}/{{ item }}"
loop: "{{ freshrss_userdata_app_dirs }}"
# Config file is inside `data/`, so we must put it last
- name: Put freshrss configuration file
ansible.builtin.template:
src: config.php.j2
dest: "{{ freshrss_config_path }}"
owner: root
owner: www-data
group: www-data
mode: "0o660"
- name: Check writable dirs
ansible.builtin.file:
state: directory
dest: "{{ freshrss_home }}/{{ item }}"
owner: root
group: www-data
mode: "g+w"
recurse: true
loop:
- "data"
mode: "0o640"

View File

@@ -5,4 +5,4 @@ Wants=freshrss.timer
[Service]
User=www-data
Type=simple
ExecStart=/usr/bin/php {{ freshrss_home }}/app/actualize_script.php
ExecStart=/usr/bin/php {{ freshrss_app_home }}/app/actualize_script.php

View File

@@ -4,5 +4,12 @@ freshrss_version: "1.26.0"
freshrss_url: "https://github.com/FreshRSS/FreshRSS/archive/refs/tags/{{ freshrss_version }}.tar.gz"
freshrss_access_url: "{{ web_hostname | selectattr('type', 'defined') | selectattr('type', '==', 'freshrss') | map(attribute='host') | first }}"
freshrss_home: "/srv/http/{{ freshrss_access_url }}"
freshrss_config_path: "{{ freshrss_home }}/data/config.php"
# Access path
freshrss_app_home: "/var/www/{{ freshrss_access_url }}"
freshrss_data_home: "/srv/www-data/{{ freshrss_access_url }}"
freshrss_config_path: "{{ freshrss_app_home }}/data/config.php"
# App dirs
freshrss_userdata_app_dirs:
- data