This repository has been archived on 2023-12-29. You can view files and clone it, but cannot push or open issues or pull requests.
pi-ansible/roles/docker/tasks/services/nextcloud.yml

85 lines
2.6 KiB
YAML

---
- name: Create Nextcloud volume directories
file:
name: "{{ services.nextcloud.volume }}/{{ name }}"
state: directory
loop:
- data
- db
- apache2
loop_control:
loop_var: name
- name: Copy Apache2 config files
copy:
src: "nextcloud/apache2/{{ file }}"
dest: "{{ services.nextcloud.volume }}/apache2/{{ file }}"
loop:
- apache2.conf
- remoteip.conf
loop_control:
loop_var: file
- name: Deploy Nextcloud with Docker Compose
docker_compose:
project_name: nextcloud
pull: true
definition:
version: '3.8'
services:
mysql:
image: "mariadb:{{ services.nextcloud.mariadb_version }}"
restart: unless-stopped
command:
- --transaction-isolation=READ-COMMITTED
- --log-bin
- --binlog-format=ROW
- --innodb_read_only_compressed=OFF
environment:
MYSQL_DATABASE: "{{ secrets.nextcloud.mysql.db }}"
MYSQL_USER: "{{ secrets.nextcloud.mysql.user }}"
MYSQL_PASSWORD: "{{ secrets.nextcloud.mysql.pw }}"
MYSQL_ROOT_PASSWORD: "{{ secrets.nextcloud.mysql.pw }}"
volumes:
- "{{ services.nextcloud.volume }}/db:/var/lib/mysql"
redis:
image: "redis:{{ services.nextcloud.redis_version }}"
restart: unless-stopped
command: "redis-server --requirepass={{ secrets.nextcloud.redis.pw }}"
tmpfs:
- /var/lib/redis
cron:
image: "nextcloud:{{ services.nextcloud.version }}"
restart: unless-stopped
entrypoint: /cron.sh
volumes:
- "{{ services.nextcloud.volume }}/data:/var/www/html"
depends_on:
- mysql
- redis
app:
image: "nextcloud:{{ services.nextcloud.version }}"
restart: unless-stopped
environment:
MYSQL_HOST: mysql
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: "{{ secrets.nextcloud.mysql.pw }}"
REDIS_HOST: redis
REDIS_HOST_PASSWORD: "{{ secrets.nextcloud.redis.pw }}"
PHP_MEMORY_LIMIT: 2G
PHP_UPLOAD_LIMIT: 16G
volumes:
- "{{ services.nextcloud.volume }}/data:/var/www/html"
- "{{ services.nextcloud.volume }}/apache2/apache2.conf:/etc/apache2/apache2.conf:ro"
- "{{ services.nextcloud.volume }}/apache2/remoteip.conf:/etc/apache2/conf-enabled/remoteip.conf:ro"
ports:
- "127.0.0.1:8080:80"
depends_on:
- mysql
- redis