aboutsummaryrefslogtreecommitdiff
path: root/docker-compose.yml
blob: c91a34882ec9938b0748f681df04a2aeef44593e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
version: '3.3'

services:
    db:
        image: mysql:5.7
        volumes:
            - ${VOLUMES_DIR}/db:/var/lib/mysql
        restart: unless-stopped
        environment:
            MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
            MYSQL_DATABASE: ${MYSQL_DATABASE}
            MYSQL_USER: ${MYSQL_USER}
            MYSQL_PASSWORD: ${MYSQL_PASSWORD}
        networks:
            - baikal_internal

    baikal:
        depends_on:
            - db
        build:
            context: .
            dockerfile: Dockerfile
        ports:
            - "${EXPOSE_PORT}:80"
        environment:
            CONTAINER_DOMAIN_NAME: ${DOMAIN_NAME}
            CONTAINER_HOST_NAME: ${HOST_NAME}
        restart: unless-stopped
        labels:
            - "traefik.enable=true"
            - "traefik.http.routers.baikal.rule=Host(`${HOST_NAME}.${DOMAIN_NAME}`)"
            - "traefik.http.middlewares.baikal-base-redir.redirectregex.permanent=true"
            - "traefik.http.middlewares.baikal-base-redir.redirectregex.regex=^http(.?)://(.*)/${PATH_PREFIX}(.*)"
            - "traefik.http.middlewares.baikal-base-redir.redirectregex.replacement=https://${HOST_NAME}.${DOMAIN_NAME}$$3"
            - "traefik.http.routers.baikal-nosub.rule=(Host(`${DOMAIN_NAME}`) || Host(`www.${DOMAIN_NAME}`)) && PathPrefix(`/${PATH_PREFIX}`)"
            - "traefik.http.routers.baikal-nosub.middlewares=baikal-base-redir@docker"
            - "traefik.http.middlewares.baikal-wellknown-redir.redirectregex.permanent=true"
            - "traefik.http.middlewares.baikal-wellknown-redir.redirectregex.regex=^(.*)"
            - "traefik.http.middlewares.baikal-wellknown-redir.redirectregex.replacement=https://${HOST_NAME}.${DOMAIN_NAME}/dav.php"
            - "traefik.http.routers.baikal-wellknown.rule=(Host(`${DOMAIN_NAME}`) || Host(`www.${DOMAIN_NAME}`)) && (Path(`/.well-known/caldav`) || Path(`/.well-known/carddav`))"
            - "traefik.http.routers.baikal-wellknown.middlewares=baikal-wellknown-redir@docker"
            - "traefik.docker.network=traefik_network"
        volumes:
            - ${VOLUMES_DIR}/Specific:/var/www/html/Specific
        networks:
            - baikal_internal
            - traefik_network

networks:
    baikal_internal:
    traefik_network:
        external: true
        name: traefik_network