node Docker & Self-Hosted Deployment

GitHub

Node.js JavaScript runtime โœจ๐Ÿข๐Ÿš€โœจ

118,905 stars JavaScript JavaScript 1 file ยท ~61,938 tokens #javascript#js#linux#macos#mit#node#nodejs#runtime
RAW Compose
1. Pull Image (DOCKERHUB) docker pull us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node
2. Docker Run (1-Click Launch) docker run -d --name node -p 7300:7300 --restart always us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.19.8
3. Podman Run podman run -d --name node -p 7300:7300 --restart always us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.19.8
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.19.8
5. ORAS Pull (OCI Artifact) oras pull us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.19.8
6. Compose Deployment docker compose up -d
docker-compose.yml
Download .yml
services:
  healthcheck:
    image: ethereumoptimism/replica-healthcheck:${IMAGE_TAG__HEALTHCHECK:-latest}
    platform: linux/amd64
    restart: unless-stopped
    env_file:
      - ./envs/common/healthcheck.env
      - ./envs/${NETWORK_NAME}/healthcheck.env
      - .env
    ports:
      - ${PORT__HEALTHCHECK_METRICS:-7300}:7300

  op-reth:
    image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-reth:v2.6.0
    restart: unless-stopped
    stop_grace_period: 5m
    entrypoint: /scripts/start-op-reth.sh
    env_file:
      - ./envs/${NETWORK_NAME}/op-reth.env
      - .env
    volumes:
      - ./scripts/:/scripts
      - shared:/shared
      - op_reth:/reth
    ports:
      - ${PORT__OP_RETH_HTTP:-9993}:8545
      - ${PORT__OP_RETH_WS:-9994}:8546
      - ${PORT__OP_RETH_P2P:-39393}:${PORT__OP_RETH_P2P:-39393}/udp
      - ${PORT__OP_RETH_P2P:-39393}:${PORT__OP_RETH_P2P:-39393}/tcp
    extra_hosts:
      - "host.docker.internal:host-gateway"

  op-node:
    image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.19.8
    restart: unless-stopped
    stop_grace_period: 5m
    entrypoint: /scripts/start-op-node.sh
    env_file:
      - ./envs/${NETWORK_NAME}/op-node.env
      - .env
    volumes:
      - ./scripts/:/scripts
      - shared:/shared
    ports:
      - ${PORT__OP_NODE_P2P:-9003}:9003/udp
      - ${PORT__OP_NODE_P2P:-9003}:9003/tcp
      - ${PORT__OP_NODE_HTTP:-9545}:9545
    extra_hosts:
      - "host.docker.internal:host-gateway"

  bedrock-init:
    build:
      context: ./docker/dockerfiles
      dockerfile: Dockerfile.bedrock-init
    entrypoint: /scripts/init-bedrock.sh
    env_file:
      - ./envs/${NETWORK_NAME}/op-reth.env
      - .env
    volumes:
      - ./scripts/:/scripts
      - shared:/shared
      - op_reth:/reth
      - snapshot_downloads:/downloads

  prometheus:
    image: prom/prometheus:${IMAGE_TAG__PROMETHEUS:-latest}
    restart: unless-stopped
    env_file:
      - .env
    volumes:
      - ./docker/prometheus:/etc/prometheus
      - prometheus_data:/prometheus
    ports:
      - ${PORT__PROMETHEUS:-9090}:9090

  grafana:
    image: grafana/grafana:${IMAGE_TAG__GRAFANA:-9.3.0}
    restart: unless-stopped
    env_file:
      - ./envs/common/grafana.env
    volumes:
      - ./docker/grafana/provisioning/:/etc/grafana/provisioning/:ro
      - ./docker/grafana/dashboards/simple_node_dashboard.json:/var/lib/grafana/dashboards/simple_node_dashboard.json
      - grafana_data:/var/lib/grafana
    ports:
      - ${PORT__GRAFANA:-3000}:3000

volumes:
  prometheus_data:
  grafana_data:
  shared:
  op_reth:
  snapshot_downloads: