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:
@@ -1,29 +0,0 @@
|
|||||||
services:
|
|
||||||
backrest:
|
|
||||||
image: ghcr.io/garethgeorge/backrest:latest
|
|
||||||
container_name: backrest
|
|
||||||
hostname: backrest
|
|
||||||
networks:
|
|
||||||
- caddy_internal
|
|
||||||
volumes:
|
|
||||||
- /srv/rundata/backrest/data:/data
|
|
||||||
- /srv/rundata/backrest/config:/config
|
|
||||||
- /srv/rundata/backrest/cache:/cache
|
|
||||||
- /srv/rundata/backrest/tmp:/tmp
|
|
||||||
#- /srv/rundata/backrest/rclone:/root/.config/rclone # Mount for rclone config (needed when using rclone remotes)
|
|
||||||
- /srv/rundata:/srv/rundata:ro # Mount local paths to backup
|
|
||||||
- /srv/photo:/srv/photo:ro # Mount local paths to backup
|
|
||||||
- /srv/backups/backrest:/repos # Mount local repos (optional for remote storage)
|
|
||||||
environment:
|
|
||||||
- BACKREST_DATA=/data
|
|
||||||
- BACKREST_CONFIG=/config/config.json
|
|
||||||
- XDG_CACHE_HOME=/cache
|
|
||||||
- TMPDIR=/tmp
|
|
||||||
- TZ=Europe/Minsk
|
|
||||||
# ports:
|
|
||||||
# - "9898:9898"
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_internal:
|
|
||||||
external: true
|
|
||||||
@@ -10,58 +10,57 @@
|
|||||||
|
|
||||||
(apps) {
|
(apps) {
|
||||||
|
|
||||||
@backrest host backrest.catmedved.com
|
@backrest host backrest.catmedved.com
|
||||||
handle @backrest {
|
handle @backrest {
|
||||||
reverse_proxy http://backrest:9898
|
reverse_proxy http://host.docker.internal:9898
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@beszel host beszel.catmedved.com
|
||||||
@beszel host beszel.catmedved.com
|
|
||||||
handle @beszel {
|
handle @beszel {
|
||||||
reverse_proxy http://beszel:8090
|
reverse_proxy http://beszel:8090
|
||||||
}
|
}
|
||||||
|
|
||||||
# @copypaste host copypaste.catmedved.com
|
# @copypaste host copypaste.catmedved.com
|
||||||
# handle @copypaste {
|
# handle @copypaste {
|
||||||
# reverse_proxy http://microbin:8080
|
# reverse_proxy http://microbin:8080
|
||||||
# }
|
# }
|
||||||
|
|
||||||
@copypaste host copypaste.kladovka52.com
|
@copypaste host copypaste.kladovka52.com
|
||||||
handle @copypaste {
|
handle @copypaste {
|
||||||
reverse_proxy http://microbin:8080
|
reverse_proxy http://microbin:8080
|
||||||
}
|
}
|
||||||
|
|
||||||
@gameyfin host gameyfin.catmedved.com
|
@gameyfin host gameyfin.catmedved.com
|
||||||
handle @gameyfin {
|
handle @gameyfin {
|
||||||
reverse_proxy http://gameyfin:8080
|
reverse_proxy http://gameyfin:8080
|
||||||
}
|
}
|
||||||
|
|
||||||
@gitea host gitea.catmedved.com
|
@gitea host gitea.catmedved.com
|
||||||
handle @gitea {
|
handle @gitea {
|
||||||
reverse_proxy http://gitea:3000
|
reverse_proxy http://gitea:3000
|
||||||
}
|
}
|
||||||
|
|
||||||
@music host music.catmedved.com
|
@music host music.catmedved.com
|
||||||
handle @music {
|
handle @music {
|
||||||
reverse_proxy http://navidrome:4533
|
reverse_proxy http://navidrome:4533
|
||||||
}
|
}
|
||||||
|
|
||||||
@pdftools host pdf-tools.catmedved.com
|
@pdftools host pdf-tools.catmedved.com
|
||||||
handle @pdftools {
|
handle @pdftools {
|
||||||
reverse_proxy http://stirling_pdf:8080
|
reverse_proxy http://stirling_pdf:8080
|
||||||
}
|
}
|
||||||
|
|
||||||
@pdftools_k host pdf-tools.kladovka52.com
|
@pdftools_k host pdf-tools.kladovka52.com
|
||||||
handle @pdftools_k {
|
handle @pdftools_k {
|
||||||
reverse_proxy http://stirling_pdf:8080
|
reverse_proxy http://stirling_pdf:8080
|
||||||
}
|
}
|
||||||
|
|
||||||
@photo host photo.catmedved.com
|
@photo host photo.catmedved.com
|
||||||
handle @photo {
|
handle @photo {
|
||||||
reverse_proxy immich_server:2283
|
reverse_proxy immich_server:2283
|
||||||
}
|
}
|
||||||
|
|
||||||
@recepies host recepies.catmedved.com
|
@recepies host recepies.catmedved.com
|
||||||
handle @recepies {
|
handle @recepies {
|
||||||
reverse_proxy http://mealie:9000
|
reverse_proxy http://mealie:9000
|
||||||
}
|
}
|
||||||
|
|||||||
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