Add SSH source support with dialstdio and UI components
- Implement SSH dial via stdio for remote connections - Add sources API and storage layer for managing connection sources - Add SourcePanel and SshFields web components for SSH configuration - Update app structure to support source-based connections - Update handlers and server for new sources endpoint Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -84,7 +84,7 @@ func serve(args []string) error {
|
||||
token := fs.String("token", os.Getenv("DOCKMV_TOKEN"), "require this token on every request; \"auto\" generates one (default: $DOCKMV_TOKEN)")
|
||||
dataDir := fs.String("data-dir", defaultDataDir(), "directory for connections and trusted host keys")
|
||||
pkgDir := fs.String("package-dir", "", "directory for migration packages (default <data-dir>/packages)")
|
||||
dockerHost := fs.String("docker-host", "", "source docker daemon (default: the DOCKER_HOST environment)")
|
||||
dockerHost := fs.String("docker-host", "", "local source docker daemon (default: the DOCKER_HOST environment)")
|
||||
verbose := fs.Bool("v", false, "verbose logging")
|
||||
fs.Usage = func() {
|
||||
fmt.Fprintln(os.Stderr, "Usage: dockmv serve [flags]\n\nFlags:")
|
||||
@@ -93,6 +93,14 @@ func serve(args []string) error {
|
||||
if err := fs.Parse(args); err != nil {
|
||||
return err
|
||||
}
|
||||
// A --docker-host given on the command line is an instruction for this run,
|
||||
// and takes precedence over the source remembered from the last one.
|
||||
dockerHostSet := false
|
||||
fs.Visit(func(f *flag.Flag) {
|
||||
if f.Name == "docker-host" {
|
||||
dockerHostSet = true
|
||||
}
|
||||
})
|
||||
|
||||
level := slog.LevelInfo
|
||||
if *verbose {
|
||||
@@ -113,13 +121,14 @@ func serve(args []string) error {
|
||||
}
|
||||
|
||||
cfg := api.Config{
|
||||
Addr: *addr,
|
||||
Token: authToken,
|
||||
DataDir: *dataDir,
|
||||
PackageDir: *pkgDir,
|
||||
DockerHost: *dockerHost,
|
||||
UI: webui.FS(),
|
||||
Logger: logger,
|
||||
Addr: *addr,
|
||||
Token: authToken,
|
||||
DataDir: *dataDir,
|
||||
PackageDir: *pkgDir,
|
||||
DockerHost: *dockerHost,
|
||||
DockerHostSet: dockerHostSet,
|
||||
UI: webui.FS(),
|
||||
Logger: logger,
|
||||
}
|
||||
srv, err := api.New(cfg)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user