-
Notifications
You must be signed in to change notification settings - Fork 5
Desktop app
Govard Desktop is the Wails-based GUI that reuses the same core engine as the CLI.
govard desktop # Launch the built desktop binary
govard desktop --dev # Run Wails dev mode (live backend)
govard desktop --background # Start hidden, reuse running instance on relaunch| Mode | Description |
|---|---|
govard desktop |
Standard launch โ uses built binary |
govard desktop --dev |
Dev mode โ live Go backend, hot reload frontend |
govard desktop --background |
Background process โ keeps alive when window closes |
The desktop focuses on operational essentials:
| Feature | Description |
|---|---|
| Environment Dashboard | Start/stop/open/delete โ including orphaned Docker project detection |
| Project Workspace | Environments list, quick actions, onboarding flow |
| Quick Actions | PHPMyAdmin, Xdebug toggle, health check, Mailpit, DB client |
| Remotes Tab | Add/test/open/sync-plan workflows for remote environments |
| Resource Monitor | CPU, RAM, network, OOM hints |
| Logs | Multi-service selection, severity filtering, text search, live streaming |
| Shell Launcher | Service, user, and shell selection |
| Native Notifications | Operation success/failure alerts |
| Settings Drawer | Theme, proxy target, preferred browser, database client |
Desktop environment start/stop/pull and global-services operations call the Govard CLI command surface (
govard up,govard env ...,govard svc ...), keeping desktop behavior aligned with all CLI updates.
| Shortcut | Action |
|---|---|
Ctrl+, / Cmd+,
|
Open Settings |
Esc |
Close Settings |
| Action | Behavior |
|---|---|
| Open Database (Remote) | Calls govard open db -e <remote> --client
|
| Open SSH (Remote) | Prefers native Linux terminal launchers, falls back to ssh://
|
| Open SFTP (Remote) | Prefers FileZilla, falls back to sftp://
|
For auth.method: ssh-agent, Desktop reuses SSH_AUTH_SOCK and also probes /run/user/<uid>/keyring/ssh on Linux.
- Resolves published Docker host and port first
- Falls back to PHPMyAdmin if the configured DB client fails
Preferences are stored in:
~/.govard/desktop-preferences.json
Current persisted preferences:
- Theme (light/dark)
- Proxy target
- Preferred browser
- Database client preference
When developing the desktop app from source, provide a display server to prevent Wails from crashing in headless environments:
DISPLAY=:1 govard desktop --devWails dev mode compiles the backend and exposes the frontend at:
http://localhost:34115
This is the preferred browser-testing path because the Go backend bridge stays live and loads real project data.
| File | Purpose |
|---|---|
desktop/frontend/index.html |
Main HTML entry |
desktop/frontend/main.js |
Bootstrap, event wiring, tab/state management |
desktop/frontend/services/bridge.js |
Wails Go backend RPC bridge |
desktop/frontend/state/store.js |
Shared UI state (selected project, filters) |
desktop/frontend/modules/ |
Feature modules (dashboard, logs, remotes, etc.) |
desktop/frontend/ui/toast.js |
Toast notification system |
desktop/frontend/utils/dom.js |
Shared DOM helpers |
| Access Method | Backend | Data |
|---|---|---|
Wails dev (localhost:34115) |
Full backend bridge active | Real project data |
| Direct file (no backend) | Bridge unavailable | Mock fallback data + warning toast |
The desktop app is intentionally focused on operational workflows:
- Desktop entrypoint:
cmd/govard-desktop - Wails bindings:
internal/desktop - Frontend shell:
desktop/frontend/index.html - Bootstrap/events:
desktop/frontend/main.js - Backend bridge:
desktop/frontend/services/bridge.js - State:
desktop/frontend/state/store.js - Feature modules:
desktop/frontend/modules/
For deeper architecture context, see Architecture.
Govard โ Go-based Versatile Runtime & Development GitHub ยท Releases ยท Issues ยท MIT License