Documentation

Quickstart

Run QikLog locally with Docker and see your first live log line.

Get the full stack running on your machine in a few minutes.

Prerequisites

  • Docker with Compose
  • A browser

1. Start the stack

From the QikLog repository root:

docker compose up -d

Or use the Makefile:

make up-d

Wait until Postgres, Redis, API, and Web are up. Check API health:

curl http://localhost:5080/healthz

You should see {"status":"ok","postgres":"ok"} when the database is connected.

2. Send a test log

curl -X POST http://localhost:5080/v1/logs \
  -H "Content-Type: application/json" \
  -d '{"source":"demo","level":"info","message":"hello from curl"}'

A successful ingest returns HTTP 202 Accepted with an empty body.

3. Watch it live

Open the tail page for source demo:

http://localhost:5081/tail/demo

You should see your line appear within a second. Send another curl with a different message to confirm streaming.

4. Verify persistence (optional)

Logs are written to the log_entries table in Postgres. If you have psql handy:

docker compose exec postgres psql -U qiklog -d qiklog -c \
  "SELECT source, level, message, received_at FROM log_entries ORDER BY received_at DESC LIMIT 5;"

Troubleshooting

ProblemFix
Connection refused on 5080Run docker compose ps — ensure api is running
Tail page emptyConfirm source in curl matches the URL (demo in /tail/demo)
401 on ingestYou may have created API keys and enabled required auth — see API keys
Postgres not ok in healthzWait for Postgres healthcheck; run docker compose logs postgres

Next steps