The documentation module for Jiku: markdown documents with
visibility-based permissions (internal, public for external clients, restricted for admins only),
version history, relations to Jiku clients, projects, requirements and tasks, full-text search, edit locks,
real-time notifications, read-only public links and attachments.
It has no business HTTP API. It serves request/reply on Jiku's NATS bus (jiku-docs-commands and
jiku-docs-queries micro services), takes the caller's identity from the subject and publishes its events
to JetStream. The only HTTP it exposes is for operations.
| Tag | What it is |
|---|---|
X.Y.Z | A specific release |
X.Y | The latest patch of a minor version |
latest | The latest release |
dev | The current state of the dev branch; not for production |
The image is a static Go binary on distroless/static running as nonroot. jiku-docs version prints the
release it was built from.
docs auth-callout rule, a machine user jiku_docs (Access Token Type
JWT, roles internal-app and docs) and the JIKU_MODULES KV. The details are in the
installation guide.# Create the bucket without versioning and apply the lifecycle rules (once)
docker run --rm --env-file .env gravadigital/jiku-docs storage init
# Run the service (migrations run on startup)
docker run -d --name jiku-docs --env-file .env \
-v /path/to/sentinel.creds:/run/secrets/nats.creds:ro \
-e NATS_CREDS=/run/secrets/nats.creds \
-p 8080:8080 \
gravadigital/jiku-docs
Once ready, the logs show jiku-docs ready and module registered, and curl localhost:8080/readyz
answers.
Every variable is documented in
.env.dist. Required for serve:
| Variable | Purpose |
|---|---|
NATS_URL, NATS_CREDS, NATS_INSTANCE | Jiku's bus and the sentinel creds that trigger the auth-callout |
ZITADEL_PROJECT_ID, DOCS_SERVICE_USER_KEY_B64 (or DOCS_SERVICE_USER_KEY_FILE) | Identity of the jiku_docs machine user |
JIKU_API_USER_ID, JIKU_WEB_URL, JIKU_PUBLIC_URL | Integration with the Jiku api and web |
DATABASE_URL | PostgreSQL DSN |
DOCS_S3_ENDPOINT, DOCS_S3_BUCKET, DOCS_S3_ACCESS_KEY, DOCS_S3_SECRET_KEY | Content bucket |
DOCS_SECRET_KEY | 32 random bytes in base64 (openssl rand -base64 32) |
| Command | What it does |
|---|---|
serve (default) | Migrates, registers the micro services, runs the outbox, indexer and janitor, and registers the module in JIKU_MODULES |
migrate | Applies the database migrations |
reindex | Rebuilds the search index |
storage init | Creates the bucket and applies the lifecycle rules |
storage restore-from-trash | Returns a deleted object (and optionally its version) from trash/ |
history compact | Compacts the version history now (--dry-run to preview) |
module deregister | Removes the module from the registry (uninstall) |
import hedgedoc | Imports notes from a HedgeDoc database |
healthcheck | Queries /readyz (used by the image's HEALTHCHECK) |
DOCS_HTTP_ADDR): /healthz, /readyz (database and NATS) and /metrics (Prometheus).See documentation/operations.md for metrics, alerts, backups and recovering deleted versions.
Apache-2.0 © Grava Digital.
Content type
Image
Digest
sha256:e7f0ba7a0…
Size
7.3 MB
Last updated
2 days ago
docker pull gravadigital/jiku-docs