spin Docker & Self-Hosted Deployment

GitHub

Spin is the open source developer tool for building and running serverless applications powered by WebAssembly.

6,471 stars Rust Rust 1 file ยท ~6,242 tokens #serverless#spin#webassembly
RAW Compose
1. Pull Image (DOCKERHUB) docker pull otel/opentelemetry-collector-contrib
2. Docker Run (1-Click Launch) docker run -d --name spin -p 8888:8888 --restart always otel/opentelemetry-collector-contrib:0.98.0
3. Podman Run podman run -d --name spin -p 8888:8888 --restart always otel/opentelemetry-collector-contrib:0.98.0
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/otel/opentelemetry-collector-contrib:0.98.0
5. ORAS Pull (OCI Artifact) oras pull otel/opentelemetry-collector-contrib:0.98.0
6. Compose Deployment docker compose up -d
hack/o11y-stack/docker-compose.yaml
Download .yml
services:
  otel-collector:
    image: otel/opentelemetry-collector-contrib:0.98.0
    restart: always
    command:
      - "--config=/etc/otel-collector-config.yaml"
    volumes:
      - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
    ports:
      - "8888:8888" # Prometheus metrics exposed by the collector
      - "8889:8889" # Prometheus exporter metrics
      - "4317:4317" # OTLP gRPC receiver
      - "4318:4318" # OTLP gRPC receiver
    depends_on:
      - jaeger
      - prometheus
      - tempo
      - loki

  jaeger:
    image: jaegertracing/all-in-one:latest
    restart: always
    ports:
      - "16686:16686" # UI
      - "14268" # ??
      - "14250" # ??

  tempo:
    image: grafana/tempo:2.4.1
    command:
      - '-config.file=/etc/tempo/config.yaml'
    volumes:
      - ./tempo.yaml:/etc/tempo/config.yaml
    ports:
      - 4318
      - 7999:7999

  prometheus:
    image: prom/prometheus:latest
    restart: always
    command:
      - '--config.file=/etc/prometheus/prometheus.yaml'
      - '--web.enable-remote-write-receiver'
    volumes:
      - ./prometheus.yaml:/etc/prometheus/prometheus.yaml
    ports:
      - "9090:9090"

  grafana:
    image: grafana/grafana:10.4.2
    ports:
      - 5050:3000
    volumes:
      - ./grafana.yaml:/etc/grafana/provisioning/datasources/datasources.yaml
    environment:
      - GF_AUTH_ANONYMOUS_ENABLED=true
      - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
      - GF_AUTH_DISABLE_LOGIN_FORM=true
    depends_on:
      - prometheus
      - tempo

  loki:
    image: grafana/loki:2.9.8
    command:
      - '-config.file=/etc/loki/config.yaml'
    volumes:
      - ./loki.yaml:/etc/loki/config.yaml
    ports:
      - 3100:3100