Skip to content

Knowledge that stays yours.

An open-source, self-hosted knowledge base. One Postgres-backed core, a swappable interface, and modules you switch on per deployment.

Arkivel article reader with navigation and a linked-page graph

One backend. Any interface.

ARKIVEL_SITE_MODE picks the shell an instance presents. These three are the built-in examples; every mode shares the same articles, accounts, permissions, editor, and database.

  • wiki

    A knowledge base: articles, wiki links, backlinks, spaces, tags, search, and a link graph.

  • docs

    A versioned reading index over published articles, grouped by section with previous and next links.

  • media

    A film and series library on the same backend, database, accounts, and admin as the wiki.

Configurable in four layers.

New needs reach for the lowest layer that covers them. Tables scale with engines, not with features.

  1. Core

    Articles, wiki links, spaces, tags, search, revisions, users, sessions, audit, admin. Every deployment has it.

  2. Collections

    One generic engine: a typed property schema, items, and views. Tasks and trackers are templates, not tables.

  3. Modules

    First-party code paths a deployment switches on or off: graph, assets, import, export, API, feeds, share, media.

  4. Kits

    A preset of modules, a skin, and seeded collections, applied idempotently from /admin/kits.

Every route is scriptable.

Personal access tokens act as their owner with the owner's role. The frozen /api/v1 read contract ships with a generated OpenAPI document.

curl https://wiki.example.com/api/v1/search?q=deploy \
  -H "Authorization: Bearer ark_…"

API reference →

One container, one database.

Compose builds the image, starts PostgreSQL, and applies pending migrations before serving. Owners are created by an operator command, never by public sign-up.

git clone https://github.com/mohammed-alsalhi/arkivel.git && cd arkivel
cp .env.example .env    # site mode, base url, modules
docker compose up --build -d
docker compose exec -T app node scripts/bootstrap-owner.mjs \
  --username owner --email owner@example.com

Installation guide →

Deliberately small.

Arkivel is a place to write things down and find them again. It intentionally leaves out:

  • Third-party plugins or a marketplace
  • Live collaboration
  • AI assistants (the one optional use is the media mood pick)
  • Social feeds and gamification
  • Canvases, maps, and presentation tools