diff --git a/docker-compose.base.yml b/docker-compose.base.yml index c3349689..0fc76c9a 100644 --- a/docker-compose.base.yml +++ b/docker-compose.base.yml @@ -2,38 +2,6 @@ version: '3.1' services: -### TRAEFIK -# Basic Auth not working. Problems with parsing var from .env - traefik: - image: traefik:latest - container_name: traefik - restart: always - ports: - - "443:443" - - "127.0.0.1:8080:8080" - networks: - - $NET_POKT - command: - - "--api=true" - - "--api.insecure=true" - - "--api.dashboard=true" - - "--log.level=DEBUG" - - "--providers.docker=true" - - "--providers.docker.exposedbydefault=false" - - "--entrypoints.websecure.address=:443" - - "--certificatesresolvers.myresolver.acme.tlschallenge=true" - # TESTING - # - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory" - - "--certificatesresolvers.myresolver.acme.email=$MAIL" - - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" - volumes: - - "./traefik/letsencrypt:/letsencrypt" - - "/var/run/docker.sock:/var/run/docker.sock:ro" - labels: - - "traefik.enable=true" - - "traefik.http.middlewares.auth.basicauth.users=$AUTH_HTTP" - - ### WIREGUARD wireguard: @@ -56,7 +24,7 @@ services: sysctls: - net.ipv4.conf.all.src_valid_mark=1 restart: unless-stopped - + ### MONITORING diff --git a/docker-compose.nodes.yml b/docker-compose.nodes.yml index 781625c1..c8e2f994 100644 --- a/docker-compose.nodes.yml +++ b/docker-compose.nodes.yml @@ -93,6 +93,7 @@ services: - $NET_POKT restart: unless-stopped + ### VOLUMES volumes: diff --git a/docker-compose.proxy.yml b/docker-compose.proxy.yml index 67f70a04..7df9766f 100644 --- a/docker-compose.proxy.yml +++ b/docker-compose.proxy.yml @@ -10,10 +10,9 @@ services: - 80 environment: - AUTH_HTTP=$AUTH_HTTP + - MAINNODE=$MAIN_NODE volumes: - ./haproxy/:/usr/local/etc/haproxy:ro - networks: - - $NET_POKT restart: unless-stopped diff --git a/haproxy/haproxy.cfg b/haproxy/haproxy.cfg index 9572390a..ffad8396 100644 --- a/haproxy/haproxy.cfg +++ b/haproxy/haproxy.cfg @@ -51,18 +51,81 @@ frontend rpc-frontend acl host_is_geth path_beg /geth acl host_is_rinkeby path_beg /rinkeby - use_backend default-cluster if host_is_erigon OR host_is_goerli OR host_is_avalanche OR host_is_ropsten OR host_is_geth OR host_is_rinkeby + use_backend erigon if host_is_erigon + use_backend goerli if host_is_goerli + use_backend avalanche if host_is_avalanche + use_backend ropsten if host_is_ropsten + use_backend geth if host_is_geth + use_backend rinkeby if host_is_rinkeby + default_backend backend-no-match backend backend-no-match http-request deny deny_status 400 -backend default-cluster +backend erigon mode http balance roundrobin option external-check external-check path "/usr/bin:/bin" - external-check command /usr/local/etc/eth-healthcheck.sh + external-check command /usr/local/etc/erigon-healthcheck.sh + + server %[env(MAINNODE)] %[env(MAINNODE)]:80 check inter 10000 fall 3 rise 2 maxconn 2000 + + +backend goerli + mode http + balance roundrobin + + option external-check + external-check path "/usr/bin:/bin" + external-check command /usr/local/etc/goerli-healthcheck.sh + + server %[env(MAINNODE)] %[env(MAINNODE)]:80 check inter 10000 fall 3 rise 2 maxconn 2000 + + +backend rinkeby + mode http + balance roundrobin + + option external-check + external-check path "/usr/bin:/bin" + external-check command /usr/local/etc/rinkeby-healthcheck.sh + + server %[env(MAINNODE)] %[env(MAINNODE)]:80 check inter 10000 fall 3 rise 2 maxconn 2000 + + +backend ropsten + mode http + balance roundrobin + + option external-check + external-check path "/usr/bin:/bin" + external-check command /usr/local/etc/ropsten-healthcheck.sh + + server %[env(MAINNODE)] %[env(MAINNODE)]:80 check inter 10000 fall 3 rise 2 maxconn 2000 + + +backend avalanche + mode http + balance roundrobin + + option external-check + external-check path "/usr/bin:/bin" + external-check command /usr/local/etc/avalanche-healthcheck.sh + + server %[env(MAINNODE)] %[env(MAINNODE)]:80 check inter 10000 fall 3 rise 2 maxconn 2000 + + +backend geth + mode http + balance roundrobin + + option external-check + external-check path "/usr/bin:/bin" + external-check command /usr/local/etc/geth-healthcheck.sh + + server %[env(MAINNODE)] %[env(MAINNODE)]:80 check inter 10000 fall 3 rise 2 maxconn 2000 + - #server 157.90.90.23 157.90.90.23:80 check inter 10000 fall 3 rise 2 maxconn 2000