Files
darkproxy/docker-compose.lock.yml
T
auto-ci b6d49549fe
Configuration validation / lint (push) Has been cancelled
Configuration validation / smoke (push) Has been cancelled
Pin deployment images and refresh docs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-02 15:23:53 -04:00

617 lines
16 KiB
YAML

name: darkproxy
services:
3proxy_exporter:
build:
context: /home/blade/darkproxy/monitor
dockerfile: Dockerfile
container_name: dark3proxy-exporter
depends_on:
dark3proxy:
condition: service_started
required: true
image: darkproxy-3proxy-exporter:local
networks:
darkproxy:
ipv4_address: 10.5.0.20
platform: linux/amd64
security_opt:
- no-new-privileges:true
alfis:
container_name: darkalfis
dns:
- 10.5.0.6
image: cofob/alfis
networks:
darkproxy:
ipv4_address: 10.5.0.3
platform: linux/amd64
restart: unless-stopped
security_opt:
- no-new-privileges:true
stop_grace_period: 10s
sysctls:
net.ipv6.conf.all.disable_ipv6: "0"
volumes:
- type: volume
source: darkalfis_data
target: /storage
volume: {}
coredns:
build:
context: /home/blade/darkproxy/PopuraDNS
dockerfile: Dockerfile
cpus: 1
container_name: darkdns
logging:
driver: json-file
options:
max-file: "3"
max-size: 10m
mem_limit: "268435456"
mem_reservation: "67108864"
networks:
darkproxy:
ipv4_address: 10.5.0.4
platform: linux/amd64
restart: unless-stopped
security_opt:
- no-new-privileges:true
sysctls:
net.ipv6.conf.all.disable_ipv6: "0"
dark3proxy:
build:
context: /home/blade/darkproxy/3proxy
dockerfile: Dockerfile
cap_add:
- NET_ADMIN
cpus: 1
container_name: dark3proxy
devices:
- source: /dev/net/tun
target: /dev/net/tun
permissions: rwm
dns:
- 10.5.0.6
dns_search:
- internal.namespace
environment:
PROXY_REQUIRE_AUTH: "true"
PROXY_USERS_FILE: /run/secrets/PROXY_USERS
ROUTER_I2P_MAP_FILE: /var/lib/i2pdns/map.json
ROUTER_I2P_POOL_CIDR: 172.31.0.0/16
ROUTER_NO_AUTH_CIDRS: 192.168.1.0/24
ROUTER_REQUIRE_AUTH: "true"
ROUTER_USERS_FILE: /run/secrets/PROXY_USERS
YGG_CONNECT_WAIT_SECONDS: "8"
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
timeout: 10s
interval: 30s
retries: 3
start_period: 45s
mem_limit: "268435456"
mem_reservation: "67108864"
networks:
darkproxy:
ipv4_address: 10.5.0.8
platform: linux/amd64
ports:
- mode: ingress
target: 1080
published: "2000"
protocol: tcp
- mode: ingress
host_ip: 127.0.0.1
target: 8161
published: "2002"
protocol: tcp
restart: unless-stopped
secrets:
- source: PROXY_USERS
target: /run/secrets/PROXY_USERS
security_opt:
- no-new-privileges:true
sysctls:
net.ipv6.conf.all.disable_ipv6: "0"
volumes:
- type: bind
source: /home/blade/darkproxy/3proxy/first-instanse.cfg
target: /etc/3proxy/first-instanse.cfg
bind:
create_host_path: true
- type: bind
source: /home/blade/darkproxy/3proxy/second-instanse.cfg
target: /etc/3proxy/second-instanse.cfg
bind:
create_host_path: true
- type: bind
source: /home/blade/darkproxy/3proxy/yggdrasil.conf
target: /etc/yggdrasil/yggdrasil.conf
bind:
create_host_path: true
- type: volume
source: i2p_dns_map
target: /var/lib/i2pdns
read_only: true
volume: {}
emc:
cpus: 1
command:
- -datadir=/emc/data
- -conf=/emc/emercoin.conf
- -printtoconsole
container_name: darkemer
image: wg00/emercoin:0.8.4
mem_limit: "1073741824"
mem_reservation: "268435456"
networks:
darkproxy:
ipv4_address: 10.5.0.9
platform: linux/amd64
restart: unless-stopped
security_opt:
- no-new-privileges:true
stop_grace_period: 30s
volumes:
- type: volume
source: emc_data
target: /emc/data
volume: {}
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
ensdns:
build:
context: /home/blade/darkproxy/ensdns
dockerfile: Dockerfile
cpus: 0.5
container_name: darkens
environment:
ENS_RPC_URL: https://ethereum-rpc.publicnode.com
ENSDNS_TTL: "60"
mem_limit: "268435456"
mem_reservation: "67108864"
networks:
darkproxy:
ipv4_address: 10.5.0.11
platform: linux/amd64
restart: unless-stopped
security_opt:
- no-new-privileges:true
sysctls:
net.ipv6.conf.all.disable_ipv6: "0"
i2pd_yggdrasil:
build:
context: /home/blade/darkproxy/i2pd_yggdrasil_docker/src
dockerfile: Dockerfile
cap_add:
- NET_ADMIN
cpus: 4
container_name: darki2p
devices:
- source: /dev/net/tun
target: /dev/net/tun
permissions: rwm
environment:
tz: /run/secrets/tz
healthcheck:
test:
- CMD
- bash
- -c
- pgrep i2pd && pgrep yggdrasil
timeout: 10s
interval: 30s
retries: 3
start_period: 15m0s
mem_limit: "2147483648"
mem_reservation: "536870912"
mac_address: ce:22:b8:0e:6e:78
networks:
darkproxy:
ipv4_address: 10.5.0.2
platform: linux/amd64
ports:
- mode: ingress
target: 7070
published: "2001"
protocol: tcp
- mode: ingress
target: 10765
published: "10765"
protocol: tcp
- mode: ingress
target: 10654
published: "10654"
protocol: tcp
privileged: true
restart: unless-stopped
secrets:
- source: tz
target: /run/secrets/tz
sysctls:
net.ipv6.conf.all.disable_ipv6: "0"
i2pdns:
build:
context: /home/blade/darkproxy/i2pdns
dockerfile: Dockerfile
cpus: 0.5
container_name: darki2pdns
environment:
I2PDNS_LISTEN_HOST: 0.0.0.0
I2PDNS_LISTEN_PORT: "53"
I2PDNS_MAP_FILE: /var/lib/i2pdns/map.json
I2PDNS_POOL_CIDR: 172.31.0.0/16
I2PDNS_TTL: "60"
mem_limit: "134217728"
mem_reservation: "67108864"
networks:
darkproxy:
ipv4_address: 10.5.0.16
platform: linux/amd64
restart: unless-stopped
security_opt:
- no-new-privileges:true
sysctls:
net.ipv6.conf.all.disable_ipv6: "0"
volumes:
- type: volume
source: i2p_dns_map
target: /var/lib/i2pdns
volume: {}
lokinet:
build:
context: /home/blade/darkproxy/lokinet
dockerfile: Dockerfile
cap_add:
- NET_ADMIN
- NET_BIND_SERVICE
cpus: 1
container_name: darklokinet
devices:
- source: /dev/net/tun
target: /dev/net/tun
permissions: rwm
mem_limit: "268435456"
mem_reservation: "67108864"
networks:
darkproxy:
ipv4_address: 10.5.0.14
platform: linux/amd64
restart: unless-stopped
security_opt:
- no-new-privileges:true
sysctls:
net.ipv6.conf.all.disable_ipv6: "0"
namecoind:
cpus: 2
container_name: darknamecoind
entrypoint:
- /bin/sh
- -ec
- |
exec /usr/local/bin/namecoind \
-server=1 \
-daemon=0 \
-datadir=/data \
-rpcbind=0.0.0.0 \
-rpcallowip=10.5.0.0/16 \
-rpcuser=namecoinrpc \
"-rpcpassword=$$(cat /run/secrets/NAMECOIN_RPC_PASSWORD)" \
-printtoconsole \
-txindex=1 \
-dnsseed=1 \
-addnode=162.212.154.52:8334 \
-addnode=162.210.196.27:8334 \
-addnode=23.108.191.178:8334 \
-addnode=3.228.193.128:8334 \
-addnode=3.66.245.44:8334 \
-addnode=212.51.144.42:8334
image: ukd1/namecoind@sha256:6fdf63f61f687ee639893a8cdcd910bb24c5eb3a3493ff72142c911d7019200b
mem_limit: "2147483648"
mem_reservation: "536870912"
networks:
darkproxy:
ipv4_address: 10.5.0.13
platform: linux/amd64
restart: unless-stopped
secrets:
- source: NAMECOIN_RPC_PASSWORD
target: /run/secrets/NAMECOIN_RPC_PASSWORD
security_opt:
- no-new-privileges:true
sysctls:
net.ipv6.conf.all.disable_ipv6: "0"
volumes:
- type: volume
source: namecoin_data
target: /data
volume: {}
namecoindns:
build:
context: /home/blade/darkproxy/namecoindns
dockerfile: Dockerfile
cpus: 0.5
container_name: darknamecoin
depends_on:
namecoind:
condition: service_started
required: true
environment:
NAMECOIN_RPC_PASSWORD_FILE: /run/secrets/NAMECOIN_RPC_PASSWORD
NAMECOIN_RPC_TIMEOUT: "8"
NAMECOIN_RPC_URL: http://darknamecoind:8336/
NAMECOIN_RPC_USER: namecoinrpc
mem_limit: "268435456"
mem_reservation: "67108864"
networks:
darkproxy:
ipv4_address: 10.5.0.12
platform: linux/amd64
restart: unless-stopped
secrets:
- source: NAMECOIN_RPC_PASSWORD
target: /run/secrets/NAMECOIN_RPC_PASSWORD
security_opt:
- no-new-privileges:true
sysctls:
net.ipv6.conf.all.disable_ipv6: "0"
pihole:
cap_add:
- NET_ADMIN
- SYS_NICE
cpus: 1.5
container_name: darkpihole
environment:
FTLCONF_database_network_parseARPcache: "false"
FTLCONF_dns_upstreams: 10.5.0.4#53
PIHOLE_DNS_: 10.5.0.4
TEMPERATUREUNIT: f
TZ: America/Detroit
WEBPASSWORD_FILE: /run/secrets/PIHOLE_WEBPASSWORD
WEBTHEME: lcars
healthcheck:
test:
- CMD
- dig
- +short
- +norecurse
- +timeout=2
- '@127.0.0.1'
- google.com
timeout: 10s
interval: 1m0s
retries: 3
start_period: 30s
image: pihole/pihole@sha256:1c32c36b862a12762656b6471c854cebc01fe945639ba3a893611337c2c95e99
mem_limit: "536870912"
mem_reservation: "134217728"
networks:
darkproxy:
ipv4_address: 10.5.0.6
platform: linux/amd64
ports:
- mode: ingress
target: 53
published: "53"
protocol: tcp
- mode: ingress
target: 53
published: "53"
protocol: udp
- mode: ingress
host_ip: 127.0.0.1
target: 80
published: "2003"
protocol: tcp
restart: unless-stopped
secrets:
- source: PIHOLE_WEBPASSWORD
target: /run/secrets/PIHOLE_WEBPASSWORD
security_opt:
- no-new-privileges:true
sysctls:
net.ipv6.conf.all.disable_ipv6: "0"
volumes:
- type: bind
source: /home/blade/darkproxy/pihole/etc-pihole
target: /etc/pihole
bind:
create_host_path: true
- type: bind
source: /home/blade/darkproxy/pihole/etc-dnsmasq.d
target: /etc/dnsmasq.d
bind:
create_host_path: true
prometheus:
container_name: darkprom
image: prom/prometheus@sha256:e4254400b85610324913f0dc4acf92603d9984e7519414c5a12811aa6146acc3
networks:
darkproxy:
ipv4_address: 10.5.0.21
platform: linux/amd64
ports:
- mode: ingress
host_ip: 127.0.0.1
target: 9090
published: "9090"
protocol: tcp
security_opt:
- no-new-privileges:true
volumes:
- type: bind
source: /home/blade/darkproxy/monitor/prometheus.yml
target: /etc/prometheus/prometheus.yml
read_only: true
bind:
create_host_path: true
tailscale:
build:
context: /home/blade/darkproxy/tailscale
dockerfile: Dockerfile
cap_add:
- NET_ADMIN
- SYS_MODULE
container_name: darkscale
devices:
- source: /dev/net/tun
target: /dev/net/tun
permissions: rwm
environment:
TS_AUTHKEY: tskey-YOUR-AUTH-KEY-HERE
TS_EXTRA_ARGS: --accept-dns=false --advertise-exit-node
TS_STATE_DIR: /var/lib/tailscale
hostname: darkproxy-exit
networks:
darkproxy:
ipv4_address: 10.5.0.10
platform: linux/amd64
restart: unless-stopped
security_opt:
- no-new-privileges:true
sysctls:
net.ipv4.ip_forward: "1"
net.ipv6.conf.all.forwarding: "1"
volumes:
- type: volume
source: tailscale_data
target: /var/lib/tailscale
volume: {}
tor_yggdrasil:
build:
context: /home/blade/darkproxy/tor_yggdrasil_docker
dockerfile: Dockerfile
cpus: 2
command:
- -f
- /etc/tor/torrc
container_name: darktor
dns:
- 10.5.0.6
entrypoint:
- tor
mem_limit: "1073741824"
mem_reservation: "268435456"
networks:
darkproxy:
ipv4_address: 10.5.0.7
platform: linux/amd64
ports:
- mode: ingress
host_ip: 127.0.0.1
target: 9053
published: "2006"
protocol: udp
restart: unless-stopped
security_opt:
- no-new-privileges:true
sysctls:
net.ipv6.conf.all.disable_ipv6: "0"
volumes:
- type: bind
source: /home/blade/darkproxy/tor_yggdrasil_docker/torrc
target: /etc/tor/torrc
read_only: true
bind:
create_host_path: true
unbound:
cpus: 4
container_name: darkunbound
image: mvance/unbound@sha256:76906da36d1806f3387338f15dcf8b357c51ce6897fb6450d6ce010460927e90
mem_limit: "805306368"
mem_reservation: "268435456"
networks:
darkproxy:
ipv4_address: 10.5.0.5
platform: linux/amd64
restart: unless-stopped
security_opt:
- no-new-privileges:true
sysctls:
net.ipv6.conf.all.disable_ipv6: "0"
volumes:
- type: bind
source: /home/blade/darkproxy/unbound/unbound.conf
target: /opt/unbound/etc/unbound/unbound.conf
read_only: true
- type: bind
source: /home/blade/darkproxy/unbound/forward-records.conf
target: /opt/unbound/etc/unbound/forward-records.conf
bind:
create_host_path: true
- type: bind
source: /home/blade/darkproxy/unbound/a-records.conf
target: /opt/unbound/etc/unbound/a-records.conf
bind:
create_host_path: true
- type: bind
source: /home/blade/darkproxy/unbound/srv-records.conf
target: /opt/unbound/etc/unbound/srv-records.conf
bind:
create_host_path: true
zildns:
build:
context: /home/blade/darkproxy/zildns
dockerfile: Dockerfile
cpus: 0.5
container_name: darkzil
environment:
ZILDNS_CACHE_SECONDS: "300"
ZILDNS_PREWARM_DOMAIN: brad.zil
ZILDNS_TTL: "120"
ZILDNS_ZNS_NETWORK: mainnet
ZILDNS_ZNS_URL: https://api.zilliqa.com
mem_limit: "268435456"
mem_reservation: "67108864"
networks:
darkproxy:
ipv4_address: 10.5.0.15
platform: linux/amd64
restart: unless-stopped
security_opt:
- no-new-privileges:true
sysctls:
net.ipv6.conf.all.disable_ipv6: "0"
networks:
darkproxy:
name: darkproxy_darkproxy
driver: bridge
ipam:
config:
- subnet: 10.5.0.0/16
gateway: 10.5.0.1
- subnet: 2001:0BC5::/112
gateway: 2001:0BC5::1
enable_ipv6: true
volumes:
darkalfis_data:
name: darkalfis_data
emc_data:
name: emc_data
i2p_dns_map:
name: i2p_dns_map
namecoin_data:
name: namecoin_data
tailscale_data:
name: tailscale_data
secrets:
NAMECOIN_RPC_PASSWORD:
name: darkproxy_NAMECOIN_RPC_PASSWORD
file: /home/blade/darkproxy/secrets/namecoin_rpc_password.txt
PIHOLE_WEBPASSWORD:
name: darkproxy_PIHOLE_WEBPASSWORD
file: /home/blade/darkproxy/secrets/pihole_webpassword.txt
PROXY_USERS:
name: darkproxy_PROXY_USERS
file: /home/blade/darkproxy/secrets/3proxy_users.txt
tz:
name: darkproxy_tz
file: /home/blade/darkproxy/secrets/tz.txt