Introduces a browser-based terminal interface backed by xterm.js, served
directly from the binary via an embedded HTML asset.
New HTTP server (`serve [addr]`, default :8080):
GET / — xterm.js terminal UI; ?id=N selects a clone
GET /clones — JSON list of running clone IDs
POST /clones — spawn a new clone; returns {"id": N}
DELETE /clones/{id} — destroy a clone by ID
GET /ws/{id} — WebSocket console for clone {id}
binary frames = raw PTY I/O
text frames = JSON resize {"rows":N,"cols":M}
Supporting changes:
- orchestrator: add SpawnSingle() and KillClone(id) for per-clone lifecycle
management from the HTTP layer
- console: add a resize sideband Unix socket (console-resize.sock) that
accepts newline-delimited JSON {"rows","cols"} messages and applies them
to the PTY master via pty.Setsize; the WebSocket handler writes to this
socket on text frames so browser window resizes propagate into the VM
- deps: add gorilla/websocket v1.5.3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
48 lines
2.0 KiB
Modula-2
48 lines
2.0 KiB
Modula-2
module github.com/kacerr/fc-orchestrator
|
|
|
|
go 1.25.0
|
|
|
|
require (
|
|
github.com/firecracker-microvm/firecracker-go-sdk v1.0.0
|
|
github.com/sirupsen/logrus v1.9.3
|
|
)
|
|
|
|
require (
|
|
github.com/PuerkitoBio/purell v1.1.1 // indirect
|
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
|
|
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect
|
|
github.com/containerd/fifo v1.0.0 // indirect
|
|
github.com/containernetworking/cni v1.0.1 // indirect
|
|
github.com/containernetworking/plugins v1.0.1 // indirect
|
|
github.com/creack/pty v1.1.24 // indirect
|
|
github.com/go-openapi/analysis v0.21.2 // indirect
|
|
github.com/go-openapi/errors v0.20.2 // indirect
|
|
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
|
github.com/go-openapi/jsonreference v0.19.6 // indirect
|
|
github.com/go-openapi/loads v0.21.1 // indirect
|
|
github.com/go-openapi/runtime v0.24.0 // indirect
|
|
github.com/go-openapi/spec v0.20.4 // indirect
|
|
github.com/go-openapi/strfmt v0.21.2 // indirect
|
|
github.com/go-openapi/swag v0.21.1 // indirect
|
|
github.com/go-openapi/validate v0.22.0 // indirect
|
|
github.com/go-stack/stack v1.8.1 // indirect
|
|
github.com/google/uuid v1.3.0 // indirect
|
|
github.com/gorilla/websocket v1.5.3 // indirect
|
|
github.com/hashicorp/errwrap v1.0.0 // indirect
|
|
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
|
github.com/josharian/intern v1.0.0 // indirect
|
|
github.com/mailru/easyjson v0.7.7 // indirect
|
|
github.com/mitchellh/mapstructure v1.4.3 // indirect
|
|
github.com/oklog/ulid v1.3.1 // indirect
|
|
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
|
github.com/pkg/errors v0.9.1 // indirect
|
|
github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5 // indirect
|
|
github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f // indirect
|
|
go.mongodb.org/mongo-driver v1.8.3 // indirect
|
|
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd // indirect
|
|
golang.org/x/sys v0.43.0 // indirect
|
|
golang.org/x/term v0.42.0 // indirect
|
|
golang.org/x/text v0.3.7 // indirect
|
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
|
)
|