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/nginx.env - ./@@CRUPEST_GENERATED_DIR@@/envs/v2ray-common.env volumes: - "./@@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 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 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. 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) - "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 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 dockerfile: Dockerfile pull: true hostname: git-server environment: - CRUPEST_ROOT_URL=@@CRUPEST_ROOT_URL@@ volumes: - "./@@CRUPEST_DATA_GIT_DIR@@:/git" restart: on-failure:3 roundcubemail: image: roundcube/roundcubemail:latest pull_policy: always hostname: roundcubemail 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 restart: on-failure:3 2fauth: image: 2fauth/2fauth pull_policy: always hostname: 2fauth env_file: ./@@CRUPEST_GENERATED_DIR@@/envs/2fauth.env volumes: - ./data/2fauth:/2fauth volumes: roundcubemail-temp: