{"id":45190908,"url":"https://github.com/ddtcorex/govard","last_synced_at":"2026-04-06T18:00:46.068Z","repository":{"id":339452107,"uuid":"1152886960","full_name":"ddtcorex/govard","owner":"ddtcorex","description":"Go-based local development orchestrator for Magento, Laravel, Symfony, Next.js, WordPress, and more. Docker stacks, SSL, Xdebug, and a desktop dashboard.","archived":false,"fork":false,"pushed_at":"2026-04-02T11:55:48.000Z","size":10122,"stargazers_count":6,"open_issues_count":2,"forks_count":3,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-03T01:42:48.824Z","etag":null,"topics":["cakephp","cli","dev-tools","docker","docker-compose","drupal","go","golang","laravel","local-development","magento","magento2","nextjs","shopware","symfony","wordpress","xdebug"],"latest_commit_sha":null,"homepage":"https://github.com/ddtcorex/govard#readme","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ddtcorex.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-08T15:36:54.000Z","updated_at":"2026-04-02T03:52:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ddtcorex/govard","commit_stats":null,"previous_names":["ddtcorex/govard"],"tags_count":59,"template":false,"template_full_name":null,"purl":"pkg:github/ddtcorex/govard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddtcorex%2Fgovard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddtcorex%2Fgovard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddtcorex%2Fgovard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddtcorex%2Fgovard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ddtcorex","download_url":"https://codeload.github.com/ddtcorex/govard/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddtcorex%2Fgovard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31483380,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T17:22:55.647Z","status":"ssl_error","status_checked_at":"2026-04-06T17:22:54.741Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cakephp","cli","dev-tools","docker","docker-compose","drupal","go","golang","laravel","local-development","magento","magento2","nextjs","shopware","symfony","wordpress","xdebug"],"created_at":"2026-02-20T12:03:11.625Z","updated_at":"2026-04-06T18:00:46.061Z","avatar_url":"https://github.com/ddtcorex.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GOVARD: Go-based Versatile Runtime \u0026 Development\n\n[![Go Version](https://img.shields.io/github/go-mod/go-version/ddtcorex/govard)](https://go.dev/)\n[![License](https://img.shields.io/github/license/ddtcorex/govard)](LICENSE)\n[![Releases](https://img.shields.io/github/v/release/ddtcorex/govard)](https://github.com/ddtcorex/govard/releases)\n[![CI Pipeline](https://github.com/ddtcorex/govard/actions/workflows/ci-pipeline.yml/badge.svg)](https://github.com/ddtcorex/govard/actions/workflows/ci-pipeline.yml)\n\n**Govard** is a professional-grade local development orchestrator engineered in Go. It is designed to replace legacy bash-based tools with a high-performance, native binary that manages complex containerized environments with a focus on stability, speed, and a premium developer experience.\n\n---\n\n## 🆚 Why Govard Stands Out\n\nAt a glance, these are the areas where Govard delivers stronger day-to-day value than typical local-dev wrappers and compose helpers:\n\n| Area | Govard Advantage |\n| :--- | :--- |\n| Core architecture | Native Go binary with direct Docker SDK orchestration (instead of shell-script glue), for more predictable lifecycle behavior. |\n| Framework intelligence | Automatic framework discovery + framework-specific blueprints + custom stack wizard for tailored environments. |\n| Magento depth | First-class Magento 2 workflow (auto `env.php` wiring, optional Varnish/Redis/queue/search, and dedicated `php-debug` routing). |\n| Local HTTPS/DNS | Built-in Caddy + `dnsmasq` + Root CA auto-trust flow for `*.test` domains, with automatic HTTP to HTTPS 308 redirection for all services. |\n| Remote safety | `remote`/`sync` protections for sensitive targets (`prod` write blocking, scoped capabilities, audit logs, resumable transfers). |\n| Team reproducibility | `govard lock` + `lock.strict` to detect environment drift and enforce consistency across machines. |\n| Recovery workflow | `govard snapshot` for quick local DB/media checkpoints before risky operations or upgrades. |\n| CLI + Desktop parity | Same core engine exposed in both CLI and Wails Desktop app (live logs, operation events, quick actions). |\n| Update integrity | `govard self-update` validates release checksums before replacing installed binaries (`govard` + detected `govard-desktop`). |\n\n---\n\n## 🚀 Key Features\n\n- **Snapshot Compression**: Database snapshots are gzipped by default to reduce disk usage.\n- **Automatic Tunnel URL**: One-click public tunnels (`govard tunnel start`) with automatic base URL update/revert for supported frameworks (**requires `cloudflared` binary**).\n- **Integrated Testing**: Run `phpunit`, `phpstan`, and `mftf` directly with `govard test`.\n- **Redis \u0026 Valkey Management**: Full support for Redis and Valkey CLI, flushing, and info across local and remote environments.\n- **Database Observability**: Live query monitoring with `govard db top` and real-time progress bars for imports and syncs.\n- **Zero-Config Debugging**: Seamless Xdebug 2 \u0026 3 integration with one-click toggling, project-specific isolation (`\u003cproject\u003e-docker`), and structured subcommands.\n- **Framework Discovery**: Automatically detects Magento 1/OpenMage, Magento 2, Laravel, Next.js, Emdash, Drupal, Symfony, Shopware, CakePHP, and WordPress to generate tailored configurations.\n- **Custom Framework**: Interactive prompt to pick web server, database, cache, search, queue, and varnish for bespoke stacks.\n- **Xdebug Routing**: Dedicated `php-debug` container, activated only when `XDEBUG_SESSION` cookie is present.\n- **Queue Support**: Optional RabbitMQ service for async workloads.\n- **High Performance**: Built with Go and uses the native Docker SDK for direct container orchestration.\n- **Local Image Fallback**: Automatically builds missing Govard-managed images locally from embedded blueprints if they cannot be pulled from Docker Hub. Disable this retry with `--no-fallback`.\n- **Smart Templating**: Uses Go `text/template` to render dynamic Docker Compose files from framework-specific blueprints.\n- **Magento 2 Optimized**: Deep integration for Magento 2, including automated `env.php` configuration, Varnish 7.x support, and Redis caching.\n- **Remote Management (Flagship)**: Manage named remotes for sync/deploy/db workflows with scope-based capabilities (`files,media,db,deploy`) and flexible auth modes (`keychain`, `ssh-agent`, `keyfile`).\n- **Remote Safety Guardrails**: Production remotes are write-protected by default, with policy checks to block risky destination writes and explicit capability enforcement per operation.\n- **Safe Cross-Environment Sync**: Bi-directional file/media/database sync with dry-run planning (`--plan`), privacy filters (`--no-noise`, `--no-pii`), auto-selection of the `staging` remote by default, resumable rsync by default (`--partial --append-verify`), include/exclude filters, and risk warnings for destructive flags.\n- **Remote Auditability \u0026 Observability**: Remote operations are logged to `~/.govard/remote.log` and also emitted to `~/.govard/operations.log` for command traceability and desktop notifications.\n- **Remote Connectivity Diagnostics**: `govard remote test` validates SSH + `rsync`, reports probe latency, and classifies failures (`network`, `auth`, `permission`, `host_key`, `dependency`) with remediation hints.\n- **Smart Cleanup**: Automatically prunes stale Docker Compose files in the background once a day and provides a `govard env cleanup` command for immediate maintenance. Use `govard project delete` to completely remove a project's orchestration resources (containers, volumes, and proxy rules). This command is resilient and can clean up \"ghost\" projects even if their `.govard.yml` is missing. Use `govard doctor` to monitor directory saturation.\n- **Secrets-Aware Remote Config**: Remote fields support `op://...` references resolved through 1Password CLI for safer credential handling.\n- **SSL Management**: Professional CA management for \"Green Lock\" HTTPS on local `.test` domains.\n- **Rich CLI UX**: Powered by `pterm` for terminal output, progress bars, and interactive prompts.\n- **Global Services**: Built-in Proxy (Caddy), Mailpit, PHPMyAdmin, and Portainer (Default login for Portainer is `admin` / `AdminGovard123$`).\n- **Desktop Dashboard**: Wails-based UI with live logs, quick actions, and settings.\n- **Native Framework Upgrades**: Multi-framework upgrade pipeline (`govard upgrade`) for Magento 2, Laravel, Symfony, and WordPress that automates environment restarts, dependency updates, and database migrations.\n\n---\n\n## 🛠️ Installation\n\n### One-Line Install (Linux/macOS)\n\nInstall the latest release binary with a single command:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/ddtcorex/govard/master/install.sh | bash\n```\n\nUsing `wget`:\n\n```bash\nwget -qO- https://raw.githubusercontent.com/ddtcorex/govard/master/install.sh | bash\n```\n\nCommon options:\n\n```bash\n# Install to ~/.local/bin (no sudo)\ncurl -fsSL https://raw.githubusercontent.com/ddtcorex/govard/master/install.sh | bash -s -- --local\n\n# Install building from source (auto-installs Go 1.25 if needed)\ncurl -fsSL https://raw.githubusercontent.com/ddtcorex/govard/master/install.sh | bash -s -- --source\n```\n\nBy default this installs both `govard` and `govard-desktop` to `/usr/local/bin`, automatically detects/installs missing system dependencies (`certutil`, `WebKitGTK`), starts global services, and configures SSL trust.\nOn Linux, if a standalone `govard-desktop` archive is missing in a release, the installer falls back to extracting `govard-desktop` from the release `.deb` package.\n\nDo not mix install channels on the same machine (for example: `.deb` + `make install` + `self-update` across different paths).  \nUse one channel only, otherwise you can end up with conflicting binaries in `/usr/bin` and `/usr/local/bin`.\n\n### Release Installers (CLI + Desktop)\n\nEvery tagged release now publishes installer packages that install both:\n\n- `govard` (CLI)\n- `govard-desktop` (Desktop runtime used by `govard desktop`)\n\nFrom the release page:\n\n- Linux: `govard_\u003cversion\u003e_linux_\u003carch\u003e.deb`\n- macOS: `govard_\u003cversion\u003e_Darwin_\u003carch\u003e.pkg`\n\nLinux (`.deb`) example:\n\n```bash\nsudo dpkg -i govard_\u003cversion\u003e_linux_amd64.deb\n```\n\nmacOS (`.pkg`) example:\n\n```bash\nsudo installer -pkg govard_\u003cversion\u003e_Darwin_arm64.pkg -target /\n```\n\n### Quick Install from Source\n\nEnsure you have the following prerequisites installed:\n\n- **Go 1.25+**\n- **Node.js 20+**\n- **Yarn (v1.x)**\n- **golangci-lint (v2.11+)**\n- **Docker \u0026 Docker Compose**\n- **Wails v2.11+** (required for desktop app development)\n\n```bash\ngo version\nnode --version\nyarn --version\ngolangci-lint --version\ngit clone https://github.com/ddtcorex/govard.git\ncd govard\n./install.sh --source\n```\n\n### Local Setup (For Developers)\n\nIf you are contributing to Govard, follow these steps to set up your environment:\n\n1. **Go 1.25+**: Install from [go.dev](https://go.dev/dl/).\n2. **Yarn**: Enable with `corepack enable` or `npm install -g yarn`.\n3. **golangci-lint**: Install the latest version:\n\n   ```bash\n   curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin\n   ```\n\n4. **Wails v2.11+** (for desktop app development):\n\n   ```bash\n   go install github.com/wailsapp/wails/v2/cmd/wails@latest\n   wails version\n   ```\n\nIf you don't have `sudo` privileges, you can install everything to a local directory and update your `PATH`.\n\n### Docker Images (Build Args)\n\nGovard uses a single PHP Dockerfile with build args instead of versioned folders.\n\n```bash\ndocker build -f docker/php/Dockerfile -t ddtcorex/govard-php:8.4 --build-arg PHP_VERSION=8.4 docker/php\ndocker build -f docker/php/magento2/Dockerfile -t ddtcorex/govard-php-magento2:8.4 --build-arg PHP_VERSION=8.4 docker/php\n```\n\n---\n\n## 💻 Usage\n\n### 1. Initialize a Project\n\nNavigate to your project root and run:\n\n```bash\ngovard init\n```\n\nThis scans your project (via `composer.json` or `package.json`) and generates a `.govard.yml` configuration.\n\nFresh Emdash projects are also supported:\n\n```bash\ngovard bootstrap --framework emdash --fresh\ngovard env up\ngovard open admin\n```\n\nFresh framework scaffolders that require an empty project root now stage their generated files in a temporary directory before syncing them back into the initialized project. This keeps `.govard.yml` in place after `govard init`.\n\nFresh WordPress bootstrap downloads core directly from `wordpress.org` and installs via PHP bootstrap scripts, so `wp-cli` is no longer required for the initial setup flow.\n\n### 2. Start the Environment\n\n```bash\ngovard env up\ngovard up --quickstart\n```\n\nThis renders a per-project compose file under `~/.govard/compose/` and starts your specialized stack in detached mode. Use `--fallback-local-build` if you need to build missing images locally.\n\n`govard env up` also re-renders generated web-server assets under `~/.govard/` before container startup, so setup changes in the current Govard build are applied without depending on cached Apache or Nginx image configs.\n\n`govard env start` and `govard env restart` also re-apply local domain routing after containers come back up, so HTTPS and proxy registration stay in sync with the running project.\n\nEach local project must use a unique `project_name` and primary domain. Govard now blocks `init`/`env up` when another tracked project already uses the same identity, instead of silently colliding with an existing environment.\n\nCommon root shortcuts are also available for day-to-day lifecycle work:\n\n- `govard up` → `govard env up`\n- `govard down` → `govard env down`\n- `govard restart` → `govard env restart`\n- `govard ps` → `govard env ps`\n- `govard logs` → `govard env logs`\n\n### 3. Configure the Stack\n\nSpecifically for Magento 2, you can auto-inject the container settings into your application:\n\n```bash\ngovard config auto\n```\n\n### 4. Enter the Workspace\n\nAccess the application container immediately:\n\n```bash\ngovard shell\n```\n\n### 5. Remote Management (Flagship)\n\nSet up and validate a remote:\n\n```bash\ngovard remote add staging --host staging.example.com --user deploy --path /var/www/app\ngovard remote copy-id staging\ngovard remote test staging\n```\n\nPlan and run a safe sync:\n\n```bash\ngovard sync --source staging --destination local --full --plan\ngovard sync --source staging --destination local --full\ngovard sync --source prod --file --path \"app/etc/config.php\"\n```\n\nInspect remote audit events:\n\n```bash\ngovard remote audit tail --status failure --lines 50\n```\n\nRemote defaults and protections:\n\n- `remote add` is interactive if flags are missing.\n- `remote copy-id` transfers your local public key to the remote `authorized_keys`.\n- Remote paths support `~/` home directory expansion on the remote host. In shell examples, use an absolute remote path or quote the value, for example `--path '~/public_html'`, so the local shell does not expand it first.\n- `prod` remotes are write-protected by default.\n- Capability scopes (`files,media,db,deploy`) are enforced per operation.\n- File/media sync uses resumable rsync mode by default.\n- Full docs: [Remotes and Sync](https://github.com/ddtcorex/govard/wiki/Remotes-and-Sync).\n\n### 6. Common Operational Workflows\n\n- `govard db ...` for dump, import, query, and connection helpers.\n- `govard debug on|off` to toggle Xdebug for the current project.\n- `govard snapshot create` before risky local upgrades or imports.\n- `govard lock generate` / `govard lock check` to detect environment drift.\n- `govard tunnel start` to expose a local project publicly (**requires `cloudflared` binary**).\n\n---\n\n## SSL \u0026 HTTPS\n\nGovard provides automated local HTTPS for all `.test` domains using a built-in certificate authority (Caddy).\n\n### 1. DNS Resolver for `.test` Domains\n\nGovard now runs a built-in `dnsmasq` service on the local loopback interface (port 53) to automatically resolve `*.test` domains to your local environment.\n\nYou need to configure your operating system to forward `.test` queries to this local service.\n\n**Linux (Ubuntu/Debian with systemd-resolved - Recommended):**\n\n```bash\nsudo mkdir -p /etc/systemd/resolved.conf.d\ncat \u003c\u003c'EOF' | sudo tee /etc/systemd/resolved.conf.d/govard-test.conf\n[Resolve]\nDNS=127.0.0.1\nDomains=~test\nEOF\nsudo systemctl restart systemd-resolved\n```\n\n**Ubuntu (resolvconf - Legacy):**\n\n```bash\nsudo apt-get install resolvconf\necho \"nameserver 127.0.0.1\" | sudo tee /etc/resolvconf/resolv.conf.d/tail\nsudo resolvconf -u\n```\n\n**Arch Linux (systemd-resolved):**\n\n```bash\nsudo systemctl enable --now systemd-resolved\nsudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf\nsudo mkdir -p /etc/systemd/resolved.conf.d\ncat \u003c\u003c'EOF' | sudo tee /etc/systemd/resolved.conf.d/govard-test.conf\n[Resolve]\nDNS=127.0.0.1\nDomains=~test\nEOF\nsudo systemctl restart systemd-resolved\n```\n\n**Fedora (systemd-resolved):**\n\n```bash\nsudo systemctl enable --now systemd-resolved\nsudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf\nsudo mkdir -p /etc/systemd/resolved.conf.d\ncat \u003c\u003c'EOF' | sudo tee /etc/systemd/resolved.conf.d/govard-test.conf\n[Resolve]\nDNS=127.0.0.1\nDomains=~test\nEOF\nsudo systemctl restart systemd-resolved\n```\n\nVerify DNS:\n\n```bash\nresolvectl query laravel.test\ndig +short laravel.test\n```\n\nmacOS (Create a resolver file):\n\n```bash\nsudo mkdir -p /etc/resolver\necho \"nameserver 127.0.0.1\" | sudo tee /etc/resolver/test\n```\n\n### 2. Install the Root CA\n\nBy default, `govard svc up` and `govard svc restart` now auto-trust the Govard Root CA:\n\n```bash\ngovard svc up\n```\n\nYou can also run trust manually at any time:\n\n```bash\ngovard doctor trust\n```\n\nWhat happens automatically:\n\n- Exports Root CA from Caddy to `~/.govard/ssl/root.crt`\n- Installs it into system trust store (Linux/macOS)\n- Best-effort import into browser NSS stores (Chromium/Firefox) when `certutil` is available\n\nOptional flags on `svc up`/`svc restart`:\n\n```bash\ngovard svc up --no-trust\ngovard svc up --no-fallback\n```\n\n### 3. Browser Configuration\n\nGovard now tries to import browser trust automatically. If your browser still shows trust warnings:\n\n1. **Locate the CA**: `~/.govard/ssl/root.crt` (or `$HOME/.govard/ssl/root.crt`).\n2. **Open Settings**: Go to `chrome://settings/certificates` in your browser.\n3. **Import**: Navigate to the **Authorities** tab and click **Import**.\n4. **Select File**: Select the `root.crt` file from the path above.\n5. Restart your browser.\n\n_Note: Once trusted, all `*.test` domains managed by Govard will show a \"Green Lock\" without further configuration._\n\n---\n\n## Project Structure\n\n```text\n.\n├── cmd/\n│   ├── govard/      # CLI entry point\n│   └── govard-desktop/ # Desktop entry point (Wails)\n├── desktop/         # Desktop app assets (Wails frontend/config)\n├── internal/\n│   ├── cmd/         # CLI Command definitions (Cobra)\n│   ├── blueprints/  # Docker Compose templates for specific frameworks\n│   ├── engine/      # Core logic (Docker SDK, Discovery, Rendering)\n│   ├── desktop/     # Desktop app glue (Wails bindings)\n│   ├── proxy/       # Caddy/proxy route and TLS helpers\n│   ├── ui/          # Styled terminal output logic\n│   └── updater/     # Background update checking\n├── Makefile         # Build and installation automation\n└── .govard.yml       # Project-specific configuration (Generated)\n```\n\n---\n\n## 🔍 CLI Command Reference\n\nRoot lifecycle shortcuts:\n\n- `govard up` → `govard env up`\n- `govard down` → `govard env down`\n- `govard restart` → `govard env restart`\n- `govard ps` → `govard env ps`\n- `govard logs` → `govard env logs`\n\nCommon command aliases:\n\n- `govard boot` → `govard bootstrap`\n- `govard cfg` → `govard config`\n- `govard dbg` → `govard debug`\n- `govard gui` → `govard desktop`\n- `govard diag` → `govard doctor`\n- `govard ext` → `govard extensions`\n- `govard prj` → `govard project`\n- `govard rmt` → `govard remote`\n- `govard sh` → `govard shell`\n- `govard snap` → `govard snapshot`\n\n| Command              | Description                                                        |\n| :------------------- | :----------------------------------------------------------------- |\n| `govard init`        | Initialize a new project configuration                             |\n| `govard bootstrap`   | Bootstrap local project setup and clone a remote environment       |\n| `govard env`        | Project-scoped lifecycle; intelligently proxies Docker Compose commands  |\n| `govard domain`     | Manage additional domains for the project                          |\n| `govard svc`        | Manage global services (`proxy`, `mail`, `pma`, `portainer`)       |\n| `govard tool`        | Run framework/tooling CLIs inside project containers               |\n| `govard shell`       | Enter the application container                                    |\n| `govard db`          | Database operations (`connect`, `dump`, `import`, `query`, `info`) |\n| `govard debug`       | Toggle Xdebug for the current environment                          |\n| `govard open`        | Open service URLs (Admin, DB, Mail, Portainer). `db` opens PMA; use `--client` for protocol URLs. |\n| `govard remote`      | Manage remote environments                                         |\n| `govard sync`        | Synchronize files, media, and databases between environments       |\n| `govard status`      | List running project environments across workspace                 |\n| `govard doctor`      | Run system diagnostics (including compose directory saturation) and remediation helpers |\n| `govard config`      | Manage `.govard.yml` configuration from CLI                        |\n| `govard deploy`      | Run deploy lifecycle hooks (pre/post deploy)                      |\n| `govard snapshot`    | Manage local snapshots for database and media                      |\n| `govard lock`        | Generate and validate `govard.lock` snapshots                      |\n| `govard tunnel`      | Start a public tunnel to a local project URL                       |\n| `govard custom`      | Run project custom commands from `.govard/commands`                |\n| `govard project`     | Query known projects from local registry (`list`, `open`, `delete`) |\n| \u003ccode\u003egovard\u0026nbsp;extensions\u003c/code\u003e | Manage project extension contract in `.govard`                     |\n| `govard desktop`     | Launch the Govard Desktop app (`--background` supported)           |\n| \u003ccode\u003egovard\u0026nbsp;self\u0026#8209;update\u003c/code\u003e | Upgrade installed Govard binaries (`govard` + detected `govard-desktop`) |\n| `govard upgrade`     | Native framework upgrade pipeline (Magento 2, Laravel, Symfony, WordPress) |\n| `govard version`     | Print the version number of Govard                                 |\n| `govard redis`       | Smart shortcut for project Redis Management                        |\n| `govard varnish`     | Smart shortcut for project Varnish Management                      |\n\n---\n\n## 📚 Documentation\n\nFull documentation is available on the [**GitHub Wiki**](https://github.com/ddtcorex/govard/wiki):\n\n- [Getting Started](https://github.com/ddtcorex/govard/wiki/Getting-Started) - Installation and first project workflow\n- [CLI Commands](https://github.com/ddtcorex/govard/wiki/CLI-Commands) - CLI reference, shortcuts, tools, diagnostics, and utilities\n- [Configuration](https://github.com/ddtcorex/govard/wiki/Configuration) - `.govard.yml`, profiles, remotes, and blueprint registry\n- [Remotes and Sync](https://github.com/ddtcorex/govard/wiki/Remotes-and-Sync) - Remote setup, sync flows, audit logs, and remote DB work\n- [Frameworks](https://github.com/ddtcorex/govard/wiki/Frameworks) - Support matrix and framework-specific notes\n- [SSL and Domains](https://github.com/ddtcorex/govard/wiki/SSL-and-Domains) - Local HTTPS, CA trust, and domain routing\n- [Desktop App](https://github.com/ddtcorex/govard/wiki/Desktop-App) - Desktop surface and dev-mode workflow\n- [Architecture](https://github.com/ddtcorex/govard/wiki/Architecture) - System design and module layout\n- [Contributing](https://github.com/ddtcorex/govard/wiki/Contributing) - Build, test, and contribution workflow\n- [FAQ \u0026 Troubleshooting](https://github.com/ddtcorex/govard/wiki/FAQ) - Common issues and solutions\n\n---\n\n## ✅ Quality Gates\n\nGovard CI runs these checks on every push and pull request:\n\n| Pipeline Job | Local Command | Description |\n| :--- | :--- | :--- |\n| **Quality Checks** | `make lint fmt-check vet` | Runs `golangci-lint`, checks `gofmt -s` compliance, and `go vet`. |\n| **Full Tests** | `make test` | Runs lint, format check, `go vet`, frontend tests, and Go unit tests. |\n| **Integration Tests** | `make test-integration` | Builds a test binary and runs end-to-end framework tests in Docker. |\n| **Build Binaries** | `make build` | Verifies that the project compiles for the current platform. |\n\n### Recommended Local Workflow\n\nTo ensure your contribution passes the GitHub CI pipeline, run the following sequence before pushing:\n\n#### Validation\n\nRuns the full suite including linting, formatting checks, vet, frontend tests, Go unit tests, and integration tests (requires Docker):\n\n```bash\nmake test\n```\n\nIf the CI pipeline fails and you want to reproduce the exact check that failed locally, you can use these granular commands:\n\n- `make lint` — Checks code style and static analysis (synchronized with CI version).\n- `make fmt-check` — Checks if any files need `go fmt -s`.\n- `make vet` — Runs `go vet`.\n- `make test-unit` — Runs only Go unit tests.\n- `make test-frontend` — Runs only Node.js frontend tests.\n- `make test-integration-ci` — Runs integration tests in parallel (CI behavior).\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Please feel free to submit Pull Requests or open Issues on GitHub.\n\n1. Fork the Repository\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n---\n\n## 📜 License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n---\n\n**Developed with ❤️ by [ddtcorex](https://github.com/ddtcorex)**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddtcorex%2Fgovard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fddtcorex%2Fgovard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddtcorex%2Fgovard/lists"}