Mastodon/Setup
Up to Mastodon
In this case we are using glitch-soc to run a Mastodon server.
- Neuromatch Fork: https://github.com/NeuromatchAcademy/mastodon
We will make:
- One "default" instance at neuromatch.social
- One Dev Instance at dev.neuromatch.social
We will be following the official Mastodon setup docs (except cloning our fork of glitch-soc instead of the base masto repo):
Prereqs
https://docs.joinmastodon.org/admin/prerequisites/
See also: Linode/Setup
- Turn off password SSH access
- Install fail2ban
- Configure iptables to only allow SSH and HTTP/HTTPS
DNS
Set up the domain name!
A
record pointing at the linode's IP Address
Add an - Set up rDNS pointing back at the domain
Installation
https://docs.joinmastodon.org/admin/install/
- Add apt repositories
- Install apt packages
mastodon
user
Make - Install Ruby
- Configure postgresql
- Configure nginx (config below)
- Get SSL Cert
- Install & Enable systemd services
Once DNS is set up, you can run the following as root:
certbot certonly --standalone
to get SSL certs. Then restart nginx to load them.
Services
- mastodon-web
- mastodon-sidekiq
- mastodon-streaming
Configuration
nginx
Configure the email server
Create a SendGrid account, go to Settings > API Keys, and generate an API key.
Then set up the config in mastodon/live/.env.production like this:
SMTP_SERVER=smtp.sendgrid.net
SMTP_PORT=587
SMTP_LOGIN=apikey
SMTP_PASSWORD=<your-api-key>
SMTP_FROM_ADDRESS=noreply@neuromatch.social
(for SMTP_LOGIN literally just use "apikey")
Restart services
Restart all 3 services after each change to .evn.production or config/settings.yml and you need to have root access for this to work
sudo su
cd /etc/systemd/system
for service in mastodon-{web,sidekiq,streaming}; do service $service restart; done
for service in mastodon-{web,sidekiq,streaming}; do service $service status; done
Setting up an admin account from CLI w/ email confirmation
Note that you need to be logged in as the mastodon user for this to work.
<OPTIONAL> If you did not create that user account and don't know the password, then you should do the following:
sudo su - mastodon
The following command will work if the username and email have been registered from the UI. Very useful if SMTP server hasn't been setup yet.
cd /home/mastodon/live RAILS_ENV=production ./bin/tootctl accounts modify <username> --role Admin --email <email-address> --confirm
Discord
Mastodon/Setup useful commands to improve disk usage:
`# Prune remote accounts that never interacted with a local user RAILS_ENV=production /home/mastodon/live/bin/tootctl accounts prune;
- Remove remote statuses that local users never interacted with older than 4 days
RAILS_ENV=production /home/mastodon/live/bin/tootctl statuses remove --days 4;
- Remove media attachments older than 4 days
RAILS_ENV=production /home/mastodon/live/bin/tootctl media remove --days 4;
- Remove all headers (including people I follow)
RAILS_ENV=production /home/mastodon/live/bin/tootctl media remove --remove-headers --include-follows --days 0;
- Remove link previews older than 4 days
RAILS_ENV=production /home/mastodon/live/bin/tootctl preview_cards remove --days 4;
- Remove files not linked to any post
RAILS_ENV=production /home/mastodon/live/bin/tootctl media remove-orphans;`