Skip to content

feat(stacks): Add BookStack documentation wiki #628

@stefanko-ch

Description

@stefanko-ch

Stack request: BookStack — self-hosted documentation wiki

bookstackapp.com — a simple, self-hosted documentation/wiki platform organised into a Books → Chapters → Pages hierarchy, with WYSIWYG + Markdown editing, full-text search, and diagrams.net integration. MIT-licensed.

Why it fits

  • Knowledge & docs category — a more structured, documentation-oriented wiki than the existing Wiki.js, with a gentle learning curve. Good fit for course material / handbooks.
  • Has built-in local auth (username/password + optional LDAP/OIDC), so it works cleanly behind Cloudflare Access without a mandatory external identity provider — simpler than Outline.

Suggested metadata

Field Value
Category knowledge
Subdomain bookstack
Image lscr.io/linuxserver/bookstack (LinuxServer.io) — multi-arch verified (amd64 + arm64)
Port container 80 — assign next free host port per the services.yaml collision check
Public false (behind Cloudflare Access)

⚠️ Implementation considerations

  • Database: MySQL/MariaDB, not Postgres. BookStack requires a MariaDB/MySQL backend — add a dedicated bookstack-db (MariaDB) sidecar on an internal network. This is the one stack that breaks the "default to Postgres" habit; the per-stack-owns-its-DB rule still applies.
  • Pin both the BookStack image and the MariaDB image to specific versions (stateful — pages live in the DB).
  • APP_URL must be set to the public URL or BookStack's asset/link generation breaks (same class as other reverse-proxied stacks).

Checklist (per CLAUDE.md "Adding New Stacks")

  • Verify image arch (done: amd64 + arm64)
  • stacks/bookstack/docker-compose.yml (BookStack + MariaDB, internal network)
  • Register in services.yaml (pinned version)
  • Tofu: admin/db-password resources + Infisical push
  • Auto-setup hook in src/nexus_deploy/services.py if needed
  • README badge + table, stack count
  • docs/stacks/bookstack.md + docs index

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions