# SPDX-FileCopyrightText: 2023 Max Mehl # # 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: Register user info of {{ seafile_local_user.user }} user: name: "{{ seafile_local_user.user }}" check_mode: true register: seafile_local_user_info - name: Define directory for Seafile mirror service as fact set_fact: seafile_mirror_dir: "{{ seafile_local_user_info.home }}/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: "{{ seafile_local_user_info.home }}/config" state: directory mode: "0755" - name: Ensure Seafile config dir is initialised command: cmd: seaf-cli init -d "{{ seafile_local_user_info.home }}/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