version: "3.7" x-logging: &default-logging driver: "json-file" options: max-size: "200k" max-file: "10" networks: default: ipam: config: - subnet: 10.10.0.0/24 volumes: adguard: services: up: image: mercurykd/vpnbot-up:1.1 build: context: dockerfile dockerfile: nginx.dockerfile args: image: ${IMAGE} volumes: - ./config/.profile:/root/.ashrc:ro - ./config/upstream.conf:/etc/nginx/nginx.conf - ./scripts/start_upstream.sh:/start_upstream.sh - ./ssh:/ssh - ./config/sshd_config:/etc/ssh/sshd_config - ./logs/:/logs/ ports: - 443:443 hostname: upstream container_name: upstream-${VER} depends_on: php: condition: service_healthy ad: condition: service_started ss: condition: service_started environment: TZ: ${TZ} stop_grace_period: 1s command: ["/bin/sh", "/start_upstream.sh"] networks: default: ipv4_address: 10.10.0.10 logging: *default-logging ng: image: mercurykd/vpnbot-ng:1.1 build: context: dockerfile dockerfile: nginx.dockerfile args: image: ${IMAGE} volumes: - ./config/.profile:/root/.ashrc:ro - ./config/nginx.conf:/etc/nginx/nginx.conf - ./config/include.conf:/etc/nginx/include.conf - ./config/nginx_default.conf:/nginx_default.conf - ./scripts/start_ng.sh:/start_ng.sh - ./certs/:/certs/ - ./ssh:/ssh - ./config/sshd_config:/etc/ssh/sshd_config - ./logs/:/logs/ ports: - 80:80 hostname: nginx container_name: nginx-${VER} depends_on: up: condition: service_started environment: TZ: ${TZ} SSPORT: ${SSPORT} stop_grace_period: 1s command: ["/bin/sh", "/start_ng.sh"] networks: default: ipv4_address: 10.10.0.2 logging: *default-logging php: image: mercurykd/vpnbot-php:1.1 build: dockerfile: dockerfile/php.dockerfile args: image: ${IMAGE} volumes: - ./config/.profile:/root/.ashrc:ro - ./config/php.ini:/etc/php81/php.ini - ./config/:/config/ - ./certs/:/certs/ - ./ssh:/ssh - ./app:/app - ./logs/:/logs/ - ./scripts/start_php.sh:/start_php.sh - ./scripts/check_file.sh:/check_file.sh - ./version:/version - ./mirror:/mirror - ./.env:/mirror/.env environment: TZ: ${TZ} IP: ${IP} ADDRESS: ${WGADDRESS} WGPORT: ${WGPORT} SSPORT: ${SSPORT} TGPORT: ${TGPORT} hostname: php container_name: php-${VER} restart: unless-stopped stop_grace_period: 1s command: ["/bin/sh", "/start_php.sh"] working_dir: /app networks: default: ipv4_address: 10.10.0.7 extra_hosts: - "host.docker.internal:host-gateway" logging: *default-logging healthcheck: test: ["CMD", "/bin/sh", "/check_file.sh"] interval: 5s timeout: 5s retries: 5 proxy: image: mercurykd/vpnbot-ss:1.1 build: dockerfile: dockerfile/shadowsocks.dockerfile args: image: ${IMAGE} volumes: - ./config/.profile:/root/.ashrc:ro - ./config/sslocal.json:/config.json - ./ssh:/ssh - ./config/sshd_config:/etc/ssh/sshd_config - ./scripts/start_proxy.sh:/start_proxy.sh hostname: proxy container_name: proxy-${VER} depends_on: php: condition: service_healthy networks: default: ipv4_address: 10.10.0.3 environment: TZ: ${TZ} SSPORT: ${SSPORT} stop_grace_period: 1s command: ["/bin/sh", "/start_proxy.sh"] logging: *default-logging wg: image: mercurykd/vpnbot-wg:1.1 build: dockerfile: dockerfile/wireguard.dockerfile args: image: ${IMAGE} volumes: - ./config/.profile:/root/.ashrc:ro - ./config/wg0.conf:/etc/wireguard/wg0.conf - ./config/pac.json:/pac.json - ./scripts/start_wg.sh:/start_wg.sh - ./scripts/reset_wg.sh:/reset_wg.sh - ./scripts/block_torrent.sh:/block_torrent.sh - ./scripts/unblock_torrent.sh:/unblock_torrent.sh - ./scripts/block_exchange.sh:/block_exchange.sh - ./scripts/unblock_exchange.sh:/unblock_exchange.sh - ./ssh:/ssh - ./config/sshd_config:/etc/ssh/sshd_config hostname: wireguard container_name: wireguard-${VER} depends_on: php: condition: service_healthy ports: - ${WGPORT}:${WGPORT}/udp environment: TZ: ${TZ} WGPORT: ${WGPORT} ADDRESS: ${WGADDRESS} cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun stop_grace_period: 1s command: ["/bin/sh", "/start_wg.sh"] networks: default: ipv4_address: 10.10.0.4 logging: *default-logging ad: image: mercurykd/vpnbot-ad:1.1 build: dockerfile: dockerfile/adguard.dockerfile args: image: ${IMAGE} ports: - 853:853 volumes: - ./config/.profile:/root/.ashrc:ro - type: volume target: /opt/adguardhome/work source: adguard - ./ssh:/ssh - ./config/sshd_config:/etc/ssh/sshd_config - ./config/:/config/ - ./certs/:/certs/ - ./logs/:/logs/ - ./scripts/start_ad.sh:/start_ad.sh hostname: adguard container_name: adguard-${VER} depends_on: php: condition: service_healthy environment: TZ: ${TZ} stop_grace_period: 1s networks: default: ipv4_address: 10.10.0.5 cap_add: - NET_ADMIN entrypoint: ["/bin/sh", "/start_ad.sh"] logging: *default-logging ss: image: mercurykd/vpnbot-ss:1.1 build: dockerfile: dockerfile/shadowsocks.dockerfile args: image: ${IMAGE} volumes: - ./config/.profile:/root/.ashrc:ro - ./config/ssserver.json:/config.json - ./ssh:/ssh - ./config/sshd_config:/etc/ssh/sshd_config - ./scripts/start_ss.sh:/start_ss.sh hostname: shadowsocks container_name: shadowsocks-${VER} depends_on: php: condition: service_healthy ports: - ${SSPORT}:${SSPORT}/tcp - ${SSPORT}:${SSPORT}/udp environment: TZ: ${TZ} SSPORT: ${SSPORT} stop_grace_period: 1s command: ["/bin/sh", "/start_ss.sh"] networks: default: ipv4_address: 10.10.0.6 logging: *default-logging tg: image: mercurykd/vpnbot-tg:1.1 build: dockerfile: dockerfile/telegram.dockerfile volumes: - ./config/.profile:/root/.ashrc:ro - ./ssh:/ssh - ./config/sshd_config:/etc/ssh/sshd_config - ./scripts/start_tg.sh:/start_tg.sh - ./config/mtprotosecret:/mtprotosecret hostname: telegram container_name: mtproto-${VER} depends_on: php: condition: service_healthy ports: - ${TGPORT}:${TGPORT} environment: TZ: ${TZ} IP: ${IP} TGPORT: ${TGPORT} stop_grace_period: 1s command: ["/bin/sh", "/start_tg.sh"] networks: default: ipv4_address: 10.10.0.8 logging: *default-logging xr: image: mercurykd/vpnbot-xr:1.1 build: dockerfile: dockerfile/xray.dockerfile args: image: ${IMAGE} volumes: - ./config/.profile:/root/.ashrc:ro - ./ssh:/ssh - ./config/sshd_config:/etc/ssh/sshd_config - ./config/xray.json:/xray.json - ./scripts/start_xray.sh:/start_xray.sh hostname: xray container_name: xray-${VER} depends_on: php: condition: service_healthy environment: TZ: ${TZ} stop_grace_period: 1s command: ["/bin/sh", "/start_xray.sh"] networks: default: ipv4_address: 10.10.0.9 logging: *default-logging oc: image: mercurykd/vpnbot-oc:1.1 build: dockerfile: dockerfile/ocserv.dockerfile args: image: ${IMAGE} volumes: - ./config/.profile:/root/.ashrc:ro - ./ssh:/ssh - ./config/sshd_config:/etc/ssh/sshd_config - ./config:/etc/ocserv - ./certs:/certs - ./scripts/start_oc.sh:/start_oc.sh hostname: ocserv container_name: openconnect-${VER} depends_on: php: condition: service_healthy environment: TZ: ${TZ} ENV: /root/.ashrc stop_grace_period: 1s command: ["/bin/sh", "/start_oc.sh"] cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun networks: default: ipv4_address: 10.10.0.11 logging: *default-logging np: image: mercurykd/vpnbot-np:1.1 build: dockerfile: dockerfile/naive.dockerfile args: image: ${IMAGE} volumes: - ./config/.profile:/root/.ashrc:ro - ./ssh:/ssh - ./config/sshd_config:/etc/ssh/sshd_config - ./config:/config - ./certs:/certs - ./scripts/start_np.sh:/start_np.sh hostname: naive container_name: naive-${VER} depends_on: php: condition: service_healthy environment: TZ: ${TZ} ENV: /root/.ashrc stop_grace_period: 1s command: ["/bin/sh", "/start_np.sh"] cap_add: - NET_ADMIN networks: default: ipv4_address: 10.10.0.12 logging: *default-logging