kumbuka

module
v0.63.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 4, 2026 License: Apache-2.0

README

Kumbuka

Keep your knowledge close.
A small, self-hosted, Markdown-first wiki for documentation.

Kumbuka is a self-hosted knowledge platform backed by PostgreSQL. It provides a clean place for documentation, notes, and team knowledge while keeping your data under your control.

For installation, configuration, authentication, plugins, and administration, see the Kumbuka documentation.

Quick start

Start Kumbuka with Docker Compose:

docker compose -f deploy/compose.yaml up -d

Then open:

http://localhost:8080

On a fresh database, Kumbuka will guide you through creating the first administrator.

Example Kubernetes manifests are available in deploy/kubernetes.

You can also run the server directly:

kumbuka \
  --database-url 'postgres://USER:PASS@HOST:5432/kumbuka?sslmode=disable' \
  --listen-address 0.0.0.0:8080 \
  --public-url http://localhost:8080

Configuration

Kumbuka can be configured using command-line flags or environment variables. Environment variables use the KUMBUKA__ prefix.

Flag Environment variable Default
--listen-address KUMBUKA__LISTEN_ADDRESS 127.0.0.1:8080
--management-listen-address KUMBUKA__MANAGEMENT_LISTEN_ADDRESS 127.0.0.1:8081
--public-url KUMBUKA__PUBLIC_URL http://localhost:8080
--route-prefix KUMBUKA__ROUTE_PREFIX empty
--database-url KUMBUKA__DATABASE_URL —
--read-only KUMBUKA__READ_ONLY false
--trusted-proxy-cidrs KUMBUKA__TRUSTED_PROXY_CIDRS empty

The management listener exposes GET /healthz, GET /readyz, and, unless disabled, GET /metrics. It is separate from the public application listener and is not mounted below --route-prefix.

When using proxy authentication, configure --trusted-proxy-cidrs with the CIDRs of the immediate trusted ingress peers. Requests from any other peer cannot authenticate through identity headers. Your ingress must strip client-supplied identity headers before setting its own. Without a trusted CIDR list, proxy authentication cannot be enabled; local and OIDC modes are unaffected. A sole * permits every valid immediate peer (never mix it with CIDRs). Only use * when network policy prevents direct access except through the identity-verifying proxy. A startup warning is logged for wildcard trust.

For all available settings and deployment options, see kumbuka.me.

Ecosystem

License

Licensed under the Apache License, Version 2.0.

Directories

Path Synopsis
cmd
kumbuka command
internal
app
application/portablearchive
Package portablearchive coordinates portable archive restoration across application capabilities.
Package portablearchive coordinates portable archive restoration across application capabilities.
bootstrap
Package bootstrap composes Kumbuka's process-level runtime dependencies.
Package bootstrap composes Kumbuka's process-level runtime dependencies.
credential
Package credential contains reusable local-credential policy and hashing primitives.
Package credential contains reusable local-credential policy and hashing primitives.
flags
Package flags parses deployment-level configuration for the Kumbuka server.
Package flags parses deployment-level configuration for the Kumbuka server.
http/response
Package httpresponse writes shared HTTP response formats used across transport layers.
Package httpresponse writes shared HTTP response formats used across transport layers.
i18n
Package i18n provides request-localized interface messages for Kumbuka.
Package i18n provides request-localized interface messages for Kumbuka.
markdownurl
Package markdownurl locates resource URL destinations without rewriting Markdown source syntax.
Package markdownurl locates resource URL destinations without rewriting Markdown source syntax.
metrics
Package metrics exposes Kumbuka's built-in Prometheus instrumentation.
Package metrics exposes Kumbuka's built-in Prometheus instrumentation.
pdf
Package pdf sends standalone page documents to an external PDF renderer.
Package pdf sends standalone page documents to an external PDF renderer.
pluginupdate
Package pluginupdate discovers and downloads first-party Kumbuka plugin updates.
Package pluginupdate discovers and downloads first-party Kumbuka plugin updates.
portable
Package portable defines Kumbuka's versioned, instance-portable archive format.
Package portable defines Kumbuka's versioned, instance-portable archive format.
runtimeinfo
Package runtimeinfo maps deployment-owned process configuration to administrator-safe presentation data.
Package runtimeinfo maps deployment-owned process configuration to administrator-safe presentation data.
pkg
ascii
Package ascii contains predicates and transforms for the ASCII character classes used by Kumbuka.
Package ascii contains predicates and transforms for the ASCII character classes used by Kumbuka.
icons
Package icons exposes the icon catalogs used by the Kumbuka interface.
Package icons exposes the icon catalogs used by the Kumbuka interface.
mention
Package mention finds Kumbuka @username references in authored text.
Package mention finds Kumbuka @username references in authored text.
pagemove
Package pagemove contains pure page-path rules shared by application workflows and persistence transactions.
Package pagemove contains pure page-path rules shared by application workflows and persistence transactions.
pageurl
Package pageurl constructs canonical application-local page URLs.
Package pageurl constructs canonical application-local page URLs.
plugin
Package plugin defines Kumbuka's in-process module contracts.
Package plugin defines Kumbuka's in-process module contracts.
plugin/wasm
Package wasm adapts untrusted WASI reactors to Kumbuka's module contracts.
Package wasm adapts untrusted WASI reactors to Kumbuka's module contracts.
pluginbrowser
Package pluginbrowser defines the core-owned, isolated browser module surface.
Package pluginbrowser defines the core-owned, isolated browser module surface.
plugincap
Package plugincap adapts already-authorized application data to public wire values.
Package plugincap adapts already-authorized application data to public wire values.
pluginusage
Package pluginusage defines derived page metadata used to select source-aware plugin modules without making Markdown depend on persistence details.
Package pluginusage defines derived page metadata used to select source-aware plugin modules without making Markdown depend on persistence details.
pluginversion
Package pluginversion implements the strict MAJOR.MINOR.PATCH release format.
Package pluginversion implements the strict MAJOR.MINOR.PATCH release format.
renderprofile
Package renderprofile collects opt-in request and render timing diagnostics without coupling HTTP, Markdown, and WASM instrumentation to each other's logging.
Package renderprofile collects opt-in request and render timing diagnostics without coupling HTTP, Markdown, and WASM instrumentation to each other's logging.
reviewsuggestions
Package reviewsuggestions applies persisted page-review suggestions to immutable Markdown snapshots.
Package reviewsuggestions applies persisted page-review suggestions to immutable Markdown snapshots.
revision
Package revision compares persisted page revisions for display.
Package revision compares persisted page revisions for display.
searchquery
Package searchquery parses Kumbuka's user-facing page search language.
Package searchquery parses Kumbuka's user-facing page search language.
utils
Package utils provides small, dependency-free helpers shared across Kumbuka.
Package utils provides small, dependency-free helpers shared across Kumbuka.
Package plugins supplies embedded offline distribution candidates.
Package plugins supplies embedded offline distribution candidates.
scripts
check-go-docs command
Command check-go-docs verifies documentation on authored, non-test Go declarations.
Command check-go-docs verifies documentation on authored, non-test Go declarations.
generate-icons command
Command generate-icons creates Kumbuka's Lucide icon picker catalog.
Command generate-icons creates Kumbuka's Lucide icon picker catalog.
generate-plugins command
Command generate-plugins validates pinned packages and generates the offline catalog.
Command generate-plugins validates pinned packages and generates the offline catalog.
test
browser/plugins-admin-server command
A loopback-only, in-memory fixture for the plugin administration browser test.
A loopback-only, in-memory fixture for the plugin administration browser test.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL