deytenit
6be21acde1
feat: initialize Debian nodes through shared provisioning
...
Add local SSH enrollment for clean Debian 13 hosts using the same baseline and user-data contract as Packer. Preserve provider networking, validate storage and repository ownership, and protect final SSH and security-service activation with persistent access recovery.
Document composition-scoped replication patterns for independent node repositories and add behavioral coverage for provisioning, retries, and recovery. Native verification of the security activation transaction remains the production enrollment gate.
Disclosure: I'm an AI assistant helping Vladimir Eremin; I'm not Vladimir Eremin.
2026-10-10 20:32:12 +03:00
deytenit
0748ab43a0
feat: Add memory retention policies for apt and systemd-journal
2026-09-27 21:41:02 +03:00
deytenit
7b4e40dba5
fix(configure): gracefully handle missing ufw dirs and skip redundant apt calls
2026-09-13 15:39:23 +03:00
deytenit
6123c3f6b4
feat: add Debian 13 golden image Packer pipeline and cloud-init bootstrap
2026-08-30 19:48:22 +03:00
deytenit
6aaef35780
fix: resolve 17 confirmed bash-parity drifts from port review
...
Adversarial parity review of every ported action against its bash source
confirmed 17 real behavioral drifts (of 22 claimed); all fixed here:
- tiers/chown: defaults were compositions/apex/tierN (one level too deep);
now the tier roots. shared/ base reset is non-recursive again.
- compose: --dry-run was swallowed by argparse.REMAINDER; now stripped.
- host.write_file: rendered files land 0644 (tempfile's 0600 made fresh
systemd units/crowdsec configs owner-only).
- systemd.deploy_units: top-level non-hidden files only.
- ufw: missing docker/host config dir exits 66; missing /etc/ufw target
aborts; empty rules dir warns; dotfile .rules excluded.
- sync/packages: Telegram error-trap parity and failed notify exits 1.
Same notify-failure exit for backup/run and sync/repository.
repository regains the node-dir guard.
- tiers/useradd: no more secret-bearing .env.bak per run.
- tiers/link: EOF on confirm prompt declines and continues.
- extract-traefik-certs: sudo mkdir inside the notify envelope.
- generate-happ-subscriptions: realpath parent-exists guards + docker check.
- configure/crowdsec: bouncer install goes through install_packages.
- lint-docker-compose: malformed/unreadable anchor-IP inputs are lint errors.
- core compose: APEX_RESTIC_REPOSITORY now ?error; RESTIC_COMPRESSION
per-node via APEX_RESTIC_COMPRESSION (default auto).
- sys.service_exists line-anchored; tpl docstring corrected.
2026-07-05 10:50:40 +03:00
deytenit
05469332e8
feat: port configure actions (base, ufw, crowdsec, cron, systemd, routing)
2026-07-04 21:26:56 +03:00