No description
pip_install's `unless` (import l4d2host, l4d2web) skips when both packages are already installed — so on a code-only apply, pip_install doesn't fire and alembic_upgrade (which it triggers) never runs. The new 0008 migration would silently get skipped, leaving the DB out of sync with the new schema. Wire git_deploy → alembic_upgrade directly. alembic upgrade head is idempotent (no-op when at head); seed_overlays + service:restart cascade off alembic, so editable-install code changes also get picked up by gunicorn. Edge case noted (deferred): a migration-only change with no code change has the same matching git rev, so this won't fire either. In practice migrations always come with the code change that uses them. |
||
|---|---|---|
| bin | ||
| bundles | ||
| data | ||
| doc | ||
| docs | ||
| groups | ||
| hooks | ||
| items | ||
| libs | ||
| nodes | ||
| .editorconfig | ||
| .envrc | ||
| .gitignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| groups.py | ||
| hass_get_temp.py | ||
| nodes.py | ||
| README.md | ||
| requirements.txt | ||
TODO
- dont spamfilter forwarded mails
- gollum wiki
- blog?
- fix dkim not working sometimes
- LDAP
- oauth2/OpenID
- icinga
Raspberry pi as soundcard
- gadget mode
- OTG g_audio
- https://audiosciencereview.com/forum/index.php?threads/raspberry-pi-as-usb-to-i2s-adapter.8567/post-215824
monitor timers
Timer=backup
Triggers=$(systemctl show ${Timer}.timer --property=Triggers --value)
echo $Triggers
if systemctl is-failed "$Triggers"
then
InvocationID=$(systemctl show "$Triggers" --property=InvocationID --value)
echo $InvocationID
ExitCode=$(systemctl show "$Triggers" -p ExecStartEx --value | sed 's/^{//' | sed 's/}$//' | tr ';' '\n' | xargs -n 1 | grep '^status=' | cut -d '=' -f 2)
echo $ExitCode
journalctl INVOCATION_ID="$InvocationID" --output cat
fi
telegraf: execd for daemons
TEST
git signing
git config --global gpg.format ssh git config --global commit.gpgsign true
git config user.name CroneKorkN git config user.email i@ckn.li git config user.signingkey "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILMVroYmswD4tLk6iH+2tvQiyaMe42yfONDsPDIdFv6I"