175 shaares
mastodonControl.zsh
#!/usr/bin/zsh
# Script to launch a new embedded session for controlling Mastodon with tootctl.
autoload colors && colors
pushd /home/mastodon/live
echo "$fg_bold[magenta]MASTODON CONFIGURATION SESSION$reset_color\n"
echo "\ttootctl:\tMastodon control commands"
echo "\t.env.production (file):\tProduction Environment Constants"
echo "\trake --tasks:\tProduction Configuration\n"
echo "$fg[red]Mastodon upgrade$reset_color:\n\tbundle install; yarn install\n\tSKIP_POST_DEPLOYMENT_MIGRATIONS=true rails db:migrate"
echo "\trails assets:precompile\n\t(Restart services)\n\ttootctl cache clear\n\trails db:migrate\n"
# echo `pwd`
sudo -u mastodon env PATH="/home/mastodon/live/bin:$PATH" RAILS_ENV=production MASTODON_CONFIG_MODE=1 zsh
restartMastodonBackend.zsh
read -r -p "Really restart mastodon backend (sidekiq, streaming, elasticsearch)? [Y/n] " input
case $input in
[yY][eE][sS]|[yY])
sudo systemctl restart mastodon-sidekiq.service
sudo systemctl restart mastodon-streaming.service
sudo systemctl restart elasticsearch.service
;;
*)
echo "Abort restart."
exit 1
;;
esac
restartMastodonWeb.zsh
read -r -p "Really restart mastodon-web? [Y/n] " input
case $input in
[yY][eE][sS]|[yY])
sudo systemctl restart mastodon-web.service
;;
*)
echo "Abort restart."
exit 1
;;
esac
backupMastodon.zsh (an older method I don't use anymore but it works!)
#!/usr/bin/zsh
today=(`date +"%F"`)
expiry=(`date +'%F' -d "-3 days"`)
echo "Starting backup for ${today}"
/bin/mkdir /var/backups/mastodon/${today}/
echo "Backing up Postgres production DB..."
sudo -u mastodon /usr/bin/pg_dump mastodon_production | gzip --rsyncable > /var/backups/mastodon/${today}/mastodon_production_${today}.sql.gz
echo "Backing up Redis..."
cp /var/lib/redis/dump.rdb /var/backups/mastodon/${today}/
echo "Backing up production configuration..."
/bin/cp /home/mastodon/live/.env.production /var/backups/mastodon/${today}/
echo "Deleting old backups locally..."
# Do not backup public files as they're hosted in object store.
# /bin/tar -cvzf /var/backups/mastodon/${today}/system${today}.tar.gz /home/mastodon/live/public/system
/bin/rm -rf /var/backups/mastodon/${expiry}/
echo "Authenticating to offsite and syncing backup..."
# Rsync backups to offsite with dedicated user.
RSYNC_USER=<<BACKUP_USER>>
# Used by rsync automatically
RSYNC_PASSWORD=<<BACKUP_PASSWORD>> rsync -auvb /var/backups/mastodon rsync://${RSYNC_USER}@<<BACKUP_SERVER>>
echo "Backup finished."