Skip to content

Deploying a SigLens App

Introduction

SigLens is an open-source observability platform for ingesting and querying logs and metrics. Deploying SigLens with a Dockerfile on Klutch.sh provides reproducible builds, managed secrets, and persistent storage—all configured from klutch.sh/app. This guide focuses on a single-node setup reachable over HTTP.


Prerequisites

  • A Klutch.sh account (sign up)
  • A GitHub repository containing your SigLens Dockerfile (GitHub is the only supported git source)
  • Optional: external object storage if you plan to offload data

For onboarding, see the Quick Start.


Architecture and ports

  • SigLens serves HTTP on internal port 8080. Choose HTTP traffic and set the internal port to 8080.
  • Persistent storage is required for ingested data and indexes.

Repository layout

siglens/
├── Dockerfile # Must be at repo root for auto-detection
└── README.md

Keep secrets out of Git; store them in Klutch.sh environment variables.


Installation (local) and starter commands

Build and run locally:

Terminal window
docker build -t siglens-local .
docker run -p 8080:8080 \
-e SIGLENS_HTTP_PORT=8080 \
siglens-local

Dockerfile for SigLens (production-ready)

Place this at the repo root; Klutch.sh auto-detects Dockerfiles.

FROM siglens/siglens:latest
ENV SIGLENS_HTTP_PORT=8080
EXPOSE 8080
CMD ["./siglens", "-c", "config.yaml"]

Notes:

  • Pin to a specific tag (e.g., siglens/siglens:v1.2.0) for stability.
  • Provide a config.yaml if you need custom settings; bake it into the image or mount via volume.

Environment variables (Klutch.sh)

Common settings:

  • SIGLENS_HTTP_PORT=8080
  • Optional storage tuning variables according to your config.yaml

If deploying without the Dockerfile and relying on Nixpacks:

  • NIXPACKS_START_CMD=./siglens -c config.yaml

Attach persistent volumes

Add storage in Klutch.sh (path and size only):

  • /var/lib/siglens — data and index storage.
  • /app/config — optional custom config if you mount it at runtime.

Ensure the paths are writable inside the container.


Deploy SigLens on Klutch.sh (Dockerfile workflow)

  1. Push your repository—with the Dockerfile at the root—to GitHub.
  2. Open klutch.sh/app, create a project, and add an app.
  3. Select HTTP traffic and set the internal port to 8080.
  4. Add the environment variables above (HTTP port and any config overrides).
  5. Attach volumes at /var/lib/siglens (and /app/config if you mount configs) sized for your data.
  6. Deploy. Your API/UI will be reachable at https://example-app.klutch.sh.

Sample checks

Landing page:

Terminal window
curl -I https://example-app.klutch.sh

Ingest sample log via HTTP (replace endpoint as needed):

Terminal window
curl -X POST https://example-app.klutch.sh/api/logs \
-H "Content-Type: application/json" \
-d '{"message":"hello from siglens","level":"info","timestamp":"2024-01-01T00:00:00Z"}'

Health checks and production tips

  • Add an HTTP readiness probe to / or your health endpoint if configured.
  • Pin image versions and test config changes in staging; redeploy to apply updates.
  • Keep any credentials and tuning parameters in Klutch.sh secrets; rotate regularly.
  • Monitor volume usage on /var/lib/siglens; resize proactively based on ingest rate.

SigLens on Klutch.sh delivers reproducible Docker builds, managed secrets, and persistent storage—without extra YAML or CI steps. Configure ports, storage, and configs, then start ingesting and querying your logs.