Toot(h)paste is a simple bash script to clean your Mastodon instance. https://www.benpro.fr
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Benoît S. 90f231e59f Missing some default values 2 months ago
CHANGELOG.md Init CHANGELOG 2 months ago
LICENSE Initial commit 2 months ago
README.md Missing some default values 2 months ago
logo.png Update logo 2 months ago
logo.xcf Update logo 2 months ago
tootpaste.sh Add openssl in check_command 2 months ago

README.md

tootpaste

tootpaste logo

Toot(h)paste is a simple bash script to clean your Mastodon instance. It is basically a wrapper around tootctl but add some more logic, especially around accounts cull to detect instances in errors and purge them (expired certificate, cannot connect, etc.)

How to install

$ wget https://git.benpro.fr/benoit/tootpaste/raw/branch/main/tootpaste.sh \
  -O /tmp/tootpaste.sh
$ sudo install -m 755 -o root -g root /tmp/tootpaste.sh /usr/local/bin/tootpaste

How to use

By default it runs in dry-run mode. To run without dry-run:

$ DRY_RUN=false tootpaste

Parameters

There are no arguments, everything is managed by environment variables, here is the list of what you can use:

  • DO_ACCOUNTS_CULL, boolean, run or not accounts cull step, default: true
  • DO_MEDIA_REMOVE, boolean, run or not media remove step, default: true
  • DO_STATUSES_REMOVE, boolean, run or not statuses remove step, default: true
  • DO_CACHE_RECOUNT, boolean, run or not cache recount step, default: true
  • TOOTCTL, string, path to tootctl binary, default: /home/mastodon/live/bin/tootctl
  • DB_POOL, integer, concurrency to use (connections to PostgreSQL), default: 5
  • DRY_RUN, boolean, run or not in dry-run mode, default: true
  • TLS_EXPIRED_MAX_SEC, integer, number of seconds, age difference between now and date of expired certificate, default: 1210000, 2w
  • INSTANCE_LAST_CHANCE_TIMEOUT, integer, timeout in seconds to connect to an instance that was previously not accessible, default: 30
  • MEDIA_REMOVE_DAYS, integer, how old in days media attachments have to be before getting removed, default: 7
  • CARDS_REMOVE_DAYS, integer, how old in days cards previews have to be before getting removed, default: 15
  • STATUSES_REMOVE_DAYS, integer, how old in days unreferenced statuses have to be before getting removed, default: 30

Example:

$ DRY_RUN=false DO_CACHE_RECOUNT=false DB_POOL=50 tootpaste