YARRPS!

( Yellowbeard's Automatic Retard Resistant Pleroma Script )


So, you wanna be a pirate, huh? Wanna store your data on your own ship and sail the open seas?! Well you're in luck! With this handy little script, you'll be able to run your very own instance of a decentralized social media software called "Pleroma".

***WARNING*** Your server should be a fresh install of Ubuntu. DO NOT use this script with a production server! It could seriously fuck something up.

Getting Started

You'll need two things to get started:

If you have both of those things and you know how to ssh into your server, you can skip ahead to "Installation". Otherwise, keep reading, or just watch the video...


Register a domain name with a site like, Namecheap, Epik, or any registrar that allows free privacy protection from whois lookups. If you want to support smaller registrars, a couple that I've seen on the fediverse are gandi.net and porkbun.com.

I have only tested this on a fresh install with Ubuntu. It might work with Debian, but I haven't tested it. Best to just use ubuntu. I would recommend getting a cheap VPS from somewhere like Linode, Digital Ocean, or Vultr. 1CPU/1GB RAM should be fine. If you think you're gonna have a lot of users or you're going to be serving a lot of media files, you can get one with 2 CPU's. Any more than that, and this script is probably too basic for your needs. Remember the root password that you set for your server, because we're going to be using it soon.

Next you're going to point your domain name at your server's IP address, so look at the IP address on your server, then go to your webhosting site and go to the DNS section. You're going to create a couple of entries as "A Record"s. They are going to be "www" and "@" (both without quotes) and use your server's IP address for both records. If you plan on making a non-pleroma website with this domain in the future, instead of those, you can make a subdomain instead. Instead of "www" and "@", just use one called whatever you want (social, pleroma, peepee, etc.). If you use a subdomain your instance url will be, for example, social.yoururl.com, or whatever your subdomain was. Hopefully I've explained this well enough. If not, let me know.

Now that you have a fresh Ubuntu server and your domain name is pointing at your server, it's time to log in! If you are using linux, open a terminal, and enter these commands:

ssh-keygen
ssh-copy-id root@[your url without brackets]

It should ask you to accept a new certificate. Say yes. Then, when it prompts you, you will enter the root password that you remembered from the VPS site (you DID remember that password, didn't you?).
What this does is set up a SSH Keypair. Without getting too technical, this is a set of files that allows you to log in to another computer securely. We created the keypair, then we transferred the public key to the server using the server's root password. By default the keys are stored in ~/.ssh on your computer. It is very important to BACK UP THESE KEYS!!!. Put them on a usb drive, stick them in a password protected zip file and email it to yourself, I don't care how, just back them up somehow. If your computer shits the bed, you won't be able to log into your server again, so if you don't care about that and want to YOLO your server login, that's on you.

Finally, let's log in to the server:

ssh root@[your url without brackets]

If everything was successful, you should have a prompt that looks something like: root@yoururl#
If you are using windows, you can probably do these commands with powershell (I haven't tested this), or you can almost certainly do them with WSL. If you are using OS X, you can use your macbook to hammer in nails.

Installation

So you're logged into your server with a fresh Ubuntu install and you're ready to go. So enter these three commands:

curl -LO yarrps.xyz/yarrps.sh
chmod +x yarrps.sh
./yarrps.sh

And that's it! You'll be prompted to enter some information about your setup, and then the script will run and at the end you'll have a fully functional Pleroma instance!



Post Installation

It's a good idea to turn off password login for your server. It's much easier to brute force this password than some website login, since it doesn't lock you out after 3 bad attempts. When I was writing/testing this script, someone cracked a password on one of my test servers (the password was something ridiculously easy like 1234 or something). It didn't really matter, because I was only using the server to work on this script, but the point is, there are always people looking to get control of a new server for nefarious reasons (they were mass port scanning IP addresses for whatever reason). So, to turn of password authentication, you can either use vim, or if you don't know how to use vim then use nano with this command:

nano /etc/ssh/sshd_config

Find the line that says "PasswordAuthentication yes" and change "yes" to "no". Also, if it has a "#" at the beginning of the line, delete the #. If you're using nano, press ctrl+x to close the file and save the changes. If you're using vim, save and exit. You should know what you're doing.

You will no longer be able to ssh into your server with the root password. You must have the private ssh key. Hope you backed it up, or you will be locked out forever if your hard drive craps out.


Go ahead and reboot to make sure everything still works by simply entering:

reboot

Contact

For information about running your instance, check out docs.pleroma.social.

For help with running your server, know that it uses nginx and try using a search engine. I've already held your hand enough.

If you have any questions or comments about YARRPS specifically, you can message me from any fediverse account @yellowbeard@queenlainsrevenge.xyz