Skip to content
Guides

Build and deployment

Build and publish a store to Cloudflare Workers with the CLI.

Last updated:

Cloudflare Workers is the available target. ecomiq build and ecomiq deploy always build with the workerd runtime, even when development uses Node.

Configuration

ecomiq.config.js
import { defineConfig } from "@ecomiq/storefront/config";

export default defineConfig({
  domain: "marketplace",
  deploy: {
    target: "cloudflare",
    name: "andina-market",
    routes: [{ pattern: "shop.example.com", custom_domain: true }],
  },
  env: {
    PUBLIC_SUPPORT_EMAIL: "support@example.com",
  },
});

When deploy.name is omitted, the CLI derives the name from domain. deploy.routes accepts the same shapes as Wrangler's routes:

  • A string.
  • { pattern, zone_id, custom_domain? }.
  • { pattern, zone_name, custom_domain? }.
  • { pattern, custom_domain, enabled?, previews_enabled? }.

Build

pnpm build

The output is written to .ecomiq/dist. The CLI also generates the server entry and Wrangler configuration. Do not edit them.

Deployment

Authenticate Wrangler with a local session or CLOUDFLARE_API_TOKEN, then run:

pnpm deploy

deploy performs a fresh build and then runs wrangler deploy with the generated configuration.

Variables and secrets

env is written to the Worker's vars and is visible as plain-text configuration. Use it only for non-sensitive values.

Configure tokens, private keys, and BETTER_AUTH_SECRET as Cloudflare Secrets, not inside ecomiq.config.js.

Health checks

The generated Worker responds on:

RouteUse
/pingSimple check; returns ok.
/__ecomiq/healthAlso verifies that settings can be loaded.

The CLI has no deployment flags

There is no --name, --env, --route, or --dry-run. Declare the name, routes, and variables in ecomiq.config.js.

On this page