linera-protocol Docker & Self-Hosted Deployment

GitHub

Main repository for the Linera protocol

32,129 stars Rust Rust 1 file ยท ~11,601 tokens #blockchain#rust#wasm
RAW Compose
1. Pull Image (DOCKERHUB) docker pull grafana/alloy
2. Docker Run (1-Click Launch) docker run -d --name linera-protocol -p 12345:12345 --restart always grafana/alloy:latest
3. Podman Run podman run -d --name linera-protocol -p 12345:12345 --restart always grafana/alloy:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/grafana/alloy:latest
5. ORAS Pull (OCI Artifact) oras pull grafana/alloy:latest
6. Compose Deployment docker compose up -d
docker/docker-compose.alloy.yml
Download .yml
# Docker Compose override file to enable Grafana Alloy for central observability
#
# Usage:
#   docker-compose -f docker-compose.yml -f docker-compose.alloy.yml up -d
#
# Documentation: See MONITORING.md for complete setup and configuration guide
#
# Required environment variables for remote push (set in .env):
#   PROMETHEUS_OTLP_URL: https://your-prometheus-endpoint/otlp
#   PROMETHEUS_OTLP_USER: your-username
#   PROMETHEUS_OTLP_PASS: your-password
#   LOKI_PUSH_URL: https://your-loki-endpoint/loki/api/v1/push
#   LOKI_PUSH_USER: your-username
#   LOKI_PUSH_PASS: your-password
#   TEMPO_OTLP_URL: https://your-tempo-endpoint/tempo/otlp
#   TEMPO_OTLP_USER: your-username
#   TEMPO_OTLP_PASS: your-password

services:
  alloy:
    image: grafana/alloy:latest
    container_name: alloy
    ports:
      - "12345:12345"  # Prometheus metrics exposition
      - "4317:4317"    # OTLP gRPC receiver
      - "4318:4318"    # OTLP HTTP receiver
    volumes:
      - ./alloy-config.river:/etc/alloy/config.river:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
    command:
      - "run"
      - "--server.http.listen-addr=0.0.0.0:12345"
      - "/etc/alloy/config.river"
    environment:
      - HOSTNAME=${HOSTNAME:-validator}
      - PROMETHEUS_OTLP_URL=${PROMETHEUS_OTLP_URL:-http://localhost:4318}
      - PROMETHEUS_OTLP_USER=${PROMETHEUS_OTLP_USER:-}
      - PROMETHEUS_OTLP_PASS=${PROMETHEUS_OTLP_PASS:-}
      - LOKI_PUSH_URL=${LOKI_PUSH_URL:-http://localhost:3100}
      - LOKI_PUSH_USER=${LOKI_PUSH_USER:-}
      - LOKI_PUSH_PASS=${LOKI_PUSH_PASS:-}
      - TEMPO_OTLP_URL=${TEMPO_OTLP_URL:-http://localhost:4318}
      - TEMPO_OTLP_USER=${TEMPO_OTLP_USER:-}
      - TEMPO_OTLP_PASS=${TEMPO_OTLP_PASS:-}
    labels:
      com.centurylinklabs.watchtower.enable: "true"
    depends_on:
      - proxy
      - shard-0
      - shard-1
      - shard-2
      - shard-3