Browse Source

Init and added backup stuff for mastodon

Blallo 5 years ago
commit
481d797c72

+ 3 - 0
README.md

@@ -0,0 +1,3 @@
+# A small set of server-side utilities
+
+Divided by server.

+ 25 - 0
mastodon/README.md

@@ -0,0 +1,25 @@
+# Utilities to keep mastodon instance clean (and hopefully running)
+
+## Postgres backup
+
+(All the mastodon installation is in `/home/mastodon/live` running as `mastodon`).
+
+Create a `/home/mastodon/.bin` directory and place there the backup script (`dobackup.sh`)
+Create also:
+
+ - `/home/mastodon/.bu`
+ - `/home/mastodon/.bu/monthly`
+
+Then place in (assuming we are on a debian-like distro) `/lib/systemd/system` the following:
+
+ - `pg_backup_daily.service`
+ - `pg_backup_daily.timer`
+ - `pg_backup_monthly.service`
+ - `pg_backup_monthly.timer`
+
+
+And start them (as root):
+
+```
+$ systemctl enable pg_backup_*.timer
+```

+ 5 - 0
mastodon/dobackup.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+
+BUDIR="/home/mastodon/.bu/"
+
+pg_dump mastodon_production > "${BUDIR}/$(date +%Y%m%d)-mastodon_production.sql"

+ 8 - 0
mastodon/pg_backup_daily.service

@@ -0,0 +1,8 @@
+[Unit]
+Description=Backup postgres database mastodon_production
+
+[Service]
+Type=oneshot
+User=mastodon
+Group=mastodon
+ExecStart=/home/mastodon/.bin/dobackup.sh

+ 9 - 0
mastodon/pg_backup_daily.timer

@@ -0,0 +1,9 @@
+[Unit]
+Description=Backup postgres database mastodon_production
+
+[Timer]
+OnCalendar=daily
+Persistent=true
+
+[Install]
+WantedBy=timers.target

+ 8 - 0
mastodon/pg_backup_monthly.service

@@ -0,0 +1,8 @@
+[Unit]
+Description=Backup postgres database mastodon_production (monthly)
+
+[Service]
+Type=oneshot
+User=mastodon
+Group=mastodon
+ExecStart=/bin/bash -c "mv $(ls -rt /home/mastodon/.bu/*.sql|tail -1) /home/mastodon/.bu/monthly/"

+ 9 - 0
mastodon/pg_backup_monthly.timer

@@ -0,0 +1,9 @@
+[Unit]
+Description=Backup postgres database mastodon_production (monthly)
+
+[Timer]
+OnCalendar=monthly
+Persistent=true
+
+[Install]
+WantedBy=timers.target