README.md
ATLANTIS
ATLANTIS is a Network telemetry visualization platform for analyzing large-scale NetFlow data. SvelteKit frontend, SQLite backend, Rust ingestion pipeline.
This is done by reading nfcapd captures from a NetFlow collector. The pipeline converts the captures into a SQLite database, and the dashboard visualizes that database.
Quick start
First, install the required tools — Bun and Node.js run the dashboard, and Docker runs the pipeline. You also need nfcapd capture files on disk.
Clone the project and install the dashboard dependencies.
bash1 git clone https://github.com/flamboh/atlantis.git 2 cd atlantis 3 bun install Describe your capture dataset. Copy the templates, then edit them:
bash1 cp .env.example .env 2 cp datasets.json.example datasets.json In
datasets.json, setroot_pathto your capture directory and name one source for each collector directory under it (dataset configuration explains the fields and the expected layout). In.env, setDEFAULT_DATASETto yourdataset_id.Build a database from one day of captures. Use your
dataset_id, the same absolute path you set asroot_path, and a date that has captures. The first run builds the pipeline image and takes several minutes; run it in a persistent shell like tmux.bash1 ./scripts/netflow-db-docker.sh \ 2 --capture-root /absolute/path/to/captures \ 3 pipeline \ 4 --dataset example \ 5 --start-date <YYYY-MM-DD> \ 6 --end-date <YYYY-MM-DD> To build the pipeline toolchain yourself instead of using Docker, follow the native setup.
Start the dashboard, then open
http://localhost:5173.bash1 bun run dev:web
If a step fails, read Troubleshooting.
Documentation
For a new setup, use these procedures:
Acknowledgment
Developed by Oliver Boorstein under support by NSF Research Experiences for Undergraduates with the Oregon Networking Research Group.
Advised by Chris Misa and Reza Rejaie.