Commands
Every hotdog-cms command and its options, in one place.
Run any command with -h for its options: hotdog-cms serve -h. Options go before other words: hotdog-cms new -name "My site" mysite, not after.

Making and looking at sites
hotdog-cms new FOLDER
Start a site from the template. -name sets the site's name (default: the folder's name).
hotdog-cms serve
Preview the site, rebuilding as you save.
| Option | Default | Meaning |
|---|---|---|
-addr |
127.0.0.1:8140 |
Where to listen. |
-site |
. |
The site's folder. |
-drafts |
true |
Include pages marked draft: true. |
-reload |
true |
Reload the browser on changes. |
-endpoint |
A running endpoint to pass /_hotdog/ to, such as http://127.0.0.1:8180. |
hotdog-cms build
Write the finished site to public/. -site, -out (where to write it) and -drafts (include drafts; off by default).
hotdog-cms check
Build, then check every page. Exits with 1 if there are errors. -site, -out, -drafts, and:
-fix: say under each finding what usually puts it right;-csp: also print the Content-Security-Policy the pages need.
Publishing
hotdog-cms publish TARGET…
Build, check, then publish to targets in publish.yaml.
| Option | Meaning |
|---|---|
-all |
Publish to every target in the file. |
-no-build |
Publish the build already in public/. |
-targets |
The targets file (default publish.yaml in the site); keep it outside the repository if it names servers. |
-site |
The site's folder. |
hotdog-cms pull
On a web server: publish from git when the branch moves. See The pull agent.
-repo (required), -out (required), -branch (default main), -every (keep checking at this interval; 0 checks once), -subdir, -cache, -hook (listen for webhooks; needs HOTDOG_HOOK_SECRET), -indexnow, -platform.
hotdog-cms preview
Build every branch as it would be published, each at its own address. See Previews.
-repo (required), -addr (default 127.0.0.1:8160; anything else needs HOTDOG_PREVIEW_AUTH), -domain (default localhost), -scheme, -port, -branches (patterns such as main,draft/*), -every (default 30s), -drafts (default true), -frame, -root, -subdir, -platform.
hotdog-cms ci PLATFORM
Write the pipeline file for github, gitlab, gitea, forgejo, bitbucket, woodpecker, or git (a post-receive hook). -write puts it in the repository (otherwise it's printed); -branch is the publishing branch (default main); -site is the site's folder within the repository.
Bringing sites in
hotdog-cms import FROM
| From | Required | Notes |
|---|---|---|
wordpress |
-url |
-user for drafts and private posts, with HOTDOG_WP_PASSWORD. |
wxr |
-file |
A WordPress export. -url for pictures linked relative to the old site. |
ghost |
-file, -url |
A Ghost export, and the old site's address for pictures. |
hugo |
-from |
-rename sections, as from=to (default posts=articles). |
jekyll |
-from |
All take -site, -posts (the collection posts go into, default articles) and -overwrite. See Moving from another tool.
Packs
hotdog-cms pack
add [-force] <name|folder|git-url[@tag]>, remove <name>, list, check <name|folder|git-url>. Each takes -site DIR before its argument. See Packs.
Servers
hotdog-cms editor
The editor. -config (default editor.yaml). See The editor.
hotdog-cms endpoint
Forms and search. -config (default endpoint.yaml). See Forms and search on your server.
Secrets
Never options, always from the environment, so they don't end up in scripts, shell history or the list of running programs:
| Variable | For |
|---|---|
HOTDOG_GIT_TOKEN, HOTDOG_GIT_USER |
Cloning private repositories over HTTPS. |
HOTDOG_HOOK_SECRET |
Checking push webhooks (preview, pull -hook). |
HOTDOG_FORGE_TOKEN |
Posting preview links on pull requests. |
HOTDOG_PREVIEW_AUTH |
user:password for a preview server listening beyond your own computer. |
HOTDOG_WP_PASSWORD |
A WordPress Application Password, for import wordpress -user. |
HOTDOG_EDITOR_SECRET |
Sealing editor sign-ins (at least 32 characters). |
HOTDOG_FORM_SECRET |
Signing form tokens (the same on every endpoint for a site). |
HOTDOG_SMTP_PASSWORD |
The endpoint's email password. |
HOTDOG_TURNSTILE_SECRET |
Checking Cloudflare Turnstile on forms that use it. |
hotdog-cms version
The version, the license, and where the source code is.

