Files
2024-08-27 08:53:31 +02:00

82 lines
3.1 KiB
YAML

---
- name: Include docker volume role
ansible.builtin.include_role:
name: docker_volume
vars:
docker_volume_name: "{{ nextcloud_volume_name }}"
docker_volume_backup_set: "{{ nextcloud_volume_backup_set | default([]) }}"
when: nextcloud_volume_name is defined
- name: Init {{ role_name }} env vars
ansible.builtin.set_fact:
nextcloud_env:
NEXTCLOUD_HOSTNAME: "{{ nextcloud_domain }}"
NEXTCLOUD_TRUSTED_DOMAINS: "{{ nextcloud_trusted_domains }}"
NEXTCLOUD_ADMIN_USER: "{{ nextcloud_admin_user }}"
NEXTCLOUD_ADMIN_PASSWORD: "{{ nextcloud_admin_password }}"
SMTP_HOST: "{{ nextcloud_mail_hostname }}"
SMTP_SECURE: "{{ nextcloud_mail_encryption }}"
SMTP_PORT: "{{ nextcloud_mail_port }}"
SMTP_AUTHTYPE: LOGIN
SMTP_NAME: "{{ nextcloud_mail_username }}"
SMTP_PASSWORD: "{{ nextcloud_mail_password }}"
MAIL_FROM_ADDRESS: "{{ nextcloud_mail_from }}"
MAIL_DOMAIN: "{{ nextcloud_mail_username.split('@')[1] }}"
TZ: "{{ nextcloud_timezone }}"
OVERWRITEPROTOCOL: https
OVERWRITEHOST: "{{ nextcloud_domain }}"
REDIS_HOST: "{{ nextcloud_redis_hostname }}" # FIXME: Not working without redis
REDIS_HOST_PASSWORD: "{{ nextcloud_redis_password }}"
- name: Append postgres env vars
ansible.builtin.set_fact:
nextcloud_env: "{{ nextcloud_env | combine(item) }}"
with_items:
- POSTGRES_HOST: "{{ nextcloud_postgres_hostname }}:5432"
- POSTGRES_USER: "{{ nextcloud_postgres_user }}"
- POSTGRES_PASSWORD: "{{ nextcloud_postgres_password }}"
- POSTGRES_DB: "{{ nextcloud_postgres_db }}"
when: nextcloud_postgres_hostname is defined
- name: Append mysql env vars
ansible.builtin.set_fact:
nextcloud_env: "{{ nextcloud_env | combine(item) }}"
with_items:
- MYSQL_HOST: "{{ nextcloud_mysql_hostname }}"
- MYSQL_USER: "{{ nextcloud_mysql_user }}"
- MYSQL_PASSWORD: "{{ nextcloud_mysql_password }}"
- MYSQL_DATABASE: "{{ nextcloud_mysql_db }}"
when: nextcloud_mysql_hostname is defined
- name: Start {{ role_name }} container {{ nextcloud_hostname }}
community.docker.docker_container:
name: "{{ nextcloud_hostname }}"
labels:
description: "{{ nextcloud_description }}"
image: "{{ nextcloud_image }}"
restart_policy: unless-stopped
recreate: false
env: "{{ nextcloud_env }}"
volumes:
- "{{ nextcloud_volume_name }}:/var/www/html"
networks:
- name: "{{ docker_network_name }}"
etc_hosts: "{{ nextcloud_etc_hosts }}"
log_driver: "{{ docker_log_driver }}"
log_options:
max-size: "{{ docker_log_max_size }}"
max-file: "{{ docker_log_max_file }}"
tag: "{{ nextcloud_hostname }}|{{ role_name }}"
register: start_nextcloud_container
- name: Wait for {{ role_name }} container # noqa 503
ansible.builtin.pause:
seconds: "30"
when: start_nextcloud_container.changed
- name: Cron job to run {{ role_name }} background jobs
ansible.builtin.cron:
name: Run nextcloud background jobs
minute: "*/5"
job: docker exec -u www-data {{ nextcloud_hostname }} php -f /var/www/html/cron.php; write-node-exporter-metric -c "Run nextcloud background jobs" -v $?