Llomiriby hyprr

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.

DataImported
Users (with passwords)Yes
NodesYes
Eggs and egg variablesYes
Servers and their variablesYes
AllocationsYes
Subusers and permissionsYes

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-run

The 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:import

The 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:

/etc/pelican/config.yml
token_id: <Token ID from lomiri>
token: <Token from lomiri>
remote: https://panel.example.com
systemctl restart wings

Restarting 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.

On this page