Migrating from EVE-NG
If you have been running EVE-NG for years, most of what you know transfers. Same idea: real virtual machines on a Linux host, wired with kernel networking, driven from a browser.
This page maps the concepts one to one, lists the two or three places the designs actually differ, and links to the importer that turns a .unl file into a Labtris lab.
Last checked against EVE-NG Community Edition 6.2.0-4 (the final CE build) and PRO 7.2.0-4 in October 2026. Comparisons go stale; if something here is wrong now, please say so.
What changes if you switch.
The differences worth knowing before reading anything else. The concept map further down answers the other question — where each thing you already use ended up.
- EVE-NG
- Community Edition reached end of life in June 2026. The last CE build shipped July 2024. PRO continues.
- Labtris
- Current release, MIT, private beta. No edition reaches end of life.
- EVE-NG
- PRO freemium: 7 nodes, unlimited VPCS, admin account only. CE was unlimited but is no longer supported.
- Labtris
- Everything. 931 FRR nodes on one box is the largest we have measured — 245 switches and 686 hosts, 18.5 GB of RAM. There is no licensed ceiling to raise.
- EVE-NG
- Paid licence beyond the freemium node count.
- Labtris
- MIT, every emulator feature, forever. The cloud-provider plugins are sold separately.
- EVE-NG
- The web tier is SourceGuardian-encoded PHP. When it misbehaves there is nothing to read.
- Labtris
- All of it. Python and Svelte, in the open.
- EVE-NG
- Polling —
GET api/poll. A browser left on a lab makes requests all day. - Labtris
- WebSocket push for canvas, console, capture and the assistant.
- EVE-NG
tcon the tap, symmetric. With no link object, per-direction latency is not really expressible.- Labtris
- Yes — the link is a first-class object with its own qdisc each way, so A→B need not equal B→A.
- EVE-NG
- No audit trail.
- Labtris
- Every mutation recorded with its actor, and whether a person or the assistant made it.
- EVE-NG
- No.
- Labtris
- Built in — it reads the topology and can build and change labs, and what it does is logged as its own.
EVE-NG PRO 7.2.0-4 (September 2026) lists “improved large lab scalability up to 1024 nodes”, so raw node count is not where these two differ most — the licence, the source you receive and the audit trail are.
Keep using these ideas.
- The core idea of running real vendor images under KVM on a Linux host with kernel-native bridges and taps.
- Deterministic, reversible interface naming (vun/vnet + hex-packed IDs) — great debugging story from `ip link` alone.
- Transient systemd units per node — cgroups, restart policy, reaping for free.
- Well-populated appliance catalogue and a large public library of importable labs.
The reasons to look elsewhere.
- Community Edition has reached end of life — June 2026, on EVE-NG's own download page, which is now past. The last CE build, 6.2.0-4, shipped in July 2024. Whatever else is true, it is not receiving fixes.
- The web tier is SourceGuardian-encoded PHP, so when something misbehaves there is no way to read what it is doing.
- It polls. `GET api/poll` instead of a push channel means a browser sitting on a lab generates steady request traffic all day.
- Impairment is per-tap and symmetric; with no first-class link object, per-direction latency is not really expressible.
- With CE gone, the free path is PRO's freemium mode — 7 nodes, VPCS aside, admin account only. Past seven nodes it is a paid licence, and which features sit behind it has moved over time.
What you know, and what it’s called here.
Same primitives, mostly. A few things are actually different — those get their own row.
- Lab file
- EVE
- `.unl` XML
- Labtris
- JSON — geometry split from topology so it diffs cleanly in git
- Node template
- EVE
- YAML under `templates/intel/*.yml`
- Labtris
- JSONB row per template; every field editable from the palette
- Interface names
- EVE
- `vun<lab-hex><node-hex><idx-hex>` — 15-char `IFNAMSIZ` ceiling
- Labtris
- Base36 hash + DB registry; no entity ceiling
- Impairment
- EVE
- `tc` on the tap, symmetric only
- Labtris
- First-class link → two directional qdiscs; A→B ≠ B→A
- Capture
- EVE
- Per-node Docker container + nftables NAT chains + watchdog
- Labtris
- Capture sidecar writing to a WebSocket pcap stream — no NAT hop
- Console
- EVE
- HTML5 with a plugin history
- Labtris
- Guacamole (VNC/RDP) + xterm.js (serial), force-shared display, same-tab reconnect works
- Web tier
- EVE
- PHP as root, MySQL default password
- Labtris
- FastAPI as an unprivileged user; every root operation goes through `labtris-netd` over a Unix socket
- State channel
- EVE
- `GET api/poll`
- Labtris
- WebSocket for canvas, console, capture, assistant
- Multi-host
- EVE
- cluster / satellite protocol
- Labtris
- Register a host, VXLAN builds the tunnel; standard tooling on both ends
- Licence
- EVE
- Community + PRO (paid)
- Labtris
- MIT. Every emulator feature, forever. The cloud-API plugins are sold separately.
Importing existing topologies.
Topologies. Import → drop your .unl file. Templates map onto the QEMU catalogue; vendor appliances that Labtris does not yet know about become labelled placeholders with warnings — the lab still opens, so you can substitute images yourself. Canvas positions are preserved.
Images. Copy the qcow2 files from /opt/unetlab/addons/qemu/<template>/ and upload them through the palette or with labtris-image add. Companion BIOS or CD-ROM files (NX-OSv OVMF-sata.fd + cdrom.iso, for example) attach per template.
Templates. RAM, CPUs, NIC model, disk bus, iface scheme — every knob the EVE YAML carried is a field on the template row, editable from the palette. Two schemes (paloalto → mgmt, eth1/1, eth1/2, …; nxos → Mgmt0, E1/1, E1/2, …) match the EVE conventions exactly so interface names in the guest do not change.
Try Labtris.
Private beta: ask for access, install with the token you get back. No telemetry, no lock-in; the code you receive is MIT.