Migration documentation from Stalwart incomplete #209

Closed
opened 2026-10-26 09:05:32 +00:00 by mbunkus · 3 comments

This might be work in progress as I'm typing it up while actually doing the migration.

Inside the old Stalwart database there are several settings that refer to locations in the file system. For example, the database location, which is /var/lib/stalwart if you run Stalwart from their Docker image.

When migrating this to Inbuxa the recommended "copy storage, run from Docker with volume bound to /var/lib/inbux" this now fails as inside the container the location where the server expects the database to be is still /var/lib/stalwart. Either you have to modify the config, or bind-mount the volume to /var/lib/stalwart inside the container, too.

Further locations might be custom log file locations you've configured. Meaning a simple copy-replace of stalwart→inbuxa in your compose.yaml does too much here. It's more involved.

This might be work in progress as I'm typing it up while actually doing the migration. Inside the old Stalwart database there are several settings that refer to locations in the file system. For example, the database location, which is `/var/lib/stalwart` if you run Stalwart from their Docker image. When migrating this to Inbuxa the recommended "copy storage, run from Docker with volume bound to `/var/lib/inbux`" this now fails as _inside the container_ the location where the server expects the database to be is still `/var/lib/stalwart`. Either you have to modify the config, or bind-mount the volume to `/var/lib/stalwart` inside the container, too. Further locations might be custom log file locations you've configured. Meaning a simple copy-replace of `stalwart`→`inbuxa` in your `compose.yaml` does too much here. It's more involved.
Owner

Thanks @mbunkus, you're right, the guide never said that the copied store still remembers its old paths. It now has a section on it: https://docs.inbuxa.org/install/migrating/#paths

It lists the settings that hold a path (the data store in config.json, a file-system blob store, SQLite/RocksDB stores, the log directory, secrets read from files). Then it moves them in recovery mode before the first real start, which doesn't touch the old paths. For containers it also gives your shortcut of mounting the copy at /var/lib/stalwart as well. I'll leave this open while you finish, so add anything else you run into.

Thanks @mbunkus, you're right, the guide never said that the copied store still remembers its old paths. It now has a section on it: https://docs.inbuxa.org/install/migrating/#paths It lists the settings that hold a path (the data store in config.json, a file-system blob store, SQLite/RocksDB stores, the log directory, secrets read from files). Then it moves them in recovery mode before the first real start, which doesn't touch the old paths. For containers it also gives your shortcut of mounting the copy at /var/lib/stalwart as well. I'll leave this open while you finish, so add anything else you run into.
jcoffey-dev self-assigned this 2026-10-26 13:41:00 +00:00
Owner

Following up on your question about stalwart-cli and Vandelay: neither works with inbuxa, since the management API's capability name changed. Both have replacements now.

Both take an API key, since the server doesn't accept passwords on its API by default. Thanks again for asking. It's what got inbuxa-cli built. If anything trips you up, tell me here.

Following up on your question about stalwart-cli and Vandelay: neither works with inbuxa, since the management API's capability name changed. Both have replacements now. - **stalwart-cli** → [inbuxa-cli](https://git.coffeylabs.org/inbuxa/inbuxa-cli), released today. It covers everything the console manages, and it can also save the server's settings to a file and apply them to another server. Docs: https://docs.inbuxa.org/install/cli/ - **Vandelay** → [inbuxa-migrate](https://git.coffeylabs.org/inbuxa/inbuxa-migrate), for moving or backing up accounts. Docs: https://docs.inbuxa.org/install/accounts/ Both take an API key, since the server doesn't accept passwords on its API by default. Thanks again for asking. It's what got inbuxa-cli built. If anything trips you up, tell me here.
Owner

Closing, since the migration guide now covers the stored paths. If anything else trips you up during the move, please open a new issue.

Closing, since the migration guide now covers the stored paths. If anything else trips you up during the move, please open a new issue.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: inbuxa/inbuxa-server#209