80 lines
2.0 KiB
YAML
Executable File
80 lines
2.0 KiB
YAML
Executable File
# SPDX-FileCopyrightText: 2023 Max Mehl <https://mehl.mx>
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
---
|
|
- name: Ensure local seafile user is configured correctly
|
|
include_role:
|
|
name: users
|
|
apply:
|
|
become: false
|
|
vars:
|
|
username: "{{ seafile_local_user.user }}"
|
|
password: "{{ seafile_local_user.pass | default('') }}"
|
|
|
|
- name: Ensure requirements are installed
|
|
apt:
|
|
name:
|
|
- moreutils # chronic
|
|
- pipx
|
|
- seafile-cli
|
|
become: false # need to do this as root
|
|
|
|
- name: Define directory for Seafile mirror service as fact
|
|
set_fact:
|
|
seafile_mirror_dir: "~/seafile_mirror"
|
|
|
|
- name: Ensure directory for Seafile mirror service exists
|
|
file:
|
|
path: "{{ seafile_mirror_dir }}"
|
|
state: directory
|
|
mode: "0755"
|
|
recurse: true
|
|
|
|
- name: Ensure Seafile mirror configuration exists
|
|
template:
|
|
src: seafile_mirror.conf.yaml.j2
|
|
dest: "{{ seafile_mirror_dir }}/seafile_mirror.conf.yaml"
|
|
mode: "0600"
|
|
|
|
- name: Ensure log file with user permissions exists
|
|
file:
|
|
path: /var/log/seafile-mirror.log
|
|
state: touch
|
|
mode: "0644"
|
|
owner: "{{ seafile_local_user.user }}"
|
|
group: "{{ seafile_local_user.user }}"
|
|
become: false
|
|
|
|
- name: Ensure cron entry for Seafile mirror service
|
|
cron:
|
|
name: Seafile Mirror Service
|
|
job: "chronic pipx run seafile-mirror -c {{ seafile_mirror_dir }} -l /var/log/seafile-mirror.log"
|
|
minute: "{{ seafile_cron.minute }}"
|
|
hour: "{{ seafile_cron.hour }}"
|
|
day: "{{ seafile_cron.day }}"
|
|
month: "{{ seafile_cron.month }}"
|
|
weekday: "{{ seafile_cron.weekday }}"
|
|
|
|
- name: Ensure Seafile config dir exists
|
|
file:
|
|
path: "~/config"
|
|
state: directory
|
|
mode: "0755"
|
|
|
|
- name: Ensure Seafile config dir is initialised
|
|
command:
|
|
cmd: seaf-cli init -d "~/config"
|
|
register: result
|
|
changed_when: '"already exists" not in result.stdout'
|
|
|
|
- name: Setup systemd user service
|
|
include_role:
|
|
name: systemd-user
|
|
apply:
|
|
become: false
|
|
vars:
|
|
user: "{{ seafile_local_user.user }}"
|
|
service: seaf-daemon
|
|
copy_file: seaf-daemon.service
|