2.0 KiB


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 \
  -O /tmp/
$ sudo install -m 755 -o root -g root /tmp/ /usr/local/bin/tootpaste

How to use

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

$ DRY_RUN=false tootpaste


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


$ DRY_RUN=false DO_CACHE_RECOUNT=false DB_POOL=50 tootpaste