version: '3'

services:
  db:
    container_name: nextcloud_db
    image: postgres:alpine
    restart: always
    volumes:
      - /docker/appdata/nextcloud/postgres:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=nextcloud
      - POSTGRES_DB=nextcloud
      - POSTGRES_USER=nextcloud

  redis:
    container_name: nextcloud_redis
    image: redis:alpine
    restart: always

  app:
    container_name: nextcloud_app
    image: nextcloud:apache
    restart: always
    ports:
      - 8090:80
    volumes:
      - /docker/appdata/nextcloud/nextcloud:/var/www/html
    environment:
      - POSTGRES_HOST=db
      - POSTGRES_DB=nextcloud
      - POSTGRES_USER=nextcloud
      - POSTGRES_PASSWORD=nextcloud
      - REDIS_HOST=redis
      - NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.shoebottom.ca
    depends_on:
      - db
      - redis

  cron:
    container_name: nextcloud_cron
    image: nextcloud:apache
    restart: always
    volumes:
      - /docker/appdata/nextcloud/nextcloud:/var/www/html
    entrypoint: /cron.sh
    depends_on:
      - db
      - redis