You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bash → Python migration completed.scripts/deploy.sh (~5.5k LoC) replaced by the nexus_deploy package. python -m nexus_deploy run-pipeline is now the single deploy entrypoint, invoked directly by spin-up.yml. (#505)
Hetzner capacity-aware server selection. Spin-up now queries Hetzner's API and picks the first available <server_type>:<location> pair from a configurable preference list (default: cx43:hel1, cx43:fsn1, cx43:nbg1, ccx33:hel1, ccx33:fsn1, ccx33:nbg1). No more resource_unavailable failures during capacity crunches. (#536)
Multi-tenant subdomain support. New SUBDOMAIN_SEPARATOR repo variable enables flat-subdomain tenants (kestra-user1.example.com) for Education-style forks. Single-tenant default unaffected. (#540)
Server default switch. From ARM cax31 (Hetzner EU stock chronically dry, no longer cheaper) to x86 cx43 (8 vCPU / 16 GB / 160 GB) for sustained 40+ Docker stack workloads. Operators can override via repo vars.
Stacks
Marimo via Spark Connect — Marimo notebooks now run against the Spark cluster directly, with Infisical credential sync mirroring Jupyter's behaviour. (#497)
Tutorial seeds — Kestra HTTP-fetch + Prefect Green-Taxi sample flows are auto-seeded into every workspace repo on spin-up.