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: build: context: dockerfile dockerfile: nginx.dockerfile 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 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: build: context: dockerfile dockerfile: nginx.dockerfile 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 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: build: dockerfile: dockerfile/php.dockerfile volumes: - ./config/.profile:/root/.ashrc:ro - ./config/php.ini:/etc/php82/php.ini - ./config/clients.json:/config/clients.json - ./config/pac.json:/config/pac.json - ./config/unit.json:/config/unit.json - ./config/AdGuardHome.yaml:/config/AdGuardHome.yaml - ./config/nginx.conf:/config/nginx.conf - ./config/upstream.conf:/config/upstream.conf - ./config/nginx_default.conf:/config/nginx_default.conf - ./config/ssserver.json:/config/ssserver.json - ./config/sslocal.json:/config/sslocal.json - ./config/mtprotosecret:/config/mtprotosecret - ./config/xray.json:/config/xray.json - ./certs/:/certs/ - type: volume target: /config/adguard source: adguard - ./ssh:/ssh - ./app:/app - ./logs/:/logs/ - ./scripts/start_php.sh:/start_php.sh - ./scripts/check_file.sh:/check_file.sh - ./version:/version environment: TZ: ${TZ} IP: ${IP} ADDRESS: ${WGADDRESS} WGPORT: ${WGPORT} SSPORT: ${SSPORT} TGPORT: ${TGPORT} hostname: php 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: build: dockerfile: dockerfile/shadowsocks.dockerfile 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 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: build: dockerfile: dockerfile/wireguard.dockerfile 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 depends_on: php: condition: service_healthy ports: - ${WGPORT}:${WGPORT}/udp environment: TZ: ${TZ} WGPORT: ${WGPORT} ADDRESS: ${WGADDRESS} cap_add: - NET_ADMIN stop_grace_period: 1s command: ["/bin/sh", "/start_wg.sh"] networks: default: ipv4_address: 10.10.0.4 logging: *default-logging ad: build: dockerfile: dockerfile/adguard.dockerfile ports: - 853:853 volumes: - ./config/.profile:/root/.ashrc:ro - type: volume target: /opt/adguardhome source: adguard - ./ssh:/ssh - ./config/sshd_config:/etc/ssh/sshd_config - ./certs/:/certs/ - ./logs/:/logs/ - ./scripts/start_ad.sh:/start_ad.sh hostname: adguard 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 command: ["/bin/sh", "/start_ad.sh"] logging: *default-logging ss: build: dockerfile: dockerfile/shadowsocks.dockerfile 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 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: 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 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: build: dockerfile: dockerfile/xray.dockerfile 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 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