# README system-helpers is a collection of helper systemd services, systemd timers and shell scripts for common configuration and tasks like * checking if systemd services and timers are running * borgmatic backup * restic backup * checking if docker containers are running * batch docker-compose upgrades * docker housekeeping for removing unused docker containers, volumes and images * dynamic dns update * update check for pacman * memory and disk checks Provided systemd services mostly support mail notifications if they have failed via systemd_failure_notify. See `/usr/share/doc/system-helpers` for example configurations which should be copied inside $HOME or /etc depending on the helper script. ## Installation 1. Build a `pacman` package for ArchLinux via `makepkg -csi` inside the `_pkg/` folder 2. Alternatively, use `./sync` from the git clone and pick an action which should be self-explaining 3. Use the custom provided ArchLinux repository hosted at `aur.myservermanager.com` ```shell [repo-aur-myservermanager-com] SigLevel = Never Server = https://aur.myservermanager.com ``` ## Usage Services and scripts don't depend on each other but have hints that they can be combined (out-commented line in service files for `systemd_failure_notify@.service` for example). Examples are given inside `usr/share/doc/system-helpers`. ## FAQ ### User cannot use network-online.target By default, no user unit can depend on system events like `network-online.target`. To enable this, you need to link the proper `.target` which you like to use inside the user service before. ```shell systemctl --user link /usr/lib/systemd/system/network-online.target ``` This would make `network-online.target` available after a _reboot_ to the user who issued the command. ### `network-online.target` doesn't recognize DNS correctly If you like to set `Persistent=true`, then you should probably equip the related `.service` file with a `ExecStartPre=/bin/bash -c 'until host captiveportal.myservermanager.com; do sleep 1; done'` or any domain you think is 100% reachable.