blob: b81875b9a7f36cf107735639c4997807d02d3fba (
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
 | services:
  nginx:
    pull_policy: build
    build:
      context: "./@@CRUPEST_DOCKER_DIR@@/nginx"
      additional_contexts:
        - "www=./www"
      dockerfile: Dockerfile
      pull: true
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    env_file:
      - "./@@CRUPEST_GENERATED_DIR@@/envs/v2ray-common.env"
      - "./@@CRUPEST_GENERATED_DIR@@/envs/mail-server-common.env"
    volumes:
      - "./@@CRUPEST_GENERATED_DIR@@/nginx:/etc/nginx/conf.d"
      - "./@@CRUPEST_DATA_CERTBOT_DIR@@/certs:/etc/letsencrypt"
      - "./@@CRUPEST_DATA_CERTBOT_DIR@@/data:/var/lib/letsencrypt"
      - "./@@CRUPEST_DATA_CERTBOT_DIR@@/webroot:/var/www/certbot"
    networks:
      default:
        ipv4_address: "172.21.5.2"
    restart: "on-failure:3"
  mail-server:
    pull_policy: build
    build:
      context: "./@@CRUPEST_DOCKER_DIR@@/mail-server"
      additional_contexts:
        - "deno=./deno"
      dockerfile: Dockerfile
      pull: true
    container_name: mail-server
    hostname: mail
    domainname: "@@CRUPEST_DOMAIN@@"
    env_file:
      - "./@@CRUPEST_GENERATED_DIR@@/envs/mail-server-common.env"
      - "./@@CRUPEST_GENERATED_DIR@@/envs/mail-server.env"
    ports:
      - "143:143" # IMAP4 (explicit TLS => STARTTLS)
      - "993:993" # IMAP4 (implicit TLS)
      - "587:587" # ESMTP (explicit TLS => STARTTLS)
      - "465:465" # ESMTP (implicit TLS)
      - "4190:4190" # manage sieve protocol
    volumes:
      - "./@@CRUPEST_DATA_MAIL_SERVER_DIR@@:/data"
      - "./@@CRUPEST_SSL_FULLCHAIN_FILE@@:/etc/dovecot/ssl/tls.crt"
      - "./@@CRUPEST_SSL_PRIVATE_KEY_FILE@@:/etc/dovecot/ssl/tls.key"
      - "/etc/localtime:/etc/localtime:ro"
    networks:
      default:
        ipv4_address: "172.21.5.3"
    restart: "on-failure:3"
    stop_grace_period: 1m
  git-server:
    pull_policy: build
    build:
      context: "./@@CRUPEST_DOCKER_DIR@@/git-server"
      dockerfile: Dockerfile
      pull: true
    hostname: git-server
    environment:
      - "CRUPEST_ROOT_URL=@@CRUPEST_ROOT_URL@@"
    volumes:
      - "./@@CRUPEST_DATA_GIT_DIR@@:/git"
    networks:
      default:
        ipv4_address: "172.21.5.4"
    restart: on-failure:3
  roundcubemail:
    image: "roundcube/roundcubemail"
    pull_policy: always
    hostname: roundcubemail
    env_file:
      - "./@@CRUPEST_GENERATED_DIR@@/envs/roundcubemail.env"
    volumes:
      - "./@@CRUPEST_GENERATED_DIR@@/my-roundcube.inc.php:/var/roundcube/config/my-roundcube.inc.php"
      - "./@@CRUPEST_DATA_SECRET_DIR@@/gnupg:/var/roundcube/enigma"
      - "./@@CRUPEST_DATA_ROUNDCUBE_DIR@@/www/html:/var/www/html"
      - "./@@CRUPEST_DATA_ROUNDCUBE_DIR@@/db:/var/roundcube/db"
      - "roundcubemail-temp:/tmp/roundcube-temp"
    networks:
      default:
        ipv4_address: "172.21.5.5"
    restart: on-failure:3
  v2ray:
    pull_policy: build
    build:
      context: "./@@CRUPEST_DOCKER_DIR@@/v2ray"
      dockerfile: Dockerfile
      pull: true
    hostname: v2ray
    env_file:
      - "./@@CRUPEST_GENERATED_DIR@@/envs/v2ray-common.env"
      - "./@@CRUPEST_GENERATED_DIR@@/envs/v2ray.env"
    networks:
      default:
        ipv4_address: "172.21.5.6"
    restart: "on-failure:3"
  auto-backup:
    pull_policy: build
    build:
      context: "./@@CRUPEST_DOCKER_DIR@@/auto-backup"
      dockerfile: Dockerfile
      pull: true
    env_file:
      - "./@@CRUPEST_GENERATED_DIR@@/envs/auto-backup.env"
    volumes:
      - "./data:/data:ro"
      - "./data/auto-backup:/data/auto-backup"
    restart: "on-failure:3"
volumes:
  roundcubemail-temp:
networks:
  default:
    enable_ipv6: false
    ipam:
      config:
        - subnet: "172.21.5.0/24"
          ip_range: "172.21.5.64/26"
 |