1
mirror of https://github.com/jakejarvis/mastodon-utils.git synced 2025-04-26 03:25:22 -04:00
mastodon-utils/README.md

4.7 KiB

🦣 Mastodon utilities

Random opinionated helper scripts & front-end customizations for my personal Mastodon instance (running on glitch-soc). You definitely don't want to use any of this as-is — check out my more general purpose mastodon-installer scripts instead.

Notes

The wiki of this repo and the /etc folder are simply my way of not forgetting how I did something, which I do quite a bit. Refer there for random notes on PgBouncer, Grafana, etc. but DO NOT BLINDLY COPY & PASTE anything there without doing your own research!

Usage

AGAIN, DEFINITELY DO NOT JUST RUN THIS IF YOU'RE NOT ME!!! 😊

This sets up the bare minimum customizations after Mastodon is installed:

git clone https://github.com/jakejarvis/mastodon-utils.git /home/mastodon/utils && cd /home/mastodon/utils

# setup nginx using conf files from this repo:
./scripts/setup_nginx.sh

# back up Postgres, Redis, and secrets:
./scripts/backup.sh

# pull latest Mastodon (vanilla or glitch-soc) and apply patches from this repo:
./scripts/upgrade.sh

# cherry-pick everything else below...

Scripts

  • init.sh: A small helper that runs at the very beginning of each script below to initialize rbenv and set consistent environment variables.
    • Optional: To make your life easier, you can also source this script from the .bashrc of the mastodon user and/or whichever user you regularly SSH in as:
if [ -f /home/mastodon/utils/init.sh ]; then
  . /home/mastodon/utils/init.sh
fi
  • apply_patches.sh: Dangerously applies every patch listed below, and automatically detects if glitch-soc patches should also be applied
  • backup.sh: Backs up Postgres, Redis, and .env.production secrets to a .tar.gz file in /home/mastodon/backups — useful for a periodic cronjob
  • setup_nginx.sh: Sets up symlinks from /etc/nginx to nginx confs in this repo
  • upgrade.sh: Upgrades Mastodon server (latest version if vanilla Mastodon, latest commit if glitch-soc) and re-applies patches listed below
  • version.sh: Tests init.sh by printing Mastodon, Ruby, and rbenv versions.
  • weekly_cleanup.sh: Runs Mastodon's built-in cleanup commands, designed for a weekly cronjob
    • Keeps 7 days of media (in object storage)
    • Keeps 90 days of generated preview cards

Patches

Vanilla and glitch-soc:

glitch-soc only:

License

MIT