Automate and preview MkDocs documentation projects with Docker.
Project description
draftmk
draftmk is an advanced command-line tool that automates the setup, management, and deployment of MkDocs-based documentation projects using Docker. It streamlines local previews, environment initialization, live editing, and supports CI/CD automation with flexible repository integration and configuration scaffolding for both public and internal documentation views.
Features
- One-command environment bootstrap with optional Git initialization
- CI-friendly flags:
--no-gitto skip Git setup,--repoto link existing repositories - Automatic port assignment (avoids conflicts)
- Auto-generation of
docs/index.md,mkdocs.public.yml, andmkdocs.internal.ymlscaffolding - Colorful CLI output for improved user experience
- Automatic Docker Compose setup via GitHub Gist download
- Friendly preview logs and automatic browser launching
- Supports seamless integration into CI pipelines
Installation
Install from PyPI:
pip install draftmk
Or add to a Poetry project:
poetry add draftmk
Requires Python ≥ 3.9, Docker, and Docker Compose.
Commands
init
Bootstraps a new DraftMk project.
draftmk init [--dir <directory>] [--no-git] [--repo <repository-url>]
- Prompts for a directory name (defaults to
draftmk-docsif not specified) - Creates
.draftmk/structure and.envwith available ports - Generates default
docs/index.md,mkdocs.public.yml, andmkdocs.internal.ymlfiles for scaffolding - Downloads
docker-compose.ymlfrom a GitHub Gist - Optionally initializes a Git repository on the
mainbranch unless--no-gitis specified - If
--repois provided, links the project to the existing Git repository
up
Initializes the project (if needed), pulls images, builds containers, and opens the browser.
draftmk up
preview
Starts the full environment and shows Docker logs.
draftmk preview --open
--open: Launches the frontend in your default browser
view
Launches the frontend in your browser using the port defined in .env.
draftmk view
logs
Tails the last 50 lines of the .draftmk/logs/draftmk.log file.
draftmk logs
stop
Stops all DraftMk-related Docker containers.
draftmk stop
status
Shows the running status of all containers.
draftmk status
Usage Examples for CI Automation
To bootstrap a project without Git initialization (useful in CI pipelines):
draftmk init --no-git
To bootstrap and link to an existing repository:
draftmk init --repo yourusername/yourrepo
Directory Structure
After running draftmk init, you will have:
.
├── .draftmk/
│ ├── config/
│ ├── site/
│ │ ├── public/
│ │ └── internal/
│ └── logs/
├── docs/
│ └── index.md
├── mkdocs.public.yml
├── mkdocs.internal.yml
├── .env
└── docker-compose.yml
Docker Images
DraftMk uses pre-built Docker images hosted on Docker Hub:
- Backend:
jonmatum/draftmk-backend - Frontend:
jonmatum/draftmk-frontend - Preview:
jonmatum/draftmk-preview
Docker Compose Template
The CLI downloads a docker-compose.yml template from the following GitHub Gist:
Requirements
- Python ≥ 3.9
- Docker
- Docker Compose
License
MIT © Jonatan Mata
echo "Pura Vida & Happy Coding!";
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file draftmk-0.6.2.tar.gz.
File metadata
- Download URL: draftmk-0.6.2.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.13.3 Darwin/24.4.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3dfe382804d260a785961c460a934f3e57d12e23b96b699fcc215dceb6e2b29b
|
|
| MD5 |
38d2dff4b287911b5e3734bc64f0c718
|
|
| BLAKE2b-256 |
4a8e421a4ec41fd04fc41e845ce6d645f4f8e0d20acdab9b6e0a0752b5fcd153
|
File details
Details for the file draftmk-0.6.2-py3-none-any.whl.
File metadata
- Download URL: draftmk-0.6.2-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.13.3 Darwin/24.4.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67c219935c71c1021fec4777c73679b4209316d57d5f89703d777b44a0294f10
|
|
| MD5 |
9872c91a9a522bad508c05e6fca9ee16
|
|
| BLAKE2b-256 |
a3e790654ed8708be7db567ed0417b587dd07f247e099e49e098f53011e3af29
|