mirror of
https://github.com/jakejarvis/mastodon-utils.git
synced 2025-04-25 08:55:21 -04:00
🦣 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 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!!! 😊
mkdir -p /home/mastodon
git clone https://github.com/jakejarvis/mastodon-utils.git /home/mastodon/utils
cd /home/mastodon/utils
# override default environment variables if necessary:
cp .env.example .env
# install Mastodon on fresh Ubuntu box:
./scripts/install.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
Scripts
init.sh
: A small helper that runs at the very beginning of each script below to initializenvm
/rbenv
and set consistent environment variables.- Optional: The default values of each config variable can be seen in
.env.example
. Create a new file named.env
in the root of this repository (probably at/home/mastodon/utils/.env
) to override any or all of them. - Optional: To make your life easier, you can also source this script from the
.bashrc
of themastodon
user and/or whichever user you regularly SSH in as:
- Optional: The default values of each config variable can be seen in
[ -s /home/mastodon/utils/init.sh ] && \. /home/mastodon/utils/init.sh >/dev/null 2>&1
version.sh
: A quick and easy way to testinit.sh
and.env
by printing the version numbers of Mastodon, rbenv, nvm, Ruby, Node, and Yarn.
Periodic tasks
backup.sh
: Backs up Postgres, Redis, and.env.production
secrets to a.tar.gz
file in$MASTODON_ROOT/backups
. Useful for a daily cronjob.- Keeps archives for the last 5 days, last 4 weeks, and every month
- Optionally uploads to S3 with
s3cmd
purge.sh
: Runs Mastodon's built-in cleanup commands, designed for a weekly cronjob.- Keeps 14 days of media
- Keeps 90 days of profile avatars, headers, and link preview cards
Dangerous
🚨 The following scripts are highly opinionated, catastrophically destructive, and very specific to me. Check them out line-by-line instead of running them.
install.sh
: Assumes an absolutely clean install of Ubuntu and installs Mastodon with all of the quirks from this repo. ConfigureMASTODON_USER
and other paths in.env
first (see.env.example
) if necessary. Get the far less dangerous version ofinstall.sh
here instead.upgrade.sh
: Upgrades Mastodon server (latest version if vanilla Mastodon, latest commit ifglitch-soc
) and re-applies all customizations. Get the far less dangerous version ofupgrade.sh
here instead.customize.sh
: Applies every Git patch below, sets defaults (mostly for logged-out visitors) and removes unused files.
Patches
Vanilla only:
increase-sidekiq-timeout.patch
: Small bump in Sidekiq's timeout before it decides a remote instance isn't available. Use this one very carefully!
Vanilla and glitch-soc
:
system-font.patch
: Use the system's default sans-serif font stack instead of Robotohide-contact-email.patch
: Hides themailto:
link on the About pagehide-rules.patch
: Hides the list of rules on the About page (meant only for single-user instances)hide-signup.patch
: Hide the "create account" button (for aesthetics, not security!)
glitch-soc
only:
mastodon-logo.patch
: Restore the Mastodon logo in the non-advanced sidebarsettings-sidebar-cleanup.patch
: Why is the most frequently used admin page listed under a link that takes you to another page to open a submenu in the sidebar to finally be able to click on it to go to the page?!?
License
MIT
Description
🦣 Small opinionated helper scripts, patches, and configs for Mastodon
https://fediverse.jarv.is/about
Readme
MIT
4.5 MiB
Languages
Shell
100%