Migrate from Pelican
Import an existing Pelican install and reconnect your Wings nodes.
lomiri speaks Pelican's daemon contract, so your Wings nodes and the game servers on them stay exactly where they are. You copy the panel's data over with the built-in importer, then point each node at lomiri.
What comes across
The importer keeps ids and UUIDs, so everything lines up with what's already on your nodes.
| Data | Imported |
|---|---|
| Users (with passwords) | Yes |
| Nodes | Yes |
| Eggs and egg variables | Yes |
| Servers and their variables | Yes |
| Allocations | Yes |
| Subusers and permissions | Yes |
Not imported: API keys, SSH keys, backup records, schedules, databases and database hosts, mounts, roles, activity logs and panel settings. Recreate what you need after the import. Game server files and backup archives are untouched on your nodes.
Postgres source
The importer reads a Pelican database running on PostgreSQL. If your Pelican install uses MySQL, MariaDB or SQLite, convert a copy of its database to Postgres first (for example with pgloader) and import from that copy.
Steps
Install lomiri
Follow Install up to and including starting the stack, but don't create an admin yet. Imported users keep their ids, and a fresh account would take id 1.
Rehearse with a dry run
Point SOURCE_DATABASE_URL at your Pelican database, or better, at a snapshot of it:
docker compose exec -e SOURCE_DATABASE_URL=postgres://user:pass@host:5432/pelican \
api bun run db:import --dry-runThe dry run reads everything, changes nothing, and prints how many of each item it would import.
Import
Put Pelican into maintenance mode so nothing changes mid-copy, then run the import for real:
docker compose exec -e SOURCE_DATABASE_URL=postgres://user:pass@host:5432/pelican \
api bun run db:importThe import is safe to run again: anything already imported is skipped.
Reconnect your nodes
Point each node at lomiri. Open it in Admin → Nodes, and in /etc/pelican/config.yml on the
node set remote, token_id and token to the values in its Registration section:
token_id: <Token ID from lomiri>
token: <Token from lomiri>
remote: https://panel.example.comsystemctl restart wingsRestarting Wings doesn't stop running game servers.
Sign in and finish up
Users sign in with their existing email and password. Create an extra admin with create:admin if
you need one, then recreate API keys, schedules and anything else from the list above.
Integrations built for Pelican's API (billing, provisioning, bots) keep working against lomiri once they have a new API key and your panel URL.
Coming from Pterodactyl?
lomiri imports Pelican databases, not Pterodactyl ones. Pelican is a fork of Pterodactyl and upgrades a Pterodactyl database to its own format, so the route today is Pterodactyl → Pelican → lomiri.