**Purpose**: Deploy a Nextcloud and PostgreSQL database together. ```jsx title="docker-compose.yml" version: "2.1" services: app: image: nextcloud:apache labels: - "traefik.enable=true" - "traefik.http.routers.nextcloud.rule=Host(`${NEXTCLOUD_TRUSTED_DOMAINS}`)" - "traefik.http.routers.nextcloud.entrypoints=websecure" - "traefik.http.routers.nextcloud.tls.certresolver=letsencrypt" - "traefik.http.services.nextcloud.loadbalancer.server.port=80" environment: - TZ=${TZ} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_HOST=${POSTGRES_HOST} - OVERWRITEPROTOCOL=https - NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER} - NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD} - NEXTCLOUD_TRUSTED_DOMAINS=${NEXTCLOUD_TRUSTED_DOMAINS} volumes: - /mnt/nextcloud/app:/config - /mnt/nextcloud/data:/data ports: - 443:443 - 80:80 restart: always depends_on: - db networks: docker_network: ipv4_address: 192.168.5.17 db: image: postgres:12-alpine environment: - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_DB=${POSTGRES_DB} volumes: - /mnt/nextcloud/db:/var/lib/postgresql/data ports: - 5432:5432 restart: always networks: docker_network: ipv4_address: 192.168.5.18 networks: docker_network: external: true ``` ```jsx title=".env" TZ=America/Denver POSTGRES_PASSWORD=SomeSecurePassword POSTGRES_USER=ncadmin POSTGRES_HOST=192.168.5.18 POSTGRES_DB=nextcloud NEXTCLOUD_ADMIN_USER=admin NEXTCLOUD_ADMIN_PASSWORD=SomeSuperSecurePassword NEXTCLOUD_TRUSTED_DOMAINS=cloud.bunny-lab.io ```