system-helpers/README.md

58 lines
2 KiB
Markdown
Raw Normal View History

# README
dotfiles-system 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/dotfiles-system` for example configurations which should
be copied inside $HOME or /etc depending on the helper script.
## Installation
2022-07-11 20:35:41 +00:00
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
2022-07-11 20:49:31 +00:00
Server = https://aur.myservermanager.com
```
## Usage
2021-12-27 10:24:05 +00:00
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/dotfiles-system`.
## FAQ
2021-12-27 10:24:05 +00:00
### User cannot use network-online.target
2021-12-27 10:24:05 +00:00
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
2021-12-27 10:24:05 +00:00
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.