A wiki your team can trust with what it knows.
A self-hosted fork of Wiki.js 3.0 for teams that need to control who reads what, prove it, and let agents read it too.
0.1.0 · pre-1.0 · our own docs run on Cardinal.js at docs.cardinal.wiki

Built for a wiki that holds things that matter.
Access you can prove
A classification level on every page, page rules on groups, sign-in through OIDC, SAML or LDAP, and an audit log kept as long as you set.
How access worksAgents under your rules
A built-in MCP server. Every agent acts as a real user through a personal token that always expires and can be narrowed further, and sees only what that user may.
MCP guideIn and out, on your terms
Move from Wiki.js 2.5 with a dry run and a verifier. Take everything back out through the API, MCP or plain files.
Migration and exitThe migrate command reads your 2.5 database read-only, dry-runs first, then verifies record counts and content hashes before you flip DNS.
Read the cutover stepsRunning in a few minutes.
One container plus PostgreSQL 16 or later. Set the first admin in the environment and you land straight in a secured instance.
services: db: image: postgres:18 environment: POSTGRES_DB: cardinal POSTGRES_USER: cardinal POSTGRES_PASSWORD: change-me volumes: [ db-data:/var/lib/postgresql ] wiki: image: registry.gitlab.com/ingentis/cardinaljs:0.1.0 depends_on: [ db ] environment: DATABASE_URL: postgres://cardinal:change-me@db:5432/cardinal ADMIN_EMAIL: [email protected] ADMIN_PASS: a-long-passphrase volumes: [ wiki-data:/wiki/data ] ports: [ "3000:3000" ] volumes: db-data: wiki-data: