diff --git a/README.md b/README.md index 2f95b64..8f6034e 100644 --- a/README.md +++ b/README.md @@ -1 +1,8 @@ These are docker-compose stacks I run on various servers. + +My [homelab](homelab/) now uses podman, invoked by runit. +I did this for two reasons: + +1. My homelab now runs from a RAM disk, + and podman takes half as much space as docker. +2. docker swarm had some CPU overhead that podman doesn't have. diff --git a/homelab/service-sync/README.md b/homelab/service-sync/README.md new file mode 100644 index 0000000..5e4c8da --- /dev/null +++ b/homelab/service-sync/README.md @@ -0,0 +1,3 @@ +Periodically syncs the live system into my git repository. + +In case anybody is ever curious about how this works. diff --git a/homelab/service-sync/log/config b/homelab/service-sync/log/config new file mode 100644 index 0000000..66a8e19 --- /dev/null +++ b/homelab/service-sync/log/config @@ -0,0 +1 @@ +s16384 diff --git a/homelab/service-sync/log/run b/homelab/service-sync/log/run new file mode 100755 index 0000000..1d62789 --- /dev/null +++ b/homelab/service-sync/log/run @@ -0,0 +1,3 @@ +#! /bin/sh + +svlogd -tt . diff --git a/homelab/service-sync/run b/homelab/service-sync/run new file mode 100755 index 0000000..d17d431 --- /dev/null +++ b/homelab/service-sync/run @@ -0,0 +1,28 @@ +#! /bin/sh + +set -e +exec 2>&1 + +echo "=== Copying newer files" +cd /etc/service +find . \ + ! -path './*/supervise*' \ + ! -path './*/log/lock' \ + ! -path './*/log/current' \ + ! -path './*/log/@*' \ +| cpio -R neale -m -p /home/neale/src/stacks/homelab + + +echo "=== Removing deleted files" +cd /home/neale/src/stacks/homelab +find */ \ +| while read fn; do + if ! [ -e /etc/service/"$fn" ]; then + echo " - $fn" + rm -rf "$fn" + fi +done + + +echo "=== Waiting..." +sleep 4h diff --git a/homelab/sync.sh b/homelab/sync.sh deleted file mode 100755 index 5105091..0000000 --- a/homelab/sync.sh +++ /dev/null @@ -1,11 +0,0 @@ -#! /bin/sh - -service=/host/etc/service -if ! [ -d $service ]; then - echo "=== $service is not a directory" 1>&2 - exit 1 -fi - -rsync -vaxp --delete \ - --exclude=supervise/ \ - $service/* .