Self-hosting migration checklist
A one-page pre-flight list for moving a team off a paid tool and onto a self-hosted one. It covers the steps that decide whether the move is boring or a disaster: the data export, the sizing, the backups, and the rollback plan that most people skip.
Do not cancel the subscription until the last section is done. Run both side by side until you have restored a backup and your team has used the new tool for real work.
1. Before you install anything
- Export a real copy of your data from the current tool, today. Not a test account: your actual workspace. Some exports are partial, rate-limited or only available on higher tiers. Find out now, not on the day your contract ends.
- Open the export and check what is missing. Attachments, comments, history, user mentions and permissions are the usual casualties.
- Confirm the replacement can import that format. If it cannot, budget the time to convert it. This cost is not in any figure on this site.
- List the integrations you rely on. SSO, chat notifications, webhooks, calendar sync. Check each one exists for the self-hosted tool.
- Check the licence. Several popular tools are source-available rather than open source, with limits on commercial use. Each tool page on this site flags it.
- Name one owner. Self-hosted software without a named person responsible for updates is the most common way these projects fail.
2. Sizing and setup
- Size the server from the tool's cost page for your team size, and keep the 25% memory headroom. A server sized exactly to its working set tends to fall over during its first upgrade.
- Use the project's own Docker Compose file rather than a third-party one, and pin the
image version instead of using
latest. - Put it behind HTTPS on its own subdomain from day one. Changing the URL later breaks links, OAuth callbacks and mobile clients.
- Configure outbound email through a transactional provider. Password resets and notifications silently fail without it, and most tools will not warn you.
- Close every port except 80 and 443, and never expose the database directly.
- Turn on SSO or at least enforced two-factor authentication before inviting anyone.
3. Backups, tested
- Back up both the database and the uploaded files. A database dump without the uploads directory restores a tool full of broken attachments.
- Keep at least one copy off the server, with a provider or region different from the server itself.
- Automate it, and alert when it fails. A backup job that stopped three weeks ago is the normal way people discover they had no backup.
- Restore it onto a fresh server before go-live. Time how long it takes. That number is your real recovery time, and until you have it you do not have backups, only files.
4. Cutover
- Pick a quiet day and announce a content freeze on the old tool for the migration window.
- Take a final export after the freeze, import it, and spot-check a sample of records, attachments and permissions against the old tool.
- Move a small group first for a week of real work before moving everyone.
- Redirect or bookmark the new URL everywhere the old one was linked: docs, chat, browser bookmarks, mobile apps.
5. The rollback plan most people skip
- Write down, before cutover, what would make you go back. Data loss, a missing feature the team cannot work without, or repeated outages. Decide the threshold while you are calm.
- Keep the old subscription for one more billing cycle after go-live, even though it feels wasteful. It is the cheapest insurance you will buy.
- Know how to export back out of the new tool into something the old one can read.
- Only cancel the old subscription once a restore test has passed, the full team has used the new tool for real work, and nobody has asked for the old one back.
6. After go-live
- Put updates in the calendar. This site budgets 0.5 to 3 hours a month depending on the tool. If it is not scheduled, it does not happen.
- Read release notes before upgrading, especially for major versions with database migrations.
- Add uptime monitoring so you hear about an outage before your team does.
- Repeat the restore test every few months.
Before you start
If you have not priced the move yet, check whether self-hosting actually saves money at your team size. For some tools it does not, once the hours above are counted. See every comparison or read how the costs are calculated.