Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Install

Pick whichever fits your environment.

PyPI

pip install nanoidp

Ships the server (python -m nanoidp) and the MCP server (nanoidp-mcp).

Docker (GHCR)

docker pull ghcr.io/cdelmonte-zg/nanoidp:latest

Run it with your config directory mounted:

docker run --rm -p 8000:8000 \
  -v $(pwd)/config:/app/config \
  ghcr.io/cdelmonte-zg/nanoidp:latest

Container tags are derived from release tags (for example v2.6.0); latest points at the newest non-prerelease.

Since 3.1.0 the image runs as uid 1000 (gid 0) rather than root. Anything you mount for nanoidp to write, a keys volume in particular, must be writable by that user: a volume first created by an older release is root-owned and needs a one-time chown -R 1000:0. A read-only config mount needs nothing.

Helm

helm install nanoidp oci://ghcr.io/cdelmonte-zg/charts/nanoidp --values values.yaml

Without --version, Helm resolves the newest final release; pre-releases need --devel or an explicit --version. See the chart README for a complete, working values.yaml (config files, a registered OAuth client, Ingress), the full set of values, and the chart's limitations.

From source

git clone https://github.com/cdelmonte-zg/nanoidp.git
cd nanoidp
pip install .

For development (tests, lint, type checking):

pip install -e ".[dev]"

The repository also ships a docker-compose.yml for running from a checkout:

docker-compose up -d

Next: the Quickstart gets you from a fresh install to a first token.