heavenbean / RnD

0 stars 0 forks source link

[BLOCKSCOUT] Run in small servers #21

Open heavenbean opened 5 months ago

heavenbean commented 5 months ago

Build backend

cd docker-compose
docker-compose up
docker ps

Build frontend

Run them all

version: '3.9'

services:
  redis-db:
    extends:
      file: ./blockscout-master/docker-compose/services/redis.yml
      service: redis-db

  db-init:
    extends:
      file: ./blockscout-master/docker-compose/services/db.yml
      service: db-init

  db:
    depends_on:
      db-init:
        condition: service_completed_successfully
    extends:
      file: ./blockscout-master/docker-compose/services/db.yml
      service: db

  backend:
    image: blockscout:latest
    pull_policy: always
    restart: always
    stop_grace_period: 5m
    container_name: 'backend'
    command: sh -c "cd app && bin/blockscout eval \"Elixir.Explorer.ReleaseTasks.create_and_migrate()\" && bin/blockscout start"
    extra_hosts:
      - 'host.docker.internal:host-gateway'
    env_file:
      -  ./envs/common-blockscout.env
    volumes:
      - ./logs/:/app/logs/
    environment:
        ETHEREUM_JSONRPC_HTTP_URL: http://45.32.108.165:8545/
        ETHEREUM_JSONRPC_TRACE_URL: http://45.32.108.165:8545/
        ETHEREUM_JSONRPC_WS_URL: ws://45.32.108.165:8546/
        CHAIN_ID: '819'

  visualizer:
    extends:
      file: ./blockscout-master/docker-compose/services/visualizer.yml
      service: visualizer

  sig-provider:
    extends:
      file: ./blockscout-master/docker-compose/services/sig-provider.yml
      service: sig-provider

  frontend:
    depends_on:
      - backend
    image: local-blockscout-fe:latest
    platform: linux/amd64
    restart: always
    container_name: 'frontend'
    env_file:
      -  ./fe/.env

  stats-db-init:
    extends:
      file: ./blockscout-master/docker-compose/services/stats.yml
      service: stats-db-init

  stats-db:
    depends_on:
      stats-db-init:
        condition: service_completed_successfully
    extends:
      file: ./blockscout-master/docker-compose/services/stats.yml
      service: stats-db

  stats:
    depends_on:
      - stats-db
      - backend
    extends:
      file: ./blockscout-master/docker-compose/services/stats.yml
      service: stats

  proxy:
    depends_on:
      - backend
      - frontend
      - stats
    extends:
      file: ./blockscout-master/docker-compose/services/nginx.yml
      service: proxy
heavenbean commented 4 months ago

FE .env file

NEXT_PUBLIC_API_HOST=scan.plasmatools.xyz
NEXT_PUBLIC_API_PROTOCOL=https
NEXT_PUBLIC_STATS_API_HOST=https://scan.plasmatools.xyz:2053
NEXT_PUBLIC_NETWORK_NAME=Plasma Chain
NEXT_PUBLIC_NETWORK_SHORT_NAME=Plasma Chain
NEXT_PUBLIC_NETWORK_ID=5
NEXT_PUBLIC_NETWORK_CURRENCY_NAME=PLM
NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL=PLM
NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS=18
NEXT_PUBLIC_API_BASE_PATH=/
NEXT_PUBLIC_APP_HOST=scan.plasmatools.xyz
NEXT_PUBLIC_APP_PROTOCOL=https
NEXT_PUBLIC_HOMEPAGE_CHARTS=['daily_txs']
NEXT_PUBLIC_VISUALIZE_API_HOST=https://scan.plasmatools.xyz:2083
NEXT_PUBLIC_IS_TESTNET=true
NEXT_PUBLIC_API_WEBSOCKET_PROTOCOL=wss
NEXT_PUBLIC_API_SPEC_URL=https://raw.githubusercontent.com/blockscout/blockscout-api-v2-swagger/main/swagger.yaml

NEXT_PUBLIC_AD_BANNER_PROVIDER=none
NEXT_PUBLIC_AD_TEXT_PROVIDER=none
NEXT_PUBLIC_FOOTER_LINKS=https://c9496085881e4de3ab34f145eb1b9a78.api.mockbin.io/
heavenbean commented 4 months ago

NGINX config file

server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name scan.plasmatools.xyz;

        ssl_certificate /etc/letsencrypt/live/scan.plasmatools.xyz/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/scan.plasmatools.xyz/privkey.pem;

        location / {
                add_header 'Access-Control-Allow-Origin' "*";
                proxy_pass http://127.0.0.1:80;
        }
}

server {
        listen 2053 ssl;
        listen [::]:2053 ssl;
        server_name scan.plasmatools.xyz;

        ssl_certificate /etc/letsencrypt/live/scan.plasmatools.xyz/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/scan.plasmatools.xyz/privkey.pem;

        location / {
                add_header 'Access-Control-Allow-Origin' "*";
                proxy_pass http://127.0.0.1:8080;
        }
}

server {
        listen 2083 ssl;
        listen [::]:2083 ssl;
        server_name scan.plasmatools.xyz;

        ssl_certificate /etc/letsencrypt/live/scan.plasmatools.xyz/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/scan.plasmatools.xyz/privkey.pem;

        location / {
                add_header 'Access-Control-Allow-Origin' "*";
                proxy_pass http://127.0.0.1:8081;
        }
}