Toot(h)paste is a simple bash script to clean your Mastodon instance.
Find a file
2022-04-22 18:32:38 +09:00
CHANGELOG.md Release 0.2.0 2022-04-22 18:32:38 +09:00
LICENSE Initial commit 2021-08-29 00:00:05 +00:00
logo.png Update logo 2021-08-29 10:17:27 +09:00
logo.xcf Update logo 2021-08-29 10:17:27 +09:00
README.md Missing some default values 2021-08-29 11:04:02 +09:00
tootpaste.sh Add a message when instance can be accessed 2022-04-22 17:22:02 +09:00

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