Backrest: install Backrest as a systemd service to simplify pre/post-backup hooks (e.g., docker compose stop/start). Do not want to overcomplicate setup and run backrest (single binary) in a container with SSHing to host and/or docker.sock access
This commit is contained in:
14
hosts/home-morefine/systemd/backrest/backrest.service
Normal file
14
hosts/home-morefine/systemd/backrest/backrest.service
Normal file
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Backrest
|
||||
After=network.target docker.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=backups
|
||||
ExecStart=/usr/local/bin/backrest
|
||||
WorkingDirectory=/home/backups/backrest
|
||||
# wrap with caddy reverse proxy
|
||||
Environment="BACKREST_PORT=172.17.0.1:9898"
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
28
hosts/home-morefine/systemd/backrest/install.sh
Normal file
28
hosts/home-morefine/systemd/backrest/install.sh
Normal file
@@ -0,0 +1,28 @@
|
||||
#! /bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
BACKREST_VERSION='v1.11.2'
|
||||
TMPDIR="$(mktemp -d)"
|
||||
|
||||
# backrest working directory
|
||||
sudo mkdir -p /home/backups/backrest
|
||||
sudo chown backups:backups /home/backups/backrest
|
||||
|
||||
curl -fL -o "${TMPDIR}/backrest.tar.gz" \
|
||||
"https://github.com/garethgeorge/backrest/releases/download/${BACKREST_VERSION}/backrest_Linux_x86_64.tar.gz"
|
||||
|
||||
tar -xzf "${TMPDIR}/backrest.tar.gz" -C "${TMPDIR}"
|
||||
|
||||
if systemctl is-active --quiet backrest; then
|
||||
sudo systemctl stop backrest
|
||||
echo "Paused backrest for update"
|
||||
fi
|
||||
|
||||
sudo install -D -o root -g root -m 0644 ./backrest.service /etc/systemd/system/backrest.service
|
||||
sudo install -o root -g root -m 0755 "${TMPDIR}/backrest" /usr/local/bin/backrest
|
||||
|
||||
echo "Reloading systemd service"
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable --now backrest
|
||||
|
||||
rm -rf "${TMPDIR}"
|
||||
Reference in New Issue
Block a user