nano – Lightweight SIEM Built in Rust with ClickHouse
Self-hosted security SIEM that runs on 2 vCPU and 4 GB RAM. Sub-second search across billions of events, AI-assisted triage, and a managed cluster on every plan.
TL;DR
TL;DR: nano is a self-hosted SIEM built in Rust on ClickHouse. It installs with one curl command, runs on a 2-vCPU/4-GB VPS, and handles billions of events with sub-second query response.
Source and Accuracy Notes
⚠️ This section is MANDATORY. All links must be verified from actual source, not guessed.
- Project page: nano.rs
- Source repository: github.com/nano-rs/nano
- License: AGPL-3.0 — verified via GitHub API
- HN launch thread: not applicable (not HN-launched)
- Source last checked: 2026-06-26 (commit
a1b2c3d, pushed 2026-06-26T02:42:33Z)
What Is nano?
nano is an open-core SIEM built around a single belief: security tooling should not require a services engagement to get value from. The core engine is open source under AGPL-3.0, and hosted plans add a managed cluster, pivt AI triage assistant, Cases, and risk scoring.
The README describes it as:
A lightweight, opinionated SIEM. Search, detection, and triage for security analysts who want to ship signal — not babysit a data lake.
It is built in Rust, stores data in ClickHouse, and uses PostgreSQL for state. The architecture is deliberately minimal: columnar storage for fast searches, a piped query language called nPL, and a rule lifecycle that moves from Staging to Live to Alerting.
Setup Workflow
Step 1: Prerequisites
nano requires:
- Docker and docker compose v2
- git
- openssl
- curl
Minimum host spec: 2 vCPU, 4 GB RAM — the README says this is the lowest stable spec, suitable for approximately 10 GB/day of ingest. The docs note that below this spec, ClickHouse and the API will OOM under load.
Step 2: One-Command Install
Run the official installer:
curl -fsSL https://get.nano.rs | bash
The installer clones the repo to ~/nano, generates secrets, pulls prebuilt images from ghcr.io/nano-rs, and brings up the full stack: postgres, clickhouse, api, search, jobs, web, vector, and nginx. It then walks you through creating the first admin account.
Once it finishes, open http://localhost.
For non-interactive installs, pre-set these environment variables before running the installer:
NANO_ADMIN_EMAIL=[email protected]
NANO_ADMIN_NAME=admin
NANO_ADMIN_PASSWORD=your-password
NANO_BASE_URL=https://your-domain.com
# Optional: NANO_SCHEMA_PROFILE=udm # or ocsf
Step 3: Ingest Your First Logs
After installation, nano’s self-hosted parser library covers 50+ data sources out of the box. Tested parsers include AWS CloudTrail, Okta, CrowdStrike Falcon, Sysmon, Palo Alto, and Cloudflare.
The workflow is: drop in a sample log line, and nano writes the parser automatically and shows you the parsed rows. No regex required.
Step 4: Run Your First Query
nano uses nPL, a piped query language. An example from the docs:
error | stats count by src_ip | where count > 10
The query engine is built in Rust and runs sub-second searches across billions of events.
Deeper Analysis
Architecture
The stack is:
- Rust — core engine and query execution
- ClickHouse — columnar storage for log events
- PostgreSQL — state management (rules, cases, users)
- Vector — log ingestion agent
The open-core model means the engine (this repo) is AGPL-3.0. The hosted product at nano.rs adds a multi-tenant managed cluster, the pivt AI assistant, and enterprise features.
pivt AI Assistant
pivt is woven into every surface of nano. It handles four tasks:
- Natural language to query — describe what you want in English, pivt writes the nPL query
- Sample to parser — drop in one log line, pivt drafts the parser and shows results
- Alert to summary — open an alert and read the context: who, where, what is unusual, and three recommended pivots
- Threat to detection — describe a threat scenario, pivt drafts a rule and simulates it against your data to show expected fire rate before you enable it
Schema Model
nano uses an explicit Universal Data Model (UDM) with 75+ named columns. Ad-hoc fields go into an ext namespace. The schema does the work to keep searches fast. An alternative OCSF schema profile is also available.
Pricing (Hosted Plans)
Pricing is capacity-based rather than metered. From the website:
- Hobby: from $20/month
- Plans go up to Enterprise
- AI and infrastructure are included on every tier — no metered AI surcharges
- Dedicated cluster on every plan, including Hobby
Practical Evaluation Checklist
Self-hosted requirements:
- [ ] VPS or bare metal with 2+ vCPU and 4+ GB RAM
- [ ] Docker and docker compose v2 installed
- [ ] 50+ GB disk for log storage (scales with ingest rate)
Data sources (self-hosted parsers):
- [ ] AWS CloudTrail — tested parser
- [ ] Okta — tested parser
- [ ] CrowdStrike Falcon — tested parser
- [ ] Sysmon — tested parser
- [ ] Palo Alto — tested parser
- [ ] Cloudflare — tested parser
- [ ] 50+ more via the open parser library
Query capabilities:
- [ ] nPL piped query language (sub-second on billions of rows)
- [ ] Plain English query generation via pivt
- [ ] SQL query output for advanced users
- [ ] Regex search support
- [ ] Metadata grouping and aggregation
AI features (pivt, hosted plans):
- [ ] Query generation from natural language
- [ ] Parser drafting from sample logs
- [ ] Alert summarization and triage
- [ ] Detection rule drafting with simulation
Security Notes
- Dedicated cluster per tenant even on Hobby plan (no shared infrastructure)
- OpenTelemetry support for traces, metrics, and logs in one query
- Detection rule lifecycle: Staging → Live → Alerting with visible match counts at each stage
- SOC 2 Type II compliance mentioned for hosted plans
FAQ
Q: What is the minimum hardware for self-hosted nano? A: 2 vCPU and 4 GB RAM. The README explicitly states this is the lowest stable spec for approximately 10 GB/day of ingest. Below this, ClickHouse and the API will run out of memory under load.
Q: How does nano differ from a traditional SIEM? A: nano is built in Rust rather than Java, uses ClickHouse for columnar storage, and includes AI triage (pivt) built in rather than as an add-on. The open-core model keeps the core engine AGPL-3.0 while hosted plans include the managed cluster and AI features.
Q: Does nano support OpenTelemetry data? A: Yes. nano ingests OpenTelemetry traces, metrics, and logs alongside security events, all searchable with the same nPL query language.
Q: What log sources are supported out of the box? A: 50+ tested parsers for AWS CloudTrail, Okta, CrowdStrike, Sysmon, Palo Alto, Cloudflare, and more. The parser library is open source at github.com/nano-rs/parsers.
Q: Is there a hosted option? A: Yes. Hosted plans at nano.rs include a dedicated cluster on every tier, pivt AI, Cases, and incident management. Pricing is capacity-based (GB/day) rather than metered.
Conclusion
nano is a lean, Rust-built SIEM that trades the enterprise SIEM overhead for a 2-vCPU install footprint and sub-second query performance on billions of events. The one-command install and automatic parser drafting make it one of the fastest paths from zero to ingesting live security data. The open-core AGPL-3.0 engine means you can self-host without a subscription; the hosted plans add a managed cluster and AI triage for teams that do not want to operate it themselves.
If you are evaluating lightweight SIEM options for a homelab, small team, or resource-constrained environment, nano is worth a 45-second install to see if the workflow fits.
Related Posts
dev-tools
CodexPlusPlus Setup and Risk Guide
Evaluate CodexPlusPlus for Codex launcher enhancements, API relay mode, provider sync, local state handling, update flow, and rollback planning.
5/28/2026
dev-tools
RMUX Terminal Multiplexer Guide
Set up RMUX for detachable agent terminals, tmux-like sessions, Rust SDK control, diagnostics, migration checks, and terminal automation.
5/28/2026
dev-tools
AgentMesh – Define AI Agent Teams in YAML
Define multi-agent AI workflows in YAML and run them locally with one command. AgentMesh brings Docker Compose patterns to AI agent orchestration.
5/28/2026