How to Install Misskey on Raspberry Pi
Social media and microblogging platforms are an essential key to building an online community. While large, corporate-owned services such as Threads and Twitter are great if you want to gain tens of thousands of followers, the Fediverse is more geared towards human-scale conversations and interactions.
Misskey is a combined cloud storage and Fediverse platform that you can use to create your social corner of the web, based around a common interest.

What Is Misskey?
The Fediverse is a vast interconnected network of instances—individual servers which can act as standalone social media platforms or federate together. All Fediverse servers are based on the ActivityPub protocol, and the most common type is Mastodon. It’s easy toset up a Mastodon server on your own hardware.
The type of server you choose often depends on your interests and those of the people who will be using it with you.

Misskey is Japanese, and the artwork tends towards anime style, complete with a school-uniformed catgirl as the mascot.
Don’t let the aesthetic fool you: Misskey is actively developed open-source software that is fully compatible with the rest of the Fediverse.

Even better, it’s extremely customizable, comes with cloud storage features for individual accounts, and supports plugins that help you to easily extend the functionality of the Misskey web interface.
Install Misskey on Your Raspberry Pi
Before you start, follow the steps in our guide toset up your Raspberry Pi as a web server. Although you won’t need to install MariaDB, PHP, or Docker Compose right now, they may come in useful for otherRaspberry Pi self-hosting projects.
You will also need tobuy a domain nameif you don’t already have one. Visit your registrar, and from theAdvanced DNS options,add a new A record. Set theHostto ‘@’ and the value field to your IP address. Set the TTL (Time to Lease) value as low as possible, then save.

Docker Compose provides a simple way of installing a containerized version of Misskey on your Raspberry Pi without it interfering with other software on your system. The version of Docker Compose in the default Raspberry Pi OS repository is outdated, and unsuitable for this project, so connect to your Pi usingSSH (secure shell), andmanually install Docker Compose.
You’re now ready to install Misskey on your Raspberry Pi.

First, clone the Misskey GitHub repository and move into it:
Misskey provides example environment, Docker Compose, and configuration files. Copy these to production versions with the following block of commands:
docker.envcontains the username, password, and database name for the PostgreSQL database. Edit the file with:
…and change the username and password to something memorable. Save and exit nano withCtrl + OthenCtrl + X. Now editdefault.ymlwith:
Locate theFinal accessible URLsection and replace the example URL with the URL of your domain. Make sure to include the HTTPS prefix.
Scroll down toPostgreSQL configuration, and enter the database credentials you previously entered intodocker.env. Save and exit nano withCtrl + OthenCtrl + X.
Misskey will be exposed on port3000. If this is already in use, editdocker-compose.ymland choose a different port.
With your environmental variables set, it’s time to build and initialize the database, and perform migrations with the following commands:
This is not a quick procedure, and you can safely leave it unattended while youbrowse Wikipedia from another terminal windowfor the next eight minutes.
To ensure you can upload files to Misskey, you need to take ownership of thefilesdirectory with:
If you fail to do this, you’ll see an internal error message with code5d37dbcb-891e-41ca-a3d6-e690c97775acwhen you attempt to add any images.
Bring Misskey up with:
After a few minutes, you should be able to visit your Misskey instance in your browser at:your-pi-local-ip-address:3000.
If you want greater insight into the condition and logs of your Misskey Docker container, you caninstall and use lazydocker.
Expose Your Misskey Instance to the Web
You should have already installed Apache2 and Certbot, so now’s a good time to create a config file:
In the new file, paste the following:
If you changed the port indocker-compose.yml, be sure to change it here as well. Take care to substitute your own domain name formuo.lol, and ensure not to includehttporhttpsprefixes. Save and exit nano withCtrl + OthenCtrl + X, then enable the conf file and restart Apache.
Certbot gives you the easiest way of fetching and deploying TLS certificates and keys for your Misskey instance. Start it with:
Select your domain name from a list and pressEnter, then restart Apache again with:
Your Misskey instance is now secured fromman-in-the-middle attacks, and exposed to the web.
Create Your Misskey Admin Account
Visit your Misskey instance by entering your domain name into your favorite web browser, then create an admin user andgenerate a strong password. Your username will be in the format@user@your-misskey-instance.tld. you could only change the first part of this.
You’ll be prompted to set up your profile, and while you can clickLaterto postpone it, the profile creation wizard will pop up and annoy you while you’re doing something else. Choose a profile pic, fill out yournameandbio, then clickSaveand continue.
Your user account will have a number of privacy options available on the next screen. You can choose whether follower requests require approval, whether search engines can index your posts, whether to set a flag to disallow AI learning on your posts, and even hide your online status. Feel free to click through the remaining options.
How to Customize Your Misskey Instance
Admin users such as you are able to customize and control Instance settings from theControl Panelentry in the navigation bar on the left.
TheDashboardwill give you all the facts, figures, and stats you need to get a good overview of your instance, including active users, how many users are online, and other instances with which your server federates. As you’d expect,CustomEmojiallows you to specify custom emoji packs.
InControl Panel > Settings > General, you should provide information about your instance, including its name, a description, and maintainer details. You don’t have to set these, but a good description will help people decide whether to join your instance or look elsewhere. it’s possible to also choose whether to cache remote files. Disabling this option means that you’ll use less storage, but more bandwidth.
InBranding, you can set URLs for icons, banners, background images, error images, and specify themes. This really gives your Misskey instance its look and feel, so go wild. You can easily set additional themes fromSettings > Themes.
Moderationsettings are important to running a successful Fediverse instance, and you need to a way to control who is able to sign up and sign in. With theEnable new user registrationtoggle, you can choose to allow or disallow new accounts to be created on your platform. If you have too many local users, your Raspberry Pi will struggle under the load. You can additionally require that new accounts are created with a valid email address.
So that everyone knows how to behave, click onServer Rules, and create some basic rules for everyone to follow. Again, this isn’t essential, but means that everyone knows where they stand when you have to swing the ban-hammer at a later date. They can be as basic as you like, and you can also create a more detailedTerms of Serviceagreement. Feel free to add users and assign roles as you see fit!
Misskey Is Great Software for Creating a Fediverse Server!
Misskey is simple to set up and configure, and if you get stuck, there are plenty of helpful people who will be willing to help you.
If Misskey isn’t the right solution for you, there are dozens of different types of Fediverse instance you can host on your Raspberry Pi!
Do social media the open source way by hosting your own Akkoma Fediverse server on a Raspberry Pi.
This small feature makes a massive difference.
It saves me hours and keeps my sanity intact.
I found my TV was always listening—so I shut it down.
The key is not to spook your friends with over-the-top shenanigans.
Lose your laptop without this feature, and you’ll wish you had turned it on.