2025-03-29 15:02:09 +00:00
|
|
|
---
|
|
|
|
services:
|
|
|
|
app:
|
|
|
|
image: monica:${MONICA_VERSION:-latest}
|
|
|
|
container_name: monica
|
|
|
|
restart: always
|
|
|
|
networks:
|
|
|
|
- traefik
|
|
|
|
- monica
|
|
|
|
environment:
|
|
|
|
- APP_KEY=${MONICA_APPKEY:?error}
|
2025-03-29 15:24:21 +00:00
|
|
|
- APP_URL=https://${MONICA_DOMAIN:?error}
|
|
|
|
- APP_TRUSTED_PROXIES=*
|
2025-03-29 15:02:09 +00:00
|
|
|
- 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
|
|
|
|
|
2025-03-29 15:08:35 +00:00
|
|
|
networks:
|
|
|
|
traefik:
|
|
|
|
external: true
|
|
|
|
monica:
|
|
|
|
driver: bridge
|
|
|
|
|
2025-03-29 15:02:09 +00:00
|
|
|
volumes:
|
|
|
|
data:
|
|
|
|
db:
|