1,035
edits
No edit summary |
(→Discord: new section) |
||
(15 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
Up to [[Part Of::Mastodon]] | |||
In this case we are using [[Documents::glitch-soc]] to run a [[Implements::Mastodon]] server. | In this case we are using [[Documents::glitch-soc]] to run a [[Implements::Mastodon]] server. | ||
Line 16: | Line 18: | ||
https://docs.joinmastodon.org/admin/prerequisites/ | https://docs.joinmastodon.org/admin/prerequisites/ | ||
See also: [[Linode/Setup]] | |||
<markdown> | <markdown> | ||
- [x] Turn off password SSH access | - [x] Turn off password SSH access | ||
- [x] Install fail2ban | |||
- [x] Configure iptables to only allow SSH and HTTP/HTTPS | |||
</markdown> | |||
=== DNS === | |||
Set up the domain name! | |||
<markdown> | |||
- [x] Add an `A` record pointing at the linode's IP Address | |||
- [ ] Set up rDNS pointing back at the domain | |||
</markdown> | </markdown> | ||
== Installation == | |||
https://docs.joinmastodon.org/admin/install/ | |||
<markdown> | |||
- [x] Add apt repositories | |||
- [x] Install apt packages | |||
- [x] Make `mastodon` user | |||
- [x] Install Ruby | |||
- [x] Configure postgresql | |||
- [ ] Configure nginx (config below) | |||
- [x] Get SSL Cert | |||
- [x] Install & Enable systemd services | |||
</markdown> | |||
Once DNS is set up, you can run the following as root:<syntaxhighlight lang="shell"> | |||
certbot certonly --standalone | |||
</syntaxhighlight>to get SSL certs. Then restart nginx to load them. | |||
=== Services === | |||
* mastodon-web | |||
* mastodon-sidekiq | |||
* mastodon-streaming | |||
== Configuration == | |||
=== nginx === | |||
Line 25: | Line 70: | ||
Create a SendGrid account, go to Settings > API Keys, and generate an API key. | Create a SendGrid account, go to Settings > API Keys, and generate an API key. | ||
Then set up the config like this: | Then set up the config in mastodon/live/.env.production like this: | ||
<code>SMTP_SERVER=smtp.sendgrid.net | <code>SMTP_SERVER=smtp.sendgrid.net | ||
SMTP_PORT=587 | SMTP_PORT=587 | ||
SMTP_LOGIN=apikey | SMTP_LOGIN=apikey | ||
SMTP_PASSWORD=<your-api-key> | SMTP_PASSWORD=<your-api-key> | ||
SMTP_FROM_ADDRESS= | SMTP_FROM_ADDRESS=noreply@neuromatch.social</code> | ||
(for SMTP_LOGIN literally just use "apikey") | (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<syntaxhighlight lang="bash"> | |||
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 | |||
</syntaxhighlight> | |||
== 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 | |||
* [[Category:Guide]] | * [[Category:Guide]] | ||
* [[Category:Mastodon]] | * [[Category:Mastodon]] | ||
== Discord == | |||
{{Message | |||
|Author=mannazsci | |||
|Avatar=https://cdn.discordapp.com/avatars/540104559079456770/12ce492294d6a3cd6f1ea00cbe8edb04.png?size=1024 | |||
|Date Sent=23-08-16 04:11:30 | |||
|Channel=technical-wg | |||
|Text=[[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;` | |||
|Link=https://discord.com/channels/1049136631065628772/1049184335514828860/1141222683388956812 | |||
}} |