Users and authentication management SaaS
Important
This is the OpenSensor fork of Fief, maintained for OpenSensor authentication infrastructure. The original upstream no longer maintains this codebase. Fork-specific changes, validation results, and upgrade instructions are recorded in the maintenance notes.
- Official website: https://www.fief.dev
- Documentation: https://docs.fief.dev
All contributions to improve the project are welcome! In particular, bug and documentation fixes are really appreciated.
Report bugs and discuss larger changes in the OpenSensor fork's issues.
Thanks goes to these wonderful people (emoji key):
Use Python 3.14 (3.12–3.14 supported), uv, and the Node LTS version in .nvmrc.
The lockfiles cover runtime, development, and container dependencies.
uv sync --locked
npm ci
uv run python scripts/init-dev-env.py
docker compose up -d
npm run build
uv run pybabel compile --domain=messages --directory=fief/locale
uv run fief run-serverThe setup script creates .env with independent application and MFA encryption
keys. Re-running it preserves existing keys and settings. Never replace keys
for an existing database: they protect stored client secrets and MFA secrets.
The sample configuration creates a local development admin on server startup. These sample credentials are for local development only.
Admin user credentials
Email:
anne@bretagne.duchyPassword:
herminetincture
Start the worker in another terminal:
uv run fief run-worker -p 1 -t 1The devcontainer provides PostgreSQL and Redis and uses the same environment setup. Existing PostgreSQL 14 development data needs an explicit dump/restore into the new PostgreSQL 18 volume; see the maintenance notes before upgrading.
Run the checks and container smoke test:
uv run --locked pytest -n 4 --no-cov -q
uv run --locked mypy fief/
npm test
npm audit
uv export --locked --all-groups --no-emit-project -o /tmp/fief-requirements.txt
uv run --locked pip-audit --no-deps --disable-pip -r /tmp/fief-requirements.txt
docker build -f docker/Dockerfile.source -t opensensor/fief:local .
bash scripts/smoke-container.sh opensensor/fief:localFief is fair-code distributed under Elastic License 2.0 (ELv2).