Moving your apps to CoreHost
You can move most self-hosted apps to CoreHost yourself today, in four steps: deploy the same app on CoreHost, stop it, upload your old data over SFTP from the Files tab, and start it again. Or ask us to move it with you in a support ticket. It works from a VPS running Docker, a home server or another host such as PikaPods.
Moving is something you can do today with an SFTP client and the control panel. This guide covers the ways to move, the checks to make before you start, the steps themselves, and the apps where a different route works better. Support is included if you get stuck.
Ways to move
Guided move, by yourself
Deploy the app, stop it, upload your old data over SFTP from the Files tab (or use the app's own import screen), then start it. It works from a VPS running Docker, a home server or another host such as PikaPods.
Ask us to move it
Open a ticket from your control panel, say which app you are moving and where it runs now, and support will tell you what can be moved and help you do it. Apps that keep their data in a database server are best done this way.
Before you start
- Find your data. Look up where the old app keeps it: the volume or folder in your Docker compose file, or the files your current host shows over SFTP.
- Check the version. Copy data from the same version that CoreHost runs, or an older one. Apps upgrade old data when they start, but they rarely read data written by a newer release.
- Note keys and settings. Some apps keep a secret or encryption key outside their data folder, in an environment variable, and need the same key to read their old data. Many apps let you set it in their settings on CoreHost before the first start with your data; if yours does not, ask support before you move. Never paste a key into a ticket: ask support for a private way to send it.
- Plan a few minutes of downtime. Stop the old app while you copy, so its files are complete. Databases in particular must not be copied while the app is writing to them.
- Size the new app. Pick at least the plan the app's page recommends, and add 25 GB storage blocks if your data is bigger than the plan's storage.
Where your data is on your old host
Each host lets you get your files out in its own way. These are the routes their documentation describes. Check the host's own pages before you rely on them.
| Old host | How to get your data out |
|---|---|
| PikaPods | Switch on SFTP in the pod settings, stop the pod and download its files; apps that keep a database outside the pod can export it as SQL from the pod settings. Turn on hidden files in your SFTP program. Full PikaPods guide |
| Your own server with Docker | Stop the container, then archive the volume or the bind-mounted folder. For databases use the database's own dump tool rather than copying files that are in use. Keep the compose file and the .env file: some apps hold their keys only there. |
| Elestio | Add an SSH key in the dashboard, stop the service and copy its project folder, or use the app's own export. Backups in the dashboard can only be restored inside Elestio. |
| Cloudron | Cloudron backups only restore into Cloudron, so use the app's own export, or copy files out of the running app with the Cloudron command line tool. |
| Umbrel and YunoHost | Copy the app's data folder over SSH, or on YunoHost create an app backup, which is a plain archive you can unpack. Export first: uninstalling an app on Umbrel deletes its data. |
| Railway, Render and Fly.io | Pull the volume files with each service's command line tool or SSH, and dump any separate database. Volume snapshots only restore inside the same service. |
Step by step
- Deploy the app on CoreHost from its page in the app catalog, in the region you want. Let it finish its first start: that creates its folders and, for most apps, a private admin account.
- In your control panel, open the app and take a backup from the Backups tab, so you have a clean point to go back to.
- Stop your old app, then copy its data out: over SFTP, with
docker cp, or with your old host's file tools. For apps that use a database server, use the app's own export or a database dump instead of copying the database files. - Stop the new app with the Stop button on its page in your control panel.
- Open the Files tab. Connect with any SFTP client using the host, port and username shown there, or use the file manager in the browser for smaller files. Upload your data into the matching folders, replacing the files the new app created. The browser uploader takes files up to 100 MB each and can unpack a zip or tar archive; use SFTP for anything bigger.
- Start the app and sign in. Check that your data is there, then connect your own domain from the Domain tab if you use one.
- If something is not right, restore the backup from step 2 and try again, or open a support ticket with what you see. Keep your old app until you are happy with the new one.
Apps with a written guide
These apps have move instructions on their own page, under Move your existing app here.
- Uptime Kuma: Copy kuma.db, kuma.db-wal and the upload folder.
- ntfy: Copy user.db, cache.db and the attachments folder.
- Actual Budget: Export data on the old server, Import file on the new one.
- ByteStash: Export snippets as JSON, then Import Snippets.
- BookStack: Portable ZIP per book, then Import on the Books page.
- linkding: Import your HTML bookmarks file under Settings.
- FreshRSS: Import your OPML file.
- Mealie: Data Migrations imports Paprika, Tandoor and more.
Notes for particular apps
- Uptime Kuma
- Copy
kuma.db,kuma.db-walif it exists, and theuploadfolder. This works when the old instance uses the built-in SQLite database. If it uses MariaDB or MySQL, open a ticket first. - ntfy
- Copy
user.dbandcache.dbto the top folder and your attachments into theattachmentsfolder. Your users, passwords and access tokens come with them. - Apps with their own import screen
- Often the easiest route, with no files to copy. wallabag and Linkwarden import from Pocket, linkding imports standard bookmark files, Actual Budget and Sure import YNAB exports and CSV files, TriliumNext Notes imports Markdown, Evernote, Notion and Obsidian exports, and Gitea and Forgejo import repositories from GitHub and GitLab.
- Media libraries
- For Audiobookshelf, Navidrome, Kavita and Calibre-Web, copy your media files over SFTP and let the app scan them. A large library takes a while over a home connection, so add storage before you start.
- Paperless-ngx
- The simplest move is to copy your documents into the consume folder, where they are read and filed again. To keep your tags and history as they are, open a ticket first.
- Apps with a database server
- Apps that keep their data in PostgreSQL or MariaDB, such as Sure, Wiki.js, BookOrbit and RomM, cannot be moved by copying files. Use the app's own export and import where it has one, or open a ticket before you move.
- Pocket ID
- Passkeys only work on the address they were created for, so a fresh start, with people registering their passkeys again, is usually simplest.
Coming from PikaPods
PikaPods gives you SFTP access to your pod's files and documents a manual one-time backup for migrations: stop the pod, copy its files and export its database (PikaPods backup docs). Settings you entered as environment variables are not part of the files, so note them down first. Our guide to moving from PikaPods has the steps, and for a side by side look at the two services, see CoreHost as a PikaPods alternative.
What you get after the move
Each app runs as its own private instance, with its own CPU, memory and storage. It is backed up daily and you can restore any backup yourself from the panel; encrypted backups are stored in the EU. You keep SFTP access to your data, so leaving is as easy as arriving. Prices are flat per app, from US$1.10 a month in Poland or US$1.50 in Sydney, drawn by the hour from a prepaid balance in USD, AUD or EUR. New apps can be deployed in Sydney, the US and Poland. See pricing.
QuestionsAbout moving to CoreHost
Try the move on our credit
Every new account starts with $5 of credit, no card needed. Deploy the app, copy your data in, and keep your old one running until you are sure.