services: nextcloud: image: nextcloud container_name: nextcloud restart: unless-stopped networks: - nextcloud - caddy_network depends_on: - nextclouddb - redis ports: - 8081:80 volumes: - {{ nextcloud_data_dir }}/nextcloud/html:/var/www/html - {{ nextcloud_data_dir }}/nextcloud/custom_apps:/var/www/html/custom_apps - {{ nextcloud_data_dir }}/nextcloud/config:/var/www/html/config - {{ nextcloud_data_dir }}/nextcloud/data:/var/www/html/data environment: - PUID=1000 - PGID=100 - TZ=Europe/Amsterdam - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD={{ lookup('community.general.onepassword', 'Nextcloud', vault='Dotfiles', field='MYSQL_NEXTCLOUD_PASSWORD') }} - MYSQL_HOST=nextclouddb - REDIS_HOST=redis nextclouddb: image: mariadb:11.4.7 container_name: nextcloud-db restart: unless-stopped command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW networks: - nextcloud volumes: - {{ nextcloud_data_dir }}/database:/var/lib/mysql environment: - PUID=1000 - PGID=100 - TZ=Europe/Amsterdam - MYSQL_RANDOM_ROOT_PASSWORD=true - MYSQL_PASSWORD={{ lookup('community.general.onepassword', 'Nextcloud', vault='Dotfiles', field='MYSQL_NEXTCLOUD_PASSWORD') }} - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud redis: image: redis:alpine container_name: redis volumes: - {{ nextcloud_data_dir }}/redis:/data networks: - nextcloud networks: nextcloud: name: nextcloud driver: bridge caddy_network: name: caddy_default external: true