mirror of
https://github.com/deuill/coreos-home-server.git
synced 2024-09-21 13:40:45 +00:00
Alex Palaistras
41328342b3
This commit implements three new services, specifically: - The `container-volume` service, which applies to a specific volume name and ensures this exists. This is mainly useful as a dependency to other services, as Podman will create named volumes itself if needed. - The `container-volume-backup` service, which creates a `tar.gz` snapshot of the given volume's contents in `/var/lib/backups`. - The `container-volume-restore` service, which populates an empty volume from a pre-existing file in `/var/lib/backups`, presumably created by `container-volume-backup`. These are then be used to automatically create volume snapshots every 12 hours, rolling over every 7 days.
15 lines
640 B
Desktop File
15 lines
640 B
Desktop File
[Unit]
|
|
Description=Restore from backup for container volume %I
|
|
ConditionFileNotEmpty=%S/backups/coreos-home-server/%i/%i-latest.tar.gz
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=/bin/podman run --replace --pull never --rm --name %p-%i --volume %i:/data:z \
|
|
--volume %S/backups/coreos-home-server/%i:/backups:z,ro \
|
|
--entrypoint /bin/bash docker.io/debian:stable-slim \
|
|
-c 'test -n "$(ls -A /data)" && echo "Volume %i is not empty, skipping." && exit 0; \
|
|
tar -xvpf "/backups/%i-latest.tar.gz" -C /data'
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|