Skip to content

Desktop App

Govard Desktop is the Wails-based GUI that reuses the same core engine as the CLI.


Launch Modes

bash
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
ModeDescription
govard desktopStandard launch — uses built binary
govard desktop --devDev mode — live Go backend, hot reload frontend
govard desktop --backgroundBackground process — keeps alive when window closes

Current Surface

The desktop focuses on operational essentials:

FeatureDescription
Environment DashboardStart/stop/open/delete — including orphaned Docker project detection
Project WorkspaceEnvironments list, quick actions, onboarding flow
Quick ActionsPHPMyAdmin, Xdebug toggle, health check, Mailpit, DB client
Remotes TabAdd/test/open/sync-plan workflows for remote environments
Resource MonitorCPU, RAM, network, OOM hints
LogsMulti-service selection, severity filtering, text search, live streaming
Shell LauncherService, user, and shell selection
Native NotificationsOperation success/failure alerts
Settings DrawerTheme, 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.


Keyboard Shortcuts

ShortcutAction
Ctrl+, / Cmd+,Open Settings
EscClose Settings

Desktop Remote Actions

ActionBehavior
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.

Local Database Open

  • Resolves published Docker host and port first
  • Falls back to PHPMyAdmin if the configured DB client fails

Desktop Preferences

Preferences are stored in:

~/.govard/desktop-preferences.json

Current persisted preferences:

  • Theme (light/dark)
  • Proxy target
  • Preferred browser
  • Database client preference

Dev Mode

When developing the desktop app from source, provide a display server to prevent Wails from crashing in headless environments:

bash
DISPLAY=:1 govard desktop --dev

Wails 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.


Frontend Layout

FilePurpose
desktop/frontend/index.htmlMain HTML entry
desktop/frontend/main.jsBootstrap, event wiring, tab/state management
desktop/frontend/services/bridge.jsWails Go backend RPC bridge
desktop/frontend/state/store.jsShared UI state (selected project, filters)
desktop/frontend/modules/Feature modules (dashboard, logs, remotes, etc.)
desktop/frontend/ui/toast.jsToast notification system
desktop/frontend/utils/dom.jsShared DOM helpers

Test Mode Behavior

Access MethodBackendData
Wails dev (localhost:34115)Full backend bridge activeReal project data
Direct file (no backend)Bridge unavailableMock fallback data + warning toast

Architecture Notes

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.


SSL and Domains | Architecture

Released under the MIT License.