feat(remote): per-host remote config + rsync --rsync-path + scp -O for locked-down hosts #2
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
kahliburke/KaimonSlate.jl!2
Loading…
Reference in a new issue
No description provided.
Delete branch "s-celles/feat/per-host-remote-rsync-path"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Some NAS/appliance firmware ships a patched
rsyncthat gates the server side to a whitelist of "shared folders", so a home-dir destination is rejected withinvalid pathduring the "Provision env" step. The same devices often ship a disabled sftp subsystem, which makes the default (SFTP-protocol)scpfail withPermission denied. Both break remote-worker provisioning even when SSH and Julia themselves are fine — the preflight passes "SSH reachable" and "Julia present", then fails on "Provision env".Changes
_rcfg/_rcfg_strgain ahost=kwarg and a new_rcfg_hostval, so any remote knob resolvesremote.hosts.<host>.<key>→ globalremote.<key>→KAIMONSLATE_<ENV>→ default. Host matching tolerates auser@hostssh target (falls back to the bare hostname). Fully backward compatible. Applies uniformly to the preflight,run_on <host>, and regions (a region provisions on itshost, so it inherits that host's config automatically).rsync_pathknob. When set,_rsync!passes--rsync-path=<path>so provisioning uses a stock rsync you dropped in (e.g.~/bin/rsync) instead of the firmware-patched one. It's a machine property, hence per-host (the preflight/provision runs before any region exists).scp -O. The three provisioningscp -qcalls becomescp -O -q(legacy protocol), which bypassessftp-serverand works when SFTP is disabled. Harmless on normal hosts.?help popover explaining when it's needed, saved per host via newGET/POST /api/host-settings(persist hook_HOST_CFG_PERSIST, installed at init, writesremote.hosts.<host>.rsync_pathand refreshes the live config). Loads on host pick/blur; saved before "Test & prime" so a first-time locked-down host provisions with the right rsync in one click.Config shape
Any remote knob can be overridden the same way under
remote.hosts.<host>.Verification
End-to-end on a real locked-down NAS: the preflight (provision → KaimonGate load → spawn + connect + eval round-trip) now passes. Per-host resolution, the persist/prune hook, and region-host inheritance tested live; the GUI field + help popover rendered and checked.
Developed with AI assistance.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.