services: dark3proxy: container_name: dark3proxy build: context: ./3proxy/. platform: linux/amd64 cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun dns: - "10.5.0.6" dns_search: internal.namespace #namespace used in internal DNS environment: YGG_CONNECT_WAIT_SECONDS: "8" volumes: - "./3proxy/first-instanse.cfg:/etc/3proxy/first-instanse.cfg" - "./3proxy/second-instanse.cfg:/etc/3proxy/second-instanse.cfg" - "./3proxy/yggdrasil.conf:/etc/yggdrasil/yggdrasil.conf" restart: unless-stopped healthcheck: test: ["CMD", "bash", "-lc", "pgrep -f 'yggdrasil -useconffile' >/dev/null && pgrep -f '3proxy /etc/3proxy/second-instanse.cfg' >/dev/null && pgrep -f '3proxy /etc/3proxy/first-instanse.cfg' >/dev/null && pgrep -f 'python3 /usr/local/bin/socks_router.py' >/dev/null"] interval: 30s timeout: 10s retries: 3 start_period: 45s sysctls: - "net.ipv6.conf.all.disable_ipv6=0" ports: - "2000:1080" # primary host SOCKS via dark3proxy (externally reachable) - "2002:8161" # 3proxy admin page networks: darkproxy: ipv4_address: 10.5.0.8 i2pd_yggdrasil: container_name: darki2p build: context: ./i2pd_yggdrasil_docker/src dockerfile: Dockerfile platform: linux/amd64 privileged: true cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun volumes: - "./i2pd_yggdrasil_docker/src/entrypoint.sh:/entrypoint.sh:ro" ports: # I2P Service Ports # - "2827:2827" # BOB Bridge # - "4444:4444" # HTTP Proxy # - "4447:4447" # SOCKS Proxy - "2001:7070" # Webconsole # - "7650:7650" # I2PControl # - "7654:7654" # I2CP # - "7656:7656" # SAM Bridge (TCP) - "10765:10765" # Main I2P Listener # [dns] section enabled in i2pd.conf; DNS port is 53 (accessible internally at 10.5.0.2:53) # mapping to host is possible if desired, e.g. 10853:53/udp # Yggdrasil Ports - "10654:10654" # Yggdrasil Listener environment: tz: /run/secrets/tz # Lower-intensity peer selection for faster readiness in lock workflow. YGG_PEER_PARALLEL: "2" YGG_PEER_PINGS: "3" YGG_PEER_BEST: "4" YGG_PEER_MAX_FROM_COUNTRY: "1" YGG_PEER_PING_INTERVAL: "0.3" YGG_CONNECT_WAIT_SECONDS: "20" secrets: - tz restart: unless-stopped healthcheck: test: ["CMD", "bash", "-c", "pgrep i2pd && pgrep yggdrasil"] interval: 30s timeout: 10s retries: 3 start_period: 15m sysctls: - "net.ipv6.conf.all.disable_ipv6=0" mac_address: ce:22:b8:0e:6e:78 networks: darkproxy: ipv4_address: 10.5.0.2 tor_yggdrasil: build: context: ./tor_yggdrasil_docker dockerfile: Dockerfile platform: linux/amd64 # image: tor_yggdrasil:latest # container_name: tor_over_yggdrasil container_name: darktor entrypoint: ["tor"] command: ["-f", "/etc/tor/torrc"] # platform removed; image is amd64-only security_opt: - no-new-privileges:true # Security enhancement - prevent privilege esca> volumes: - "./tor_yggdrasil_docker/torrc:/etc/tor/torrc:ro" ports: - "127.0.0.1:2006:9053/udp" # direct Tor DNSPort restart: unless-stopped # Auto-restart unless manually stopped dns: - "10.5.0.6" sysctls: - "net.ipv6.conf.all.disable_ipv6=0" networks: darkproxy: ipv4_address: 10.5.0.7 alfis: image: cofob/alfis platform: linux/amd64 # platform removed; image is amd64 only container_name: darkalfis volumes: - darkalfis_data:/storage restart: unless-stopped stop_grace_period: 10s dns: - "10.5.0.6" sysctls: - "net.ipv6.conf.all.disable_ipv6=0" networks: darkproxy: ipv4_address: 10.5.0.3 coredns: # image: darkdns build: context: ./PopuraDNS dockerfile: Dockerfile platform: linux/amd64 container_name: darkdns restart: unless-stopped sysctls: - "net.ipv6.conf.all.disable_ipv6=0" logging: driver: "json-file" options: max-size: "10m" # Maximum log file size max-file: "3" # Maximum of 3 rotating log files networks: darkproxy: ipv4_address: 10.5.0.4 unbound: container_name: darkunbound image: mvance/unbound:latest platform: linux/amd64 # platform removed; image is amd64-only sysctls: - "net.ipv6.conf.all.disable_ipv6=0" networks: darkproxy: ipv4_address: 10.5.0.5 volumes: - type: bind read_only: true source: ./unbound/unbound.conf target: /opt/unbound/etc/unbound/unbound.conf - "./unbound/forward-records.conf:/opt/unbound/etc/unbound/forward-records.conf" - "./unbound/a-records.conf:/opt/unbound/etc/unbound/a-records.conf" # ports: # - "5053:5053/tcp" # - "5053:5053/udp" # healthcheck: # disable: true restart: unless-stopped pihole: container_name: darkpihole image: pihole/pihole:latest platform: linux/amd64 # For DHCP it is recommended to remove these ports and instead add: network_mode: "host" ports: # DNS Ports - "53:53/tcp" - "53:53/udp" # Default HTTP Port # - "80:80/tcp" # Default HTTPs Port. FTL will generate a self-signed certificate # - "443:443/tcp # Uncomment the line below if you are using Pi-hole as your DHCP server # - "67:67/udp" # Uncomment the line below if you are using Pi-hole as your NTP server # - "123:123/udp" - "2003:80/tcp" # pihole web port environment: # Set the appropriate timezone for your location (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), e.g: TZ: 'America/Detroit' # WEBPASSWORD: 'set a secure password here or it will be random' # FTLCONF_webserver_api_password: 'darkproxy' # If using Docker's default `bridge` network setting the dns listening mode should be set to 'all' # FTLCONF_dns_listeningMode: 'all' PIHOLE_DNS_: 10.5.0.4 TEMPERATUREUNIT: f WEBTHEME: lcars WEBPASSWORD: darkproxy FTLCONF_dns_upstreams: coredns # Volumes store your data between container upgrades volumes: # For persisting Pi-hole's databases and common configuration file - './pihole/etc-pihole:/etc/pihole' # Uncomment the below if you have custom dnsmasq config files that you want to persist. Not needed for most starting fresh with Pi-hole v6. If you're upgrading from v5 you and have used this directory before, you should keep it enabled for the first v6 container start to allow for a complete migration. It can be removed afterwards. Needs environment variable FTLCONF_misc_etc_dnsmasq_d: 'true' - './pihole/etc-dnsmasq.d:/etc/dnsmasq.d' cap_add: # See https://github.com/pi-hole/docker-pi-hole#note-on-capabilities # Required if you are using Pi-hole as your DHCP server, else not needed - NET_ADMIN # Required if you are using Pi-hole as your NTP client to be able to set the host's system time # - SYS_TIME # Optional, if Pi-hole should get some more processing time - SYS_NICE restart: unless-stopped # Recommended but not required (DHCP needs NET_ADMIN) sysctls: - "net.ipv6.conf.all.disable_ipv6=0" healthcheck: test: ["CMD", "dig", "+short", "+norecurse", "+timeout=2", "@127.0.0.1", "google.com"] interval: 1m timeout: 10s retries: 3 start_period: 30s networks: darkproxy: ipv4_address: 10.5.0.6 geth: image: ethereum/client-go:latest platform: linux/amd64 container_name: darkgeth command: - --syncmode=snap - --http - --http.addr=0.0.0.0 - --http.port=8545 - --http.api=eth,net,web3 - --cache=256 networks: darkproxy: ipv4_address: 10.5.0.10 restart: unless-stopped stop_grace_period: 30s healthcheck: test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8545"] interval: 30s timeout: 10s retries: 3 start_period: 120s sysctls: - "net.ipv6.conf.all.disable_ipv6=0" emc: image: wg00/emercoin:0.8.4 platform: linux/amd64 container_name: darkemer volumes: - emc_data:/emc/data - /etc/localtime:/etc/localtime:ro command: - -datadir=/emc/data - -conf=/emc/emercoin.conf - -printtoconsole networks: darkproxy: ipv4_address: 10.5.0.9 restart: unless-stopped stop_grace_period: 30s volumes: darkalfis_data: name: darkalfis_data emc_data: name: emc_data tor-data: driver: local networks: darkproxy: # name: darkproxy enable_ipv6: true driver: bridge ipam: config: - subnet: 10.5.0.0/16 gateway: 10.5.0.1 - subnet: 2001:0BC5::/112 gateway: 2001:0BC5::1 secrets: tz: file: ./secrets/tz.txt YGGDRASIL_GENERATE_KEYS: file: ./secrets/YGGDRASIL_GENERATE_KEYS.txt