diff options
Diffstat (limited to 'services/templates/docker-compose.yaml.template')
-rw-r--r-- | services/templates/docker-compose.yaml.template | 141 |
1 files changed, 78 insertions, 63 deletions
diff --git a/services/templates/docker-compose.yaml.template b/services/templates/docker-compose.yaml.template index e133462..b81875b 100644 --- a/services/templates/docker-compose.yaml.template +++ b/services/templates/docker-compose.yaml.template @@ -3,9 +3,9 @@ services: nginx: pull_policy: build build: - context: ./@@CRUPEST_DOCKER_DIR@@/nginx + context: "./@@CRUPEST_DOCKER_DIR@@/nginx" additional_contexts: - - www=./www + - "www=./www" dockerfile: Dockerfile pull: true ports: @@ -13,102 +13,117 @@ services: - "443:443" - "443:443/udp" env_file: - - ./@@CRUPEST_GENERATED_DIR@@/envs/nginx.env - - ./@@CRUPEST_GENERATED_DIR@@/envs/v2ray-common.env + - "./@@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:/srv/acme:ro" - "./@@CRUPEST_DATA_CERTBOT_DIR@@/webroot:/var/www/certbot" - restart: on-failure:3 + networks: + default: + ipv4_address: "172.21.5.2" + restart: "on-failure:3" - v2ray: + mail-server: pull_policy: build build: - context: ./@@CRUPEST_DOCKER_DIR@@/v2ray + context: "./@@CRUPEST_DOCKER_DIR@@/mail-server" + additional_contexts: + - "deno=./deno" dockerfile: Dockerfile pull: true - hostname: v2ray + container_name: mail-server + hostname: mail + domainname: "@@CRUPEST_DOMAIN@@" env_file: - - ./@@CRUPEST_GENERATED_DIR@@/envs/v2ray-common.env - - ./@@CRUPEST_GENERATED_DIR@@/envs/v2ray.env - restart: on-failure:3 - - auto-backup: - pull_policy: build - env_file: ./@@CRUPEST_GENERATED_DIR@@/envs/auto-backup.env - build: - context: ./@@CRUPEST_DOCKER_DIR@@/auto-backup - dockerfile: Dockerfile - pull: true - volumes: - - "./data:/data:ro" - - "./data/auto-backup:/data/auto-backup" - restart: on-failure:3 - - mailserver: - image: docker.io/mailserver/docker-mailserver:latest - pull_policy: always - container_name: mailserver - hostname: mail.@@CRUPEST_DOMAIN@@ - env_file: ./@@CRUPEST_GENERATED_DIR@@/envs/mailserver.env - # More information about the mail-server ports: - # https://docker-mailserver.github.io/docker-mailserver/edge/config/security/understanding-the-ports/ - # To avoid conflicts with yaml base-60 float, DO NOT remove the quotation marks. + - "./@@CRUPEST_GENERATED_DIR@@/envs/mail-server-common.env" + - "./@@CRUPEST_GENERATED_DIR@@/envs/mail-server.env" ports: - - "25:25" # SMTP (explicit TLS => STARTTLS) - "143:143" # IMAP4 (explicit TLS => STARTTLS) - - "465:465" # ESMTP (implicit TLS) - - "587:587" # ESMTP (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_MAILSERVER_DIR@@/mail-data/:/var/mail/ - - ./@@CRUPEST_SERVICES_STATE_DIR@@/mail-state/:/var/mail-state/ - - ./@@CRUPEST_DATA_MAILSERVER_DIR@@/mail-logs/:/var/log/mail/ - - ./@@CRUPEST_DATA_MAILSERVER_DIR@@/config/:/tmp/docker-mailserver/ - - ./@@CRUPEST_DATA_CERTBOT_DIR@@/certs:/etc/letsencrypt - - /etc/localtime:/etc/localtime:ro - restart: on-failure:3 + - "./@@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 - healthcheck: - test: "ss --listening --tcp | grep -P 'LISTEN.+:smtp' || exit 1" - timeout: 3s - retries: 0 git-server: pull_policy: build build: - context: ./@@CRUPEST_DOCKER_DIR@@/git-server + context: "./@@CRUPEST_DOCKER_DIR@@/git-server" dockerfile: Dockerfile pull: true hostname: git-server environment: - - CRUPEST_ROOT_URL=@@CRUPEST_ROOT_URL@@ + - "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:latest + image: "roundcube/roundcubemail" pull_policy: always hostname: roundcubemail - env_file: ./@@CRUPEST_GENERATED_DIR@@/envs/roundcubemail.env + env_file: + - "./@@CRUPEST_GENERATED_DIR@@/envs/roundcubemail.env" volumes: - - ./@@CRUPEST_DATA_SECRET_DIR@@/gnupg:/gnupg - - ./@@CRUPEST_DATA_ROUNDCUBE_DIR@@/www/html:/var/www/html - - ./@@CRUPEST_DATA_ROUNDCUBE_DIR@@/db:/var/roundcube/db - - ./@@CRUPEST_DATA_ROUNDCUBE_DIR@@/config:/var/roundcube/config - - roundcubemail-temp:/tmp/roundcube-temp + - "./@@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 - 2fauth: - image: 2fauth/2fauth - pull_policy: always - hostname: 2fauth - env_file: ./@@CRUPEST_GENERATED_DIR@@/envs/2fauth.env + 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/2fauth:/2fauth + - "./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" |