Loki is the central log store for Smithflix. It ingests container, host, and NPM logs through Promtail and serves them to Grafana for search and dashboard workflows.
This page documents the loki service. It does not replace the Grafana, Promtail, or Alertmanager pages.
- Container:
loki
- Image:
grafana/loki:latest
- Stack: Logs Stack
- Compose path:
/opt/stacks/logs/compose.yaml
- Docker network:
logs_loki
- Restart policy:
unless-stopped
- Runtime user:
10001
- No container healthcheck is configured as of
2026-04-07
¶ Config and Data Paths
- Config file:
/srv/docker/loki/local-config.yaml
- Data directory:
/srv/docker/loki/data
- Compose command:
-config.file=/etc/loki/local-config.yaml
- LAN API URL:
http://192.168.0.113:3100
- Host port mapping:
3100 -> 3100
- No public proxy hostname was verified on
2026-04-07
¶ Authentication and Secret Locations
- No auth secret or public ingress was verified for Loki on
2026-04-07
- Treat Loki as an internal service consumed by Grafana and other observability components
- Query Loki through Grafana or directly on the LAN port when debugging ingestion problems
- Keep Promtail scraping aligned with the live filesystem roots, especially Docker container logs and NPM logs
- Avoid running any duplicate sample stack against
/srv/docker/loki concurrently with the live logs stack
- If the logs stack changes, update both Loki and Grafana documentation in the same turn
¶ Monitoring and Logs
- Docker logging driver is
json-file
- No container healthcheck exists, so validation should include live queries rather than container state alone
- Recent logs showed normal ingester flush activity for NPM access logs and wiki traffic
- A healthy Grafana UI is not proof that Loki ingestion is healthy; verify actual queries when in doubt
¶ Backup and Restore
/srv/docker/loki is within the documented Duplicati scope because it lives under /srv/docker
- Restore should include both
local-config.yaml and the data directory
- After restore, validate that Grafana can query recent log streams
¶ Failure Modes and Recovery
- Promtail scrape drift can make Loki appear empty even when Loki itself is healthy
- File permission issues on
/srv/docker/loki/data can break ingestion or retention
- Since there is no healthcheck, a running container is not enough proof that log search is working