How saran-3012/logbase works
Logbase is a self-hosted log ingestion and monitoring server. Users register and authenticate through the web UI, configure collectors, send batches over HTTP or UDP, and explore stored logs in the dashboard. The main stages are collector configuration and authentication, payload parsing and persistence, then search and monitoring; OAuth token issuance and automatic retention are additional product capabilities. Query construction, SQL compilation, and the libSQL adapter form the internal database layer. Some feature links rely on README documentation because their route or UI implementation was not excerpted.
Main entry points: server.js HTTP server · database.js Database service · listenerManager.js UDP listeners · collectors.js Collector management
Components 24
Identity and Access
- Account routes
src/routes/auth.js - Session auth
src/middleware/sessionAuth.js - OAuth tokens
src/routes/oauth.js
Collectors and Ingestion
- HTTP server
src/server.js - Collector management
src/routes/collectors.js - Collector registry
src/ingest/registry.js - Collector auth
src/middleware/collectorAuth.js - HTTP log intake
src/routes/logs.js - Batch parsing
src/ingest/formats.js - UDP listeners
src/ingest/listenerManager.js - UDP transport
src/ingest/transports/udp.js - Event pipeline
src/ingest/pipeline.js
Log Monitoring
- Web dashboard
public/js/dashboard.js - Logs explorer
src/routes/logs.js - Log retention
src/server.js
Persistence Layer
- Database service
src/db/database.js - Query builders
src/db/query - SQL compiler
src/db/compilers/base.js - libSQL adapter
src/db/adapters/libsql.js - Log database
src/db/schema/tables.json
Other components
- User
- Log sender
- UDP sender
- Web browser
Connections 31
- User → Web browser: uses
README.md - Web browser → HTTP server: sends requests
README.md - HTTP server → Account routes: routes
src/server.js - HTTP server → OAuth tokens: routes
src/server.js - HTTP server → HTTP log intake: routes
src/server.js - HTTP server → Collector management: routes
src/server.js - HTTP server → UDP listeners: starts
src/server.js - Account routes → Database service: queries users
src/routes/auth.js - Session auth → Database service: checks users
src/middleware/sessionAuth.js - OAuth tokens → Database service: stores tokens
src/routes/oauth.js - Collector management → Session auth: guards routes
src/routes/collectors.js - Collector management → Collector registry: uses
src/routes/collectors.js - Collector management → UDP listeners: manages listeners
src/routes/collectors.js - Log sender → HTTP server: sends batches
README.md - HTTP log intake → Collector auth: authenticates intake
src/routes/logs.js - HTTP log intake → Batch parsing: parses payload
src/routes/logs.js - HTTP log intake → Event pipeline: stores events
src/routes/logs.js - UDP sender → UDP transport: sends datagrams
README.md - UDP listeners → UDP transport: creates listeners
src/ingest/listenerManager.js - UDP listeners → Batch parsing: parses datagrams
src/ingest/listenerManager.js - UDP listeners → Event pipeline: stores events
src/ingest/listenerManager.js - Event pipeline → Database service: writes events
src/ingest/pipeline.js - Web browser → Web dashboard: loads
README.md - Web dashboard → Logs explorer: queries and exports
README.md - Logs explorer → Database service: searches logs
src/routes/logs.js - HTTP server → Log retention: schedules purge
src/server.js - Log retention → Database service: deletes old logs
src/server.js - Database service → libSQL adapter: creates adapter
src/db/database.js - Database service → Query builders: uses builders
src/db/database.js - libSQL adapter → SQL compiler: uses compiler
src/db/adapters/libsql.js - libSQL adapter → Log database: persists records