Wiki.js is the administrator-facing Smithflix knowledge base. It stores rendered documentation in Postgres, exposes an authenticated GraphQL API for automation, and mirrors page state into the Git-backed repo used for durable revision history.
This page documents the wikijs service and its wikijs-db dependency. The documentation model itself lives on Documentation Methodology.
wikijsghcr.io/requarks/wiki:2wikijs-dbpostgres:15-alpine/opt/stacks/server/compose.yamlserver_defaulthttp://192.168.0.113:8090https://manage.better-than.tv/wiki/http://127.0.0.1:8090/graphql/srv/docker/wikijs/data/repogit@github.com:adam6806/smithflix-wiki.gitmain/srv/docker/wikijs/data/srv/docker/wikijs/data/repo/srv/docker/wikijs/data/ssh/srv/docker/wikijs-db/data/opt/stacks/server/.env/home/adam/.codex/skills/smithflix-wiki/scripts/wikijs_api.py8090 -> 3000wiki.better-than.tvmanage.better-than.tv/wiki//opt/stacks/server/.env as WIKIJS_DB_PASSWORD/srv/docker/wikijs/data/ssh/id_ed25519X-Frame-Options: deny, so the manage gateway now strips that header on /wiki/ in order to test Wiki.js as an embedded Organizr tabmanage gateway also carries root fallbacks for /_assets/..., /graphql, and the canonical content prefixes (/documentation, /infrastructure, /docker, /services, /networking, /storage, /operations/) because the proxied page can still request Wiki.js assets, GraphQL, and internal page routes at absolute root paths instead of under /wiki/. Exact no-slash routes are also required for the section roots so the embedded wiki does not loop between slash variants./home/adam/.codex/skills/smithflix-wiki/scripts/wikijs_api.pystorage-status; Git should remain operationalstorage-action --target git --handler sync after bulk edits or troubleshootingstorage-status row; the scheduled sync-storage job updates that row on its next intervaljson-filedocker logs wikijs shows routine Git sync activity and application startup statehttp://127.0.0.1:3000/ internally and was healthy at verification timepg_isready healthcheck and must be healthy before Wiki.js starts/srv/docker/wikijs and /srv/docker/wikijs-db are inside the documented Duplicati scopeWIKIJS_DB_PASSWORD will block startupcannot pull with rebase: You have unstaged changes, inspect /srv/docker/wikijs/data/repo, commit or otherwise resolve the mirror edits, run storage-action --target git --handler sync, then wait for the next scheduled sync-storage job before trusting storage-status/wiki/data/ssh/id_ed25519; use GIT_SSH_COMMAND='ssh -i /srv/docker/wikijs/data/ssh/id_ed25519 -o IdentitiesOnly=yes -o StrictHostKeyChecking=accept-new' when checking the remote from the hostCould not read from remote repository. while the host can still reach GitHub with the deploy key, check whether the mirror repo itself carries core.sshCommand. Wiki.js background sync runs plain git inside the container and does not automatically pick the mounted deploy key unless the repo config or command environment points at /wiki/data/ssh/id_ed25519. Current live recovery on 2026-05-25 was git -C /srv/docker/wikijs/data/repo config core.sshCommand "ssh -i /wiki/data/ssh/id_ed25519 -o IdentitiesOnly=yes -o StrictHostKeyChecking=accept-new".2026-04-072026-05-25 after recovering Git storage from container-side SSH key selection drift: the host deploy key still worked, but Wiki.js plain git reads needed core.sshCommand set on the mirror repo so container sync used /wiki/data/ssh/id_ed25519.