DEVELOPMENT / PRODUCTION DEPLOY

Dowe Deploy

Build a native Distroless server image or generate the Cloudflare output owned by Dowe.

Install Dowe

CAPABILITY-AWARE MENU

Choose a configured surface

Run deploy from the project root. Server offers Docker and Cloudflare Worker. Web offers Cloudflare Pages.

dowe
dowe deploy
dowe deploy server --target docker --registry ghcr.io/acme --image clinic
dowe deploy --target cloudflare --name clinic-api
dowe deploy web --name clinic-web --publish

SERVER

Docker or Cloudflare Worker

Docker creates a native Linux image. Cloudflare Worker keeps the existing Dowe-owned Wasm lowering.

WEB

Cloudflare Pages

Pages packages the generated web distribution and can publish it with Wrangler.

NATIVE DOCKER RUNTIME

Tag the image you intend to run

Interactive Docker asks for a registry and image name. docker.io and the project folder provide safe defaults.

REGISTRY

docker.io

Use Docker Hub, ghcr.io, a private host, or a registry with a port.

IMAGE

project:latest

Dowe adds latest when the selected image name does not contain a tag.

PLATFORM

linux/amd64

The current native runtime and generated build command target Linux amd64.

dowe
.dowe/dist/docker/
  Dockerfile
  deploy.json
  app/
    main.dowe
    theme.dowe
    .env.example
    assets/

DISTROLESS / NONROOT

Ship one Dowe binary, not the toolchain

The final image contains the app and the Linux dowe executable. It does not contain Cargo, rustc, a shell, or Node.js.

One native executable

The same dowe binary runs development commands and the production-only server subcommand.

Immutable release archive

The Dockerfile downloads the versioned Linux archive and extracts dowe without requiring Dowe on the user machine.

dowe
/usr/local/bin/dowe server --root /app --bind 0.0.0.0:8080

SAFE FALLBACK

Keep the context when Docker is unavailable

Dowe always writes the context first. A working daemon builds and tags the image; a missing client or daemon leaves a usable Dockerfile for later.

Daemon available

Dowe runs docker build for linux/amd64 with the full registry and image tag.

Daemon unavailable

Deploy succeeds and reports that no local image was built.

Dry run

The context and command are produced without executing Docker.

CURRENT BOUNDARIES

Two Server targets, one shared Dowe authority

SSH, Linux host, and the former dowe build command are retired. Docker and Cloudflare continue through the shared deploy API used by CLI and IPC.

Secrets stay outside

.env is never copied. Declare names in .env.example and provide production values through the platform.

Push stays explicit

Dowe tags the local Docker image but does not log in or push it to the registry.