Repository navigation
Installation
This page covers all methods to install Govard on Linux and macOS.
[WARNING] IMPORTANT Do not mix install channels on the same machine (e.g.,
.deb+make install+self-updateacross different paths). Use one channel only to avoid conflicting binaries in/usr/binand/usr/local/bin.
Install the latest release binary with a single command:
curl -fsSL https://raw.githubusercontent.com/ddtcorex/govard/master/install.sh | bashUsing wget:
wget -qO- https://raw.githubusercontent.com/ddtcorex/govard/master/install.sh | bash# Install to ~/.local/bin (no sudo required)
curl -fsSL https://raw.githubusercontent.com/ddtcorex/govard/master/install.sh | bash -s -- --local
# Build from source (auto-installs Go 1.25 if needed)
curl -fsSL https://raw.githubusercontent.com/ddtcorex/govard/master/install.sh | bash -s -- --source
# Install CLI only (required on Ubuntu 20.04)
curl -fsSL https://raw.githubusercontent.com/ddtcorex/govard/master/install.sh | bash -s -- --cli-onlyBy default, this installs govard (CLI) and, on Linux where WebKitGTK 6.0 is available, govard-desktop to /usr/local/bin and:
- Auto-detects/installs missing system dependencies
- Starts global services
- Configures SSL trust
- On Linux, falls back to the separate
govard-desktop.debpackage if a standalone archive is not in the release
Govard Desktop requires WebKitGTK 6.0 and GTK 4, which ship with Ubuntu 24.04+ and Debian 13+. Ubuntu 22.04, Debian 12 and older, and every non-Linux platform install the CLI only: the installer detects this and skips Desktop automatically, and --cli-only skips it explicitly anywhere.
Every tagged release publishes two Linux packages:
From the releases page:
CLI only (including Ubuntu 20.04):
sudo apt install ./govard_<version>_linux_<arch>.debCLI + Desktop (WebKitGTK 6.0 / Ubuntu 24.04+, Debian 13+):
sudo apt install ./govard_<version>_linux_<arch>.deb ./govard-desktop_<version>_linux_<arch>.debsudo installer -pkg govard_<version>_Darwin_arm64.pkg -target /Ensure you have the following installed:
| Tool | Required Version |
|---|---|
| Go | 1.25+ |
| Node.js | 20+ |
| pnpm | 11.x (desktop frontend only) |
| golangci-lint | v2.11+ |
| Docker + Docker Compose | latest (stack commands only β the CLI itself has no Docker dependency) |
| Wails |
v3 as a Go module tool (desktop development only, no global install) |
git clone https://github.com/ddtcorex/govard.git
cd govard
./install.sh --source-
Install Go 1.25+ from go.dev
-
Enable pnpm via Corepack:
corepack enable pnpm pnpm --version -
Install golangci-lint:
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
-
Desktop development needs no Wails install: the runtime and its CLI are Go module tools in
go.mod, sogo tool wails3 generate bindingsworks from a clone. On Linux, install the build headers:sudo apt install libgtk-4-dev libwebkitgtk-6.0-dev
No sudo required β install everything locally and update your PATH.
The CLI installs and runs with no Docker at all. The commands that never touch a container are declared in the binary's manifest and listed by:
govard capabilities # command, requirement, and whether this host meets it
govard capabilities --json # machine-readableStack commands (govard env up, svc, db, shell, test) need Docker;
without it they exit 3 with CAPABILITY_MISSING before doing any work.
govard audit is gated per check instead: --checks lint and --checks profiler need Docker, --checks integrity analyses the checkout on the host,
and the govard audit toolchain commands always need Docker because they
inspect, pull, and build a container image. govard doctor treats Docker as
optional and exits 0; govard doctor --strict restores the hard gate for
bootstrap scripts.
The complete list of commands that run without a container runtime β grouped by
what they do need (nothing at all, SSH + rsync, cloudflared, network) β is in
Runs Without Docker.
Govard uses a single PHP Dockerfile with build args instead of versioned folders.
# Standard PHP image
docker build -f docker/php/Dockerfile \
-t ddtcorex/govard-php:8.4 \
--build-arg PHP_VERSION=8.4 \
docker/php
# Magento 2 optimized PHP image
docker build -f docker/php/magento2/Dockerfile \
-t ddtcorex/govard-php-magento2:8.4 \
--build-arg PHP_VERSION=8.4 \
docker/phpOne command per platform β pick one channel and stick to it:
# npm (Node 20+, any OS, CLI only)
npm i -g @ddtcorex/govard
# Pin for reproducible environments:
npm i -g @ddtcorex/govard@<version>
# Homebrew (macOS + Linuxbrew, CLI only)
brew install ddtcorex/tap/govard
# Docker (no install needed β CI-friendly)
docker run --rm ghcr.io/ddtcorex/govard:<version> version
# Debian/Ubuntu via CloudSmith (one-time repo setup, then install)
curl -1sLf https://dl.cloudsmith.io/public/ddtcorex/govard-deb/setup.deb.sh | sudo -E bash
sudo apt install govard
# Fedora/RHEL via CloudSmith (one-time repo setup, then install)
curl -1sLf https://dl.cloudsmith.io/public/ddtcorex/govard-rpm/setup.rpm.sh | sudo -E bash
sudo dnf install govard
# Alpine via CloudSmith (one-time repo setup, then install)
curl -1sLf https://dl.cloudsmith.io/public/ddtcorex/govard-apk/setup.alpine.sh | sudo -E bash
sudo apk add govardReplace <version> with a tag from the releases page.
Installs from npm, Homebrew, or Docker record their install source
(check with govard doctor). govard self-update on those installs
defers to the owning package manager instead of overwriting the binary.
For CI pipelines, use the ddtcorex/setup-govard GitHub Action
(see CI Integration).
Release archives bundle completion scripts under completion/, and the
.deb package installs them automatically (bash, fish, zsh). For
other install channels, generate them from the binary:
govard completion bash > /etc/bash_completion.d/govard # root
govard completion zsh > "${fpath[1]}/_govard"
govard completion fish > ~/.config/fish/completions/govard.fish
govard completion powershell | Out-String | Invoke-Expressiongovard self-updateself-update downloads the platform-specific release artifact, verifies the SHA-256 checksum, and atomically replaces installed binaries (govard + govard-desktop).
govard version
govard doctorgovard doctor runs system diagnostics including Docker, DNS, ports, and SSL trust checks.
Release downloads (install.sh and npm) are sha256-verified against
checksums.txt before anything is installed; on mismatch the install
aborts. There is no bypass flag for this check by design.
Govard β Go-based Versatile Runtime & Development GitHub Β· Releases Β· Issues Β· MIT License