No description
Find a file
CroneKorkN 77b5e01198
refactor(left4me): collapse venv chain into uv sync
Replace left4me_create_venv + left4me_pip_upgrade + left4me_pip_install
(the tempdir-copy dance) with a single left4me_uv_sync action driven by
left4me's committed uv.lock. Deterministic dep versions, no source-tree
mutation during build (hatchling PEP 660 editable installs don't write
to source), one action instead of three.

uv is not in Trixie's apt archive (experimental/sid only), so a new
left4me_install_uv action downloads a pinned 0.11.8 binary tarball
from astral-sh/uv releases, SHA256-verifies against the published
.sha256 sibling, and installs into /usr/local/bin. Idempotent via
`unless` on the version string — only re-runs when the pin is bumped.
Pattern matches left4me_install_steamcmd elsewhere in this bundle.

apt.packages: drop python3-pip and python3-venv (uv replaces both;
no other consumer in the bundle). Keep python3 and python3-dev — uv
shells out to the system Python interpreter.

PYTHONPATH=/opt/left4me/src removed from left4me_alembic_upgrade and
left4me_seed_overlays — was a workaround for the previous layout's
package-dir indirection; with the new standard layout + editable
install, the venv resolves both members natively.

Per left4me/docs/superpowers/plans/2026-05-15-uv-workspace-execution.md.
Requires the matching commit on left4me's master.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 22:07:47 +02:00
bin docs: scaffold agent-friendly entry points (Phase 1) 2026-05-10 15:44:45 +02:00
bundles refactor(left4me): collapse venv chain into uv sync 2026-05-15 22:07:47 +02:00
data nginx: SSE-friendly proxy_pass + unconditional $connection_upgrade map 2026-05-10 22:12:03 +02:00
doc play around with systemd hardening 2022-03-27 13:29:58 +02:00
docs docs/specs: round-2 agents-md refactor design (gaps 7-12) 2026-05-10 20:39:40 +02:00
groups groups: add applications/left4me 2026-05-10 18:08:36 +02:00
hooks docs: scaffold agent-friendly entry points (Phase 1) 2026-05-10 15:44:45 +02:00
items docs: scaffold agent-friendly entry points (Phase 1) 2026-05-10 15:44:45 +02:00
libs docs: scaffold agent-friendly entry points (Phase 1) 2026-05-10 15:44:45 +02:00
nodes left4me: prefix steam_web_api_key vault value with !decrypt: 2026-05-12 22:57:21 +02:00
.editorconfig editorconfig 2022-08-09 16:49:48 +02:00
.envrc PATH_add bin 2023-08-09 07:16:06 +02:00
.gitignore gitignore: add bundlewrap git_deploy_repos map (operator-specific paths) 2026-05-10 18:43:59 +02:00
AGENTS.md AGENTS.md: drop the 6th ccc rule 2026-05-11 00:26:12 +02:00
CLAUDE.md docs: scaffold agent-friendly entry points (Phase 1) 2026-05-10 15:44:45 +02:00
groups.py print message on parsing group error 2025-06-22 09:36:56 +02:00
hass_get_temp.py bootshorn stuff 2025-08-24 15:23:17 +02:00
nodes.py demagify remove faults 2023-02-23 18:27:27 +01:00
README.md README: drop stale 'install bw fork' instruction 2026-05-10 15:19:44 +02:00
requirements.txt switch bundlewrap install to editable from CroneKorkN/bundlewrap@main 2026-05-10 15:14:31 +02:00

TODO

  • dont spamfilter forwarded mails
  • gollum wiki
  • blog?
  • fix dkim not working sometimes
  • LDAP
  • oauth2/OpenID
  • icinga

Raspberry pi as soundcard

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"