Skip to content
All projects
In development v0.1.0

Orbit Desktop

A point-and-click interface for Orbit that runs on your laptop, not your server.

There is an app now. It builds on Linux, macOS and Windows, talks to the server over SSH, and covers the everyday work: look, deploy, roll back, retire, read the log, the traffic and the metrics, and add a new site through a wizard. What there isn't is a download: the packages are built unsigned, and unsigned is what makes macOS and Windows treat them as suspicious. That takes two developer accounts, not more code.

There is no download yet. The Linux, macOS and Windows packages are built on every tag, but unsigned — and an unsigned installer is the one macOS and Windows present as suspicious. It gets signed when the accounts exist, not with a workflow carrying three empty secrets that goes green having done nothing.

orbit-desktop
ssh + orbit … --json

It connects over SSH with the keys you already have. The server gains no process, no port, not a byte of state. It has exactly the same standing as your terminal.

Status
In development
Version
v0.1.0 · no release yet
Stack
Rust · Tauri · Svelte · SSH
Repository
Public, on GitHub
License
MIT

Orbit refuses to have a web panel, and the reason is a good one: it elevates itself to root and runs arbitrary commands, so a panel on top of that wouldn't be a panel — it'd be a root shell exposed to the internet. Orbit Desktop is the other answer to the same question.

Screenshots of what already works

Screenshots of the real application against its own fake server. The data is sample data and the interface says so in the corner: we have not pasted a client's server in here.

Orbit Desktop: one server's app list, with the detail of one of them open below.
One server's apps and the detail of one of them. The first row is what no other tool shows: a site that is registered and that nginx does not serve. Neither `nginx -t` nor `orbit list` can see it.
Orbit Desktop: the diagnosis screen, with eight errors and three warnings.
The diagnosis, with the exact command next to each failure. This server cannot apply it on its own, and says so rather than offering a button that would do nothing.
Orbit Desktop: the new-site wizard, on its source step.
Adding a site, in five steps. What it sends at the end is `orbit new`: the window never writes a vhost itself, because then there would be two truths about how a site is deployed.
0
processes on the server
3
systems it already builds on
SSH
no API of its own

Orbit Desktop

01

It never writes to the server

It doesn't touch /etc/nginx, /etc/orbit or systemd: it only invokes orbit. An app's .conf is sourced from Bash, so it's code that runs as root. Writing to it from a window isn't editing data.

02

The server gains nothing

No process, no port, no file. If Orbit Desktop disappeared tomorrow, the server wouldn't notice.

03

It speaks SSH, not an API of its own

Your keys, your ssh-agent, your ~/.ssh/config with its ProxyJump. We don't invent authentication and we don't reimplement an SSH client.

04

Secrets don't cross the contract

orbit env list gives the names of the variables. Values are requested one at a time, on purpose: a panel that shows the whole .env leaks the database password in the first screenshot somebody pastes into an issue.

05

Unknowns aren't painted as values

A null isn't a zero. "Couldn't ask" isn't "no changes." A zero is a claim.

06

Multi-server, for free

A client that speaks SSH to several servers is v2.0's orbit remote add, with no control plane and no daemon. It falls out of the architecture rather than out of a feature somebody has to write.

Ready to build something big?

Pick what you want to build, add a few extras, and watch your plan take shape in real time. No emails, no waiting. Go ahead — play.