Self-hosted markdown notes in the browser — filesystem vault, single Go binary, Basic auth.
The image is a minimal Alpine runtime with a statically linked binary.
docker run -d --name markdown-web \
-p 8080:8080 \
-e AUTH_USERNAME=admin \
-e AUTH_PASSWORD=changeme \
-v markdown-web-vault:/data/vault \
mligor/markdown-web:latest
Open http://localhost:8080 — sign in with admin / changeme.
services:
markdown-web:
image: mligor/markdown-web:latest
ports:
- "8080:8080"
environment:
VAULT_PATH: /data/vault
AUTH_USERNAME: admin
AUTH_PASSWORD: changeme
LISTEN_ADDRESS: ":8080"
volumes:
- ./vault:/data/vault
restart: unless-stopped
| Tag | Architectures |
|---|---|
latest, x.y.z | linux/amd64, linux/arm64 |
Docker pulls the matching arch automatically on Apple Silicon, Raspberry Pi, and x86_64 servers.
| Variable | Default | Description |
|---|---|---|
VAULT_PATH | /data/vault | Directory for .md notes |
AUTH_USERNAME | admin | Basic auth username |
AUTH_PASSWORD | (required if no hash) | Password |
AUTH_PASSWORD_HASH | bcrypt hash (preferred in production) | |
LISTEN_ADDRESS | :8080 | HTTP listen address |
Put a reverse proxy with TLS in front (Caddy, nginx, Traefik). Do not expose Basic auth on the public internet over plain HTTP.
Mount a persistent volume at /data/vault. Notes are ordinary markdown files; the search index lives under .markdown-web/ inside the vault.
Content type
Image
Digest
sha256:84b41e287…
Size
12.8 MB
Last updated
12 days ago
docker pull mligor/markdown-web