Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.rootprint.io/llms.txt

Use this file to discover all available pages before exploring further.

This guide walks you through deploying Rootprint locally, signing in, and sending your first logs. The whole process takes about five minutes and requires only Docker.
1

Install Rootprint

Follow the Docker Compose installation guide to start Rootprint. The quickest option is:
curl -o docker-compose.yml https://docs.rootprint.io/files/docker-compose.full.yaml
docker compose up -d
2

Create the admin account

Open http://localhost:8282 in your browser. On first boot, Rootprint redirects you to the setup wizard. Enter your desired admin credentials and submit the form. You will be signed in automatically after setup completes.
3

Create an ingest API key

Rootprint requires a bearer API key to accept log data. To create one:
  1. In the sidebar, open Settings → API keys.
  2. Click Create API key, give it a name, pick the bundled otel-logs-v0_9 index, and choose the Ingest role.
  3. The value is shown once on creation — copy it before clicking Done. You can re-reveal it later with the eye icon on the key’s row.
You will use this API key in the next step to authenticate your log shipper.
4

Send sample logs

Use curl to post a couple of NDJSON log entries to the bundled otel-logs-v0_9 index. Replace <your-ingest-token> with the API key you just copied:
curl -X POST 'http://localhost:8282/api/ingest/ndjson' \
  -H 'Authorization: Bearer <your-ingest-token>' \
  -H 'Content-Type: application/x-ndjson' \
  --data-binary @- <<EOF
{"timestamp_nanos":$(date +%s)000000000,"severity_text":"INFO","body":{"message":"User logged in"},"service_name":"frontend","attributes":{"user_id":"alice"},"resource_attributes":{},"trace_id":"","span_id":"","trace_flags":0,"observed_timestamp_nanos":$(date +%s)000000000,"severity_number":9,"dropped_attributes_count":0,"resource_dropped_attributes_count":0,"scope_name":"","scope_version":"","scope_attributes":{},"scope_dropped_attributes_count":0}
{"timestamp_nanos":$(date +%s)000000000,"severity_text":"ERROR","body":{"message":"Connection timeout"},"service_name":"api-gateway","attributes":{},"resource_attributes":{},"trace_id":"","span_id":"","trace_flags":0,"observed_timestamp_nanos":$(date +%s)000000000,"severity_number":17,"dropped_attributes_count":0,"resource_dropped_attributes_count":0,"scope_name":"","scope_version":"","scope_attributes":{},"scope_dropped_attributes_count":0}
EOF
5

Search your logs

Go back to http://localhost:8282 and select the otel-logs-v0_9 index. The two log entries you sent appear in the results. Try filtering by severity_text:ERROR to see only the error entry.

Next steps