#+title: homelab-scripts #+options: toc:nil These are scripts I use to automate various tasks in my homelab. ** bin - ~add_qbt_trackers.py~ : This script fetches torrent tracker URLs from plaintext files hosted on the web and adds them to each torrent in a qBittorrent instance. - ~add_scihub_torrents.py~ : This script uses [[https://github.com/charmbracelet/gum][gum]] to select paginated text files that contain URLs of Sci Hub torrent files. For each selected file, the URLs are read and added to a qBittorrent instance. - ~fetch_combined_trackers_list.py~ : This script fetches a combined list of tracker URLs from plaintext files hosted on the web and writes them to a file in the current working directory. - ~qbth.py~ : This is a helper program for adding Linux and BSD distros to a qBittorrent instance. It's a bit crude, and the Python linter yells at me for it, but it gets the job done, and that's all I need it to do. Thank you. - ~qbt_sum_size.py~ : This script prints the total size of completed torrents and the total size of all torrents added to a qBittorrent instance. The former is a subset of the latter. - ~seed_armbian_torrents.py~ : This script downloads an archive from Armbian, extracts the torrent files within to a temporary directory, and adds each file to a qBittorrent instance. It first removes older Armbian torrents from the qBittorrent instance. - ~seed_scihub_max_seeders.py~ : This script finds which torrents have less than or equal to N seeders, where N is an integer argument supplied by the user. It then adds these torrents to a qBittorrent instance. - ~server0_backup~ : This script dumps my Mastodon instance's PostgreSQL database, then uses rclone to sync ~/etc~, ~/var/log~, and ~/home/jas~ to an S3-compatible object storage bucket (MinIO). It also copies the dumped Mastodon database and ~.env.production~ to the object storage bucket. ** systemd *** system - ~server0-backup.service~ : A systemd service unit that runs the ~server0_backup~ script. - ~server0-backup.timer~ : A systemd timer unit that triggers the corresponding service unit. *** user - ~glances.service~ : A systemd service unit for the user scope that runs a glances server. - ~gmcapsuled.service~ : A systemd service unit for the user scope that runs the gmcapsuled Gemini server.