docs/setup.md
Setup
Prerequisites
- Bun 1.2+
- Python 3.x
nfdumpavailable on your PATH (or via Nix — seeshell.nix)- SSH access to the research host if using live ONRG data
For Multifractal Analysis
Only needed if you want the vendor analyzer binaries:
ghcplus the Haskell packages listed invendor/maad/shell.nixforvendor/maadzigforvendor/burstifypkg-configandlibpcapif you also want the full burstify toolchain, not justStructureFunction- or
nix-shell, then use the compile scripts undervendor/scripts/
Install
| 1 | git clone https://github.com/flamboh/atlantis.git |
| 2 | cd atlantis |
| 3 | bun install |
Configure Datasets
Copy the example config and edit paths for your machine:
| 1 | cp datasets.json.example datasets.json |
root_path should point at the directory containing router/source subdirectories.
See datasets-json.md for more.
Environment
Start from the template:
| 1 | cp .env.example .env |
At minimum, make sure DEFAULT_DATASET matches one of the dataset ids in
datasets.json.
Optional overrides: DATASETS_CONFIG_PATH, NETFLOW_DATA_PATH, DATABASE_PATH.
Populate the Database
| 1 | python tools/netflow-db/pipeline.py |
This discovers and processes NetFlow files into SQLite. See pipeline-usage.md for flags and scheduling patterns.
Optional: Compile Vendor Analyzers
If you need spectrum_stats / structure_stats for real captures, initialize
the analyzer submodules and compile the vendor binaries:
| 1 | git submodule update --init --recursive |
| 2 | ./vendor/scripts/compile-maad.sh |
| 3 | ./vendor/scripts/compile-burstify.sh |
| 4 | # or: ./vendor/scripts/compile-all.sh |
compile-burstify.sh builds vendor/burstify/zig-out/bin/StructureFunction,
which structure_stats uses. If libpcap is also available, it additionally
builds the rest of burstify.
compile-maad.sh builds vendor/maad/Spectrum and related Haskell executables
used by spectrum_stats.
Those binaries are not required for the no-data setup verification flow above.
Run the App
| 1 | bun run dev |
The web app starts at http://localhost:5173.
SSH Tunnel (remote host)
| 1 | ssh -L 5173:localhost:5173 user@pinot |
Then open http://localhost:5173 locally.