Skip to content

Deployment

The simplest way to host MarkdownFS publicly. See the Hugging Face guide.

Docker

docker build -t markdownfs -f huggingface/Dockerfile .
docker run -d -p 7860:7860 \
  -e MARKDOWNFS_LISTEN=0.0.0.0:7860 \
  -v $PWD/data:/home/mdfs/data \
  markdownfs

Self-hosted (systemd)

[Unit]
Description=MarkdownFS
After=network.target

[Service]
Environment=MARKDOWNFS_LISTEN=0.0.0.0:3000
Environment=MARKDOWNFS_DATA_DIR=/var/lib/markdownfs
ExecStart=/usr/local/bin/mdfs-server
Restart=on-failure
User=markdownfs

[Install]
WantedBy=multi-user.target

Configuration

Variable Default Notes
MARKDOWNFS_DATA_DIR current directory Where state is persisted
MARKDOWNFS_LISTEN 127.0.0.1:3000 Bind address
MARKDOWNFS_AUTOSAVE_SECS 5 Auto-save interval
MARKDOWNFS_AUTOSAVE_WRITES 100 Auto-save after N writes
MARKDOWNFS_MAX_FILE_SIZE 10485760 (10 MB) Per-file cap
MARKDOWNFS_MAX_INODES 1000000 Filesystem capacity
MARKDOWNFS_MAX_DEPTH 256 Max directory depth
MARKDOWNFS_COMPAT_TARGET markdown File-type compatibility target
RUST_LOG markdownfs=info Logging filter

Persistence

MarkdownFS persists state via atomic bincode snapshots in MARKDOWNFS_DATA_DIR. Snapshots happen on auto-save, on vcs/commit, and on graceful shutdown. Mount durable storage (a Docker volume, an HF Persistent Storage volume, etc.) at that path.