diff --git a/README.md b/README.md index f9dddd7b..4876d59d 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ POCKET_MAIN_SEEDS= POCKET_MAIN_GENESIS= POCKET_TEST_SEEDS= POCKET_TEST_GENESIS= +DOMAIN= ``` !!! I added a simple test-script (util/test_relay.sh) to see if the (geth)chains are synced. Dont try to relay before they are. diff --git a/docker-compose.yml b/docker-compose.yml index 04a72073..0e87055c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,34 @@ version: '3.1' services: + + traefik: + image: traefik:latest + container_name: traefik + restart: always + ports: + - "127.0.0.1:443:443" + - "127.0.0.1:8080:8080" + networks: + - web + - pocket + 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=sven@sven-holter.de" + - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" + volumes: + - "./traefik/letsencrypt:/letsencrypt" + - "/var/run/docker.sock:/var/run/docker.sock:ro" + geth-goerli: image: ethereum/client-go:latest expose: @@ -119,7 +147,13 @@ services: - ./bootstrap_skript/pokt_mainnet.sh:/home/app/.pocket/pokt_mainnet.sh - pocket-mainnet:/home/app/.pocket networks: + - web - pocket + labels: + - "traefik.enable=true" + - "traefik.http.routers.pocket-mainnet.rule=Host(`bsc-1.stakesquid-db.ml`)" + - "traefik.http.routers.pocket-mainnet.entrypoints=websecure" + - "traefik.http.routers.pocket-mainnet.tls.certresolver=myresolver" volumes: geth-goerli: @@ -132,5 +166,7 @@ volumes: pocket-mainnet: networks: + web: + external: true pocket: driver: bridge \ No newline at end of file diff --git a/traefik/traefik.toml b/traefik/traefik.toml new file mode 100644 index 00000000..cb8c4526 --- /dev/null +++ b/traefik/traefik.toml @@ -0,0 +1,153 @@ +################################################################ +# +# Configuration sample for Traefik v2. +# +# For Traefik v1: https://github.com/containous/traefik/blob/v1.7/traefik.sample.toml +# +################################################################ + +################################################################ +# Global configuration +################################################################ +[global] + checkNewVersion = true + sendAnonymousUsage = false + +################################################################ +# Entrypoints configuration +################################################################ + +# Entrypoints definition +# +# Optional +# Default: +[entryPoints] + [entryPoints.web] + address = ":80" + + [entryPoints.websecure] + address = ":443" + + +################################################################ +# Traefik logs configuration +################################################################ + +# Traefik logs +# Enabled by default and log to stdout +# +# Optional +# +[log] + + # Log level + # + # Optional + # Default: "ERROR" + # + level = "DEBUG" + + # Sets the filepath for the traefik log. If not specified, stdout will be used. + # Intermediate directories are created if necessary. + # + # Optional + # Default: os.Stdout + # + # filePath = "log/traefik.log" + + # Format is either "json" or "common". + # + # Optional + # Default: "common" + # + # format = "json" + +################################################################ +# Access logs configuration +################################################################ + +# Enable access logs +# By default it will write to stdout and produce logs in the textual +# Common Log Format (CLF), extended with additional fields. +# +# Optional +# +# [accessLog] + + # Sets the file path for the access log. If not specified, stdout will be used. + # Intermediate directories are created if necessary. + # + # Optional + # Default: os.Stdout + # + # filePath = "/path/to/log/log.txt" + + # Format is either "json" or "common". + # + # Optional + # Default: "common" + # + # format = "json" + +################################################################ +# API and dashboard configuration +################################################################ + +# Enable API and dashboard +[api] + + # Enable the API in insecure mode + # + # Optional + # Default: false + # + # insecure = true + + # Enabled Dashboard + # + # Optional + # Default: true + # + # dashboard = false + +################################################################ +# Ping configuration +################################################################ + +# Enable ping +[ping] + + # Name of the related entry point + # + # Optional + # Default: "traefik" + # + # entryPoint = "traefik" + +################################################################ +# Docker configuration backend +################################################################ + +# Enable Docker configuration backend +[providers.docker] + + # Docker server endpoint. Can be a tcp or a unix socket endpoint. + # + # Required + # Default: "unix:///var/run/docker.sock" + # + # endpoint = "tcp://10.10.10.10:2375" + + # Default host rule. + # + # Optional + # Default: "Host(`{{ normalize .Name }}`)" + # + # defaultRule = "Host(`{{ normalize .Name }}.docker.localhost`)" + + # Expose containers by default in traefik + # + # Optional + # Default: true + # + # exposedByDefault = false \ No newline at end of file