# tootpaste ![tootpaste logo](./logo.png) 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 ```bash $ 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: ```bash $ 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: ```bash $ DRY_RUN=false DO_CACHE_RECOUNT=false DB_POOL=50 tootpaste ```