masks
Self-hosted auth for the open web.
An OpenID Connect provider with a signing key for every tenant,
and the libraries your apps use to sign people in with it.
Quickstart · Documentation · Demo · Self-hosting
Run it
docker run --name masks -p 3000:3000 -v masks:/rails/storage ghcr.io/masksrb/masksOpen http://localhost:3000 and enter the setup token from the output.
- Host it yourself behind HTTPS, with its own Postgres or yours.
-
Mount it inside a Rails app with the
masks-servergem. - Build your own masks server as a Rails app, the way the image is built.
- Put it in front of an app that has no sign-in, with Caddy, Traefik, or nginx.
- Work on masks from this repository.
Libraries
| Language | Package | Reference |
|---|---|---|
| Ruby |
masks, masks-server
|
Rails apps |
| JavaScript | @masks/server |
Next.js, Express, Hono |
| Browser | @masks/client |
Single-page apps |
| Python | masks-client |
FastAPI, Django, Flask |
| Go | github.com/masksrb/masks/go |
net/http |
Security
Report a hole through private vulnerability reporting. SECURITY.md says what counts and how fast masks answers.
Contribute
You need Ruby and Colima.
-
./devruns the provider athttp://masks.localhost:12345and the docs athttp://masks.localhost:12346. -
./dev testruns every suite in containers.
Try it locally lists the rest.