The docmd 0.7.2 release introduces the docmd deploy command : a config-aware deployment scaffolder that reads your project and generates production-ready server configurations tailored to it.
No other documentation tool does this. Docusaurus, VitePress, MkDocs - they all leave you to write your own Dockerfiles and server configs from scratch. docmd reads your docmd.config.js (or its zero-config defaults) and generates files that are ready to ship.
✨ docmd deploy : Config-Aware Deployment
Run a single command and get production-ready deployment files personalised to your project:
docmd deploy --docker # Dockerfile + .dockerignore
docmd deploy --nginx # nginx.conf
docmd deploy --caddy # Caddyfile
What Makes It Smart
The deploy command reads your configuration before generating anything. It extracts:
- Project title — stamped into every generated file as a header comment
- Output directory (
out) — used inCOPYpaths,rootdirectives, and file server configs instead of hardcoded values - Site URL (
url) — extracted hostname is injected asserver_name(Nginx) or the Caddy site address - SPA mode (
layout.spa) — only generatestry_filesSPA fallback routing when SPA mode is active - Config file path — if you use a non-default config name, the Dockerfile build step runs
docmd build --config your-config.js
If no docmd.config.js exists, the command still works — it falls back to the same zero-config defaults that docmd dev and docmd build use.
Always In Sync
Every run regenerates the deployment files to match your current configuration. Changed your url or out directory? Just run docmd deploy --nginx again. No --force flag needed for updates — your configs always reflect the latest state of your project.
Generated File Quality
- Docker: Multi-stage builds with
package.jsonlayer caching and exact@docmd/coreversion pinning for reproducible builds - Nginx: Security headers (
X-Content-Type-Options,X-Frame-Options), GZIP compression, immutable asset caching - Caddy: Automatic HTTPS-ready addressing, security headers, SPA routing, static asset caching
🛡️ The 7-Pillar Failsafe
Our internal verification engine has been refactored into 7 logical pillars of stability. This includes a new Dynamic Integrity Engine that catches version mismatch regressions instantly across the entire monorepo.
🌍 Global Ecosystem Expansion
Major localization updates in this release:
- Native Language Support: Built-in UI translations for German, Spanish, Japanese, and French added to the core engine — these locales work out-of-the-box for all UI components.
- Full German Translation: The entire documentation suite is now available in German (
/de/).
📝 Complete Changelog
🚀 Features & Enhancements
- New Command:
docmd deploywith--docker,--nginx,--caddytargets. - Config-Aware Scaffolding: Deploy command reads
docmd.config.js(or zero-config defaults) and personalises generated files with project title, output directory, hostname, SPA mode, and config path. - Always Fresh Configs: Deployment files regenerate on every run to stay in sync with config changes.
- Docker Scaffolding: Multi-stage Dockerfile with
package.jsonlayer caching and version-pinned@docmd/core. - Web Server Scaffolding: Hardened Nginx and Caddy templates with security headers, GZIP, and intelligent 404/SPA routing.
- Unified Config Labels: All internal modules (SEO, sitemap, LLMS, PWA, deployer, generator) now use the modern config keys (
config.title,config.url,config.out,config.src) instead of scattered legacy fallbacks. Defaults are defined once innormalizeConfig— the single source of truth. - Failsafe: Consolidated verification logic into a faster, more professional 7-stage pipeline.
- Versioning: New integrity engine automatically flags outdated internal workspace references.
- SEO Plugin: Fully respects the
titleAppendfrontmatter property for social media (OG/Twitter) metadata. - Native Support: Added built-in UI translations for German, Spanish, Japanese, and French to the core engine.
- Localization: Added comprehensive German translation and optimized Chinese translation for the documentation site.
🐛 Bug Fixes
- Deploy CLI: Fixed argument parsing when running through
pnpmproxy scripts with--cwd. - Deploy UX: Unknown arguments now show a helpful usage summary instead of a raw error with exit code 1.
- Caddy Config: Corrected Cache-Control header syntax (quoted values) for Caddyfile compatibility.
- Bump Script: Fixed a regex
lastIndexbug inscripts/bump.jsthat caused inconsistent version replacements. - CLI Safety: Added proper async error handling to all deployment command entry points.
- Live Editor: Fixed mobile overflow issues and template switching state tracking.
Migration Guide
For end users: No breaking changes. Update and try docmd deploy to generate deployment configs tailored to your project.
For plugin authors: No changes required.