617 lines
16 KiB
YAML
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
|