A miniature OCI/Docker container registry
Find a file
2025-05-10 21:41:15 +02:00
minocir.js add access file reload on HUP 2025-05-10 21:09:51 +02:00
README.md update README 2025-05-10 21:41:15 +02:00

Miniature OCI Registry

Minocir is an exremely minimal OCI/Docker registry. It is a single js file written for bun.

Features:

  • pull
  • push
  • authentication

This is not meant to be a full fledged registry. It is the bare minimum to have a working registry, so that you can share images without sending tarballs.

Everything is kept inside a single directory. User management is done through a passwd-like file. User tokens are stored in plain text. I am intentionally calling them tokens, because you should not store user generated passwords there.

Usage

  1. (optionally) compile to a binary using bun: bun build --compile --target=bun-linux-x64 minocir.js --outfile minocir
  2. Run the js file or binary with the following environment variables:
    BIND_ADDR=0.0.0.0 # address to bind to
    BIND_PORT=8000 # port to bind to
    DATA_REPO=./data # storage directory (must exist)
    
  3. Modify $DATA_REPO/access to define users and tokens.
  4. Set up a reverse proxy in front of it. It does not support HTTPS right now.

Future

This project may become:

  • actually compliant with the spec
  • rust (bun binaries are enormous -- ~90MB!)