--- services: app: image: monica:${MONICA_VERSION:-latest} container_name: monica restart: always networks: - traefik - monica environment: - APP_KEY=${MONICA_APPKEY:?error} - APP_URL=https://${MONICA_DOMAIN:?error} - APP_TRUSTED_PROXIES=* - DB_HOST=db - DB_USERNAME=${MONICA_MYSQL_USER:?error} - DB_PASSWORD=${MONICA_MYSQL_PASSWORD:?error} labels: - "traefik.enable=true" - "traefik.docker.network=traefik" - "traefik.http.routers.monica.entrypoints=http" - "traefik.http.routers.monica.rule=Host(`${MONICA_DOMAIN:?error}`)" - "traefik.http.middlewares.monica-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.monica.middlewares=monica-https-redirect" - "traefik.http.routers.monica-secure.entrypoints=https" - "traefik.http.routers.monica-secure.rule=Host(`${MONICA_DOMAIN:?error}`)" - "traefik.http.routers.monica-secure.tls=true" - "traefik.http.routers.monica-secure.service=monica" - "traefik.http.services.monica.loadbalancer.server.port=80" volumes: - data:/var/www/html/storage depends_on: - db db: image: mariadb:${MONICA_MYSQL_VERSION:-11} container_name: monica-db restart: always networks: - monica environment: - MYSQL_RANDOM_ROOT_PASSWORD=true - MYSQL_DATABASE=monica - MYSQL_USER=${MONICA_MYSQL_USER:?error} - MYSQL_PASSWORD=${MONICA_MYSQL_PASSWORD:?error} volumes: - db:/var/lib/mysql networks: traefik: external: true monica: driver: bridge volumes: data: db: