{
  "slug": "releases",
  "title": "Releases & downloads",
  "description": "Download the webhouse.app CMS admin server as a tarball or Docker image. Weekly auto-builds + tagged stable releases.",
  "category": "deployment",
  "order": 1,
  "locale": "en",
  "translationGroup": "c598ad07-5c43-4c42-8037-f3b633ffee80",
  "helpCardId": null,
  "content": "## Download channels\n\nwebhouse.app ships the admin server through two channels — pick whichever fits your setup.\n\n### Stable (tagged)\n\nCut manually when a milestone lands. Tracked under `:latest`.\n\n- **Docker**: `docker pull ghcr.io/webhousecode/cms-admin:latest`\n- **Tarball**: [github.com/webhousecode/cms/releases/latest](https://github.com/webhousecode/cms/releases/latest)\n\n### Weekly (automated)\n\nEvery Monday at 16:00 UTC. Skipped if there are no commits since the previous weekly. Always points to the HEAD of `main` as of build time.\n\n- **Docker**: `docker pull ghcr.io/webhousecode/cms-admin:weekly`\n- **Tarball**: [github.com/webhousecode/cms/releases/tag/weekly](https://github.com/webhousecode/cms/releases/tag/weekly)\n- **Plain-text index**: [releases.txt](https://raw.githubusercontent.com/webhousecode/cms/main/releases.txt) (latest entries first, for scripts)\n\n## What's in the tarball\n\nA pre-built **Next.js standalone bundle** — not source code you need to `pnpm install`, not something you run with `next start`. It's a self-contained server:\n\n```\ncms-admin-2026.04.20/\n  run.sh                           # convenience wrapper\n  packages/cms-admin/\n    server.js                      # entry point — a Next.js standalone server\n    .next/static/                  # compiled assets\n    public/                        # public files\n    node_modules/                  # minimal deps (already resolved)\n```\n\nEnabled via `output: \"standalone\"` in `next.config.ts`. You run it with `node server.js` — the `next` CLI is not installed and not needed. Total size ~50–100 MB vs. ~500 MB for a full `pnpm install` + `next start` setup.\n\n**Quality gate**: every release is typechecked and tested in GitHub Actions before the tarball is built. If typecheck or tests fail, the release does not ship.\n\n## Quick start — tarball\n\nRequires Node.js 22 or newer. Works on Linux, macOS, and Windows (WSL or Git Bash).\n\n```bash\ncurl -L https://github.com/webhousecode/cms/releases/latest/download/cms-admin.tar.gz | tar xz\ncd cms-admin-*\n./run.sh\n```\n\nUnder the hood `run.sh` does:\n\n```bash\ncd packages/cms-admin\nexport PORT=\"${PORT:-3010}\"\nexport HOSTNAME=\"${HOSTNAME:-0.0.0.0}\"\nexec node server.js\n```\n\nVisit [http://localhost:3010](http://localhost:3010) and complete the setup wizard — you create the first admin account interactively (email + password). There is no default user or password.\n\n### Environment variables\n\nOverride the defaults with env vars before `./run.sh`:\n\n| Var | Default | Purpose |\n|---|---|---|\n| `PORT` | `3010` | Listen port |\n| `HOSTNAME` | `0.0.0.0` | Bind address |\n| `ADMIN_EMAIL` | — | Auto-create admin on first boot |\n| `ADMIN_PASSWORD` | auto-generated | If `ADMIN_EMAIL` is set without a password, one is generated and logged to stdout |\n| `CMS_CONFIG_PATH` | — | Path or `github://owner/repo` URI of a site's `cms.config.ts` |\n\n## Quick start — Docker\n\n```bash\ndocker run -p 3010:3010 -v $(pwd):/site \\\n  -e ADMIN_EMAIL=you@example.com \\\n  ghcr.io/webhousecode/cms-admin:latest\n```\n\nMulti-platform (`linux/amd64`, `linux/arm64`) so it runs on Intel Macs, Apple Silicon, and typical server CPUs. The image bakes in the same standalone bundle as the tarball.\n\n## Choosing stable vs. weekly\n\n| | Stable | Weekly |\n|---|---|---|\n| Cadence | Every 2–4 weeks | Every Monday (if there are changes) |\n| Breaking changes | Documented in release notes | Only communicated if intentional |\n| Recommended for | Production self-hosted | Hobby projects, early adopters, local dev |\n| Rollback | Pin to any past `vX.Y.Z` tag | Pin to any past `YYYY.MM.DD` tag |\n\nBoth channels are functionally the same build — weekly just ships more often.\n\n## Cutting a stable release (maintainer only)\n\n```bash\ngit tag -a v0.3.0 -m \"Feature summary\"\ngit push origin v0.3.0\n```\n\nThat fires the `release-stable` GitHub Actions workflow, which builds the tarball, pushes the Docker image to GHCR, and creates a permanent GitHub Release marked as `latest`.\n\n## Troubleshooting\n\n**`run.sh: command not found`** — you're on Windows CMD/PowerShell. Use `cd cms-admin-* && cd packages/cms-admin && node server.js`, or run from WSL / Git Bash.\n\n**Port already in use** — override with `PORT=4010 ./run.sh`.\n\n**Can't reach the server from another machine on the LAN** — set `HOSTNAME=0.0.0.0` (default already).\n\n**Want to run from source with hot reload?** That's a different path — clone the repo and `pnpm dev` instead. The tarball is a production-style build, no file watching.\n\n## Related\n\n- [Deploy settings](/docs/settings-deploy) — provider config for publishing SITES (different from the admin server itself)\n- [Fly.io Live](/docs/deploy-fly-live) — volume-backed site deploys\n- [ICD](/docs/instant-content-deployment) — content sync to running Next.js sites",
  "excerpt": "Download channels\n\nwebhouse.app ships the admin server through two channels — pick whichever fits your setup.\n\n Stable (tagged)\n\nCut manually when a milestone lands. Tracked under :latest.\n\n- Docker: docker pull ghcr.io/webhousecode/cms-admin:latest\n- Tarball: [github.com/webhousecode/cms/releases/l",
  "seo": {
    "metaTitle": "Releases & downloads — webhouse.app Docs",
    "metaDescription": "Download the webhouse.app CMS admin server as a tarball or Docker image. Weekly auto-builds + tagged stable releases.",
    "keywords": [
      "webhouse",
      "cms",
      "release",
      "download",
      "docker",
      "tarball",
      "ghcr",
      "self-hosted"
    ]
  },
  "createdAt": "2026-04-16T17:00:00.000Z",
  "updatedAt": "2026-04-16T17:00:00.000Z"
}