Installation
This page covers all methods to install Govard on Linux and macOS.
IMPORTANT
Do not mix install channels on the same machine (e.g., .deb + make install + self-update across different paths). Use one channel only to avoid conflicting binaries in /usr/bin and /usr/local/bin.
🚀 One-Line Install (Linux/macOS)
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 | bashCommon Install Options
# 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, where WebKitGTK 4.1 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
Ubuntu 20.04 does not provide WebKitGTK 4.1. The installer detects this and installs CLI only automatically; use --cli-only to explicitly skip Desktop on any platform. Govard Desktop requires Ubuntu 22.04+ or another Linux distribution with WebKitGTK 4.1.
📦 Release Installers
Every tagged release publishes two Linux packages:
From the releases page:
Linux (.deb)
CLI only (including Ubuntu 20.04):
sudo apt install ./govard_<version>_linux_<arch>.debCLI + Desktop (WebKitGTK 4.1 / Ubuntu 22.04+):
sudo apt install ./govard_<version>_linux_<arch>.deb ./govard-desktop_<version>_linux_<arch>.debmacOS (.pkg)
sudo installer -pkg govard_<version>_Darwin_arm64.pkg -target /🔧 Build from Source
Prerequisites
Ensure you have the following installed:
| Tool | Required Version |
|---|---|
| Go | 1.25+ |
| Node.js | 20+ |
| Yarn | v1.x |
| golangci-lint | v2.11+ |
| Docker + Docker Compose | latest (stack commands only — the CLI itself has no Docker dependency) |
| Wails | v2.11+ (desktop development only) |
Source Install
git clone https://github.com/ddtcorex/govard.git
cd govard
./install.sh --sourceLocal Developer Setup
Install Go 1.25+ from go.dev
Enable Yarn via Corepack:
bashcorepack enableInstall golangci-lint:
bashcurl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/binInstall Wails (for desktop development):
bashgo install github.com/wailsapp/wails/v2/cmd/wails@latest wails version
No sudo required — install everything locally and update your PATH.
Runs Without Docker
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.
🐳 Docker Images
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/php📦 Package Managers & Containers
One 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
# Snap (Linux, CLI only — classic confinement is required:
# Govard orchestrates Docker and writes system paths)
sudo snap install govard --classic
# 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).
🖥️ Shell Completions
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-Expression🔄 Updating Govard
govard self-updateself-update downloads the platform-specific release artifact, verifies the SHA-256 checksum, and atomically replaces installed binaries (govard + govard-desktop).
✅ Verify Installation
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.