You have been using mastodon.social for a while and now want full control over your data, moderation policies, and server rules. Moving to a self-hosted Mastodon instance lets you own your domain, set your own content policies, and avoid the limitations of a shared public server. This guide explains the complete migration process from mastodon.social to a self-hosted Mastodon server, including account setup, follower transfer, and data export.
Mastodon provides built-in tools to move your profile, followers, and follows to a new account. The process does not transfer your old posts or direct messages. You must set up a new account on your self-hosted instance first, then initiate the move from your old mastodon.social account.
This article covers every step required for a successful migration, from preparing your self-hosted instance to verifying the transfer is complete.
Key Takeaways: Migrating From mastodon.social to a Self-Hosted Instance
- Preferences > Import and Export > Export: Downloads your archive of posts, lists, and media from mastodon.social.
- Preferences > Account > Move to a different account: Initiates the follower migration handshake to your new self-hosted account.
- New instance account settings > Profile: Displays the redirect notice that tells visitors your new address.
Understanding the Mastodon Account Migration Mechanism
Mastodon’s account migration feature is designed to move your social graph, not your content. When you move from mastodon.social to a self-hosted instance, the following items are transferred:
- Your followers — they are automatically redirected to follow your new account.
- Your follows — the accounts you follow are copied to your new profile.
- Your profile display name and avatar — these are copied from the old account.
The migration does NOT transfer:
- Your old posts (toots) — they remain on mastodon.social.
- Your direct messages — they stay on mastodon.social.
- Your bookmarks and favorites — they are not migrated.
The old mastodon.social account is set to redirect mode. Any visitor who goes to your old profile URL will see a notice pointing to your new self-hosted account. You can continue to access your old account for posts and messages, but you cannot post from it after migration.
Prerequisites for Migration
Before you start, make sure you meet these requirements:
- You have full admin access to your self-hosted Mastodon instance. If you are not the admin, ask the admin to create your new account.
- Your new account on the self-hosted instance is at least 30 days old. Mastodon requires this to prevent spam migration.
- You can log in to both your mastodon.social account and your new self-hosted account at the same time.
- Your self-hosted instance has a valid email address for notifications and verification.
Steps to Migrate From mastodon.social to a Self-Hosted Instance
Follow these steps in order. Do not skip any step.
Step 1: Export Your Data From mastodon.social
- Log in to mastodon.social
Open your browser and go to mastodon.social. Enter your username and password. - Open Preferences
Click the gear icon in the right sidebar or go to https://mastodon.social/settings/profile. - Go to Import and Export
In the left menu, click Import and Export. - Click Export
Under Export, click the Export button. Mastodon downloads a ZIP archive containing your posts, media, lists, and account data. - Save the archive to your computer
Store the ZIP file in a safe location. You will use it later to restore lists and follows if needed.
Step 2: Set Up Your Self-Hosted Instance Account
- Log in to your self-hosted instance
Open your instance URL in a browser. Log in with the account created by your admin or through the registration form. - Complete your profile
Go to Preferences > Profile. Set your display name, bio, and avatar to match your mastodon.social account. This helps followers recognize you. - Wait for the 30-day requirement
If your account is less than 30 days old, the migration will fail. Check the account age in Preferences > Account. If it is too new, wait until the account is at least 30 days old before proceeding.
Step 3: Initiate the Account Move From mastodon.social
- Log in to mastodon.social
Open mastodon.social and enter your credentials. - Open Preferences
Click the gear icon in the right sidebar. - Go to Account
In the left menu, click Account. - Click Move to a different account
Scroll down to the Moving section. Click Move to a different account. - Enter your new account handle
Type your full new account address in the format @username@yourdomain.com. For example, if your new account is @john@example.social, enter exactly that. - Enter your new account password
Mastodon asks for the password of your new self-hosted account to verify ownership. Type the password. - Click Move Followers
Mastodon sends a request to your new instance. The move process starts. It may take a few minutes to complete.
Step 4: Verify the Migration
- Check your new account
Log in to your self-hosted instance. Go to your profile page. You should see your old followers listed in the followers count. - Check your old account
Visit your old mastodon.social profile URL. You should see a banner that says This account has moved to @username@yourdomain.com. - Post a test toot
From your new account, post a short toot. Ask your followers to confirm they see it. If they reply, the migration worked.
Step 5: Import Your Lists and Follows (Optional)
- Extract the exported archive
Open the ZIP file you downloaded from mastodon.social. Find the file named following_accounts.csv. - Go to Import and Export on your new instance
Log in to your self-hosted instance. Open Preferences > Import and Export. - Click Import
Under Import, click Choose File. Select the following_accounts.csv file. Click Upload. - Confirm the import
Mastodon processes the CSV and adds the accounts you followed on mastodon.social to your new account. This step is optional because the migration already copies follows, but it ensures no follows are missed.
Common Issues During Migration
Account Age Requirement Not Met
If you see an error saying the new account must be at least 30 days old, you cannot proceed until that time passes. Check the account creation date in Preferences > Account on your self-hosted instance. Wait the remaining days and try again.
Password Verification Fails
Mastodon requires the password of your new account during the move process. If you type the wrong password, the move fails. Double-check the password by logging out and logging back into your self-hosted instance. Then retry the move from mastodon.social.
Followers Not Showing on New Account
After the move, followers may take up to 24 hours to appear. Mastodon instances process follower migrations asynchronously. If followers are missing after 24 hours, ask one follower to manually unfollow and refollow your new account. This triggers a fresh follow request.
Old Account Still Shows Active
After migration, your old mastodon.social account remains visible but is set to redirect mode. You cannot post from it. If you want to delete the old account entirely, go to Preferences > Account > Delete account. Deleting the old account removes the redirect notice, so only do this after you are certain followers have switched.
Mastodon.social vs Self-Hosted Instance: Key Differences
| Item | mastodon.social | Self-Hosted Instance |
|---|---|---|
| Domain | mastodon.social | Your own domain |
| Moderation control | Follows server rules | You set the rules |
| Data ownership | Subject to server policy | Full control |
| Server load | Shared with thousands | Depends on your hardware |
| Cost | Free | Hosting and domain fees |
| Customization | None | Full theme and feature control |
After completing the migration, you now have full administrative control over your Mastodon experience. Your followers have been redirected to your new self-hosted instance, and your profile is active on your own domain. Next, explore the instance moderation panel to set content filters and local rules. For advanced users, consider enabling ActivityPub relay subscriptions to boost your instance’s federation reach.