Files
2026-07-27 17:43:48 +00:00

83 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Docusaurus
## Overview
Docusaurus is an open source static site generator for building
documentation websites. This stack runs the Docusaurus dev server
directly from a `node` image against a project mounted from the host,
so you can scaffold and preview a docs site without installing Node
locally.
## Project Details
- **Project Repository:** https://github.com/facebook/docusaurus
- **Container Image:** [Docker Hub](https://hub.docker.com/_/node)
- **Compose Example:** N/A (no official Docusaurus image; this stack runs the CLI on top of `node`)
- **Documentation:** [Docusaurus Docs](https://docusaurus.io/docs)
- **Reverse Proxy Port:** `3000`
## Getting Started
1. Start the container: `docker compose up -d`
2. On first run, with an empty volume, the container scaffolds a new
classic Docusaurus site with `create-docusaurus` before starting
the dev server — this can take a minute
3. Open http://localhost:3000 in your browser
4. Edit files under the mounted volume on the host; the dev server
hot-reloads on changes
## Environment Variable Notes
- `DOCUSAURUS_IMAGE` Node image to run Docusaurus on (default: `node:20-alpine`)
- `DOCUSAURUS_PORT` Host port to expose the dev server on (default: `3000`)
- `DOCUSAURUS_RESTART` Restart policy (default: `unless-stopped`)
## Volume Notes
- `/app` Docusaurus project source (`docusaurus.config.js`, `docs/`,
`package.json`, etc.); mounted from `${VOL_PATH:-/data}/docusaurus`
so the site persists and is editable from the host. If this
directory has no `package.json`, the container scaffolds a fresh
classic-template site into it on startup.
## Network Notes
Requires proxy network
## Docker Run
```bash
docker run -d \
--name=docusaurus \
-e HOST=0.0.0.0 \
-v /data/docusaurus:/app \
-w /app \
-p 3000:3000 \
node:20-alpine \
sh -c "apk add --no-cache git >/dev/null 2>&1 || true; [ -f package.json ] || npx --yes create-docusaurus@latest . classic --skip-install --package-manager npm; npm install; npm start -- --host 0.0.0.0"
```
## Additional Notes / Gotchas
- This is a dev-server stack, not production hosting — it runs
`npm start`, which serves an unoptimized, hot-reloading build.
For production, build a static bundle (`npm run build`) and serve
it from a static file server or CDN instead.
- `npm install` runs on every container start, so the first start
after scaffolding (and any restart) takes longer than subsequent
ones once `node_modules` is cached in the volume.
- Because the entire project lives in the bind-mounted volume,
deleting the volume wipes the docs site along with it — back it up
like any other source tree.
## Dockhand Stack, Deploy from Git
Cookbooks Repository
stackname: docusaurus
Compose file path: docusaurus_dev/compose.yaml
Additional env file (optional): docusaurus_dev/sample.env
Then "Load" docusaurus_dev/sample.env into the Environmental variables in dockhand
Create the Stack