Kubernetes (Helm)
A Helm chart runs everything and exposes only the wiki through your ingress. The engine stays internal.
Onboarding
Letwrites runs on your own infrastructure. The fastest way in: copy the prompt below, paste it to your AI coding agent, and it handles the deploy, your admin account, and moving your Confluence content over. Prefer to do it by hand? The same steps are right below.
Set up Letwrites for me. It is an open source, self hosted wiki that replaces Confluence. 1. Clone the repo: https://github.com/Lynne-ang/letwrites 2. Ask me where to run it (a Linux server with Docker, or my Kubernetes cluster) and ask for my domain, for example docs.mycompany.com. 3. Deploy it there with HTTPS: Docker → use wiki/deploy: copy .env.example to .env, set my domain, run ./deploy.sh K8s → install the Helm chart at wiki/deploy/helm/letwrites with my domain and my ingress class. 4. Create my admin account with the email and password I give you, and confirm public sign up is turned off. 5. Help me export my Confluence space, then run the migration image ghcr.io/lynne-ang/letwrites-migrate to import it. Show me the integrity report so I can confirm every page and image came across. Check in with me at each step and wait for my answer when you need a decision.
Works with Claude Code, Cursor, or any agent that can run shell commands. It will ask you for your domain and the admin login you want, so nothing is preset for you.
Letwrites is a wiki, a database, and the access engine, fronted by your own HTTPS. It keeps state, so pick the home that fits how you operate. Your data never leaves it.
One command brings up the whole stack and fetches a real certificate. Best for a single box.
A Helm chart runs everything and exposes only the wiki through your ingress. The engine stays internal.
Prebuilt images, no build step. Mirror them into a private registry for an air-gapped install.
your-domain.com, use your real one, for example docs.mycompany.com. Serverless platforms like Cloud Run are not a fit for the wiki because it keeps state on disk.There is no public sign up. The first account is the administrator, and you set it. From there your admin brings the team in and decides who sees what.
On first launch your setup hands you a one time login. Open the wiki, sign in, and set your own email and password right away. That account is now your admin.
Public registration stays off, so nobody can sign themselves up. Your admin invites people and gives each one a role. Add email settings if you want the invites to go out by mail.
The roles you set here are exactly what the access engine enforces later, so an AI agent only ever returns what the person asking is allowed to see.
Three ways out of Confluence. Pick by who is running it and whether you have admin. Every run ends with a report that checks your source against what landed, so loss is never a surprise.
Export the space to a zip, point Letwrites at it. The page tree and every attachment come across at once.
Anyone can export a page to Word. Images travel inside the file and Letwrites pulls them back out. One page per file.
Approve a Confluence app a single time, then Letwrites pulls text, structure, and images on its own.
wiki/deploy/DEPLOY.md.The wiki is unmodified BookStack, so its own official docs are the source of truth for login and hardening. Hand the prompt below to your agent: it reads those docs and applies them, with the Letwrites-specific gotchas already baked in so you skip the traps that bite first-time installs.
Harden my Letwrites for production and connect our SSO. It is self hosted BookStack, so use BookStack's own official docs, plus the Letwrites notes below. 1. Read these official BookStack docs and apply them to my deploy: Requirements + install https://www.bookstackapp.com/docs/admin/installation/ Security hardening https://www.bookstackapp.com/docs/admin/security/ LDAP / Active Directory https://www.bookstackapp.com/docs/admin/ldap-auth/ SAML 2.0 (Okta, Azure) https://www.bookstackapp.com/docs/admin/saml2-auth/ 2. Put SSO and mail settings in wiki/deploy/bookstack.env (NOT .env), then run: docker compose up -d bookstack. The file wiki/deploy/bookstack.env.example lists every key with comments. 3. Apply these Letwrites specifics, they are what trip people up: - Google Secure LDAP and most modern LDAPS are v3 only: set LDAP_VERSION=3, or the bind fails with "ldap_bind(): Protocol error". - With a client cert: BookStack runs as uid 1000 (PUID). The cert folder and files under data/config/ldap-tls MUST be owned by and readable by uid 1000, or login fails with "path could not be resolved". chown -R 1000:1000 them. - Keep REGISTRATION_ENABLED=false (no public signup); invite users as admin. - HTTPS is automatic via Caddy once DNS points at the box and 80/443 are open. 4. Verify: I can sign in through SSO, and curl https://MY_DOMAIN/letwrites/health returns {"ok":true}. Then confirm a nightly backup is scheduled (see wiki/deploy/BACKUP.md). Check in with me at each step and wait for my answer when you need a decision.
The links go to BookStack's own documentation, so the steps stay correct as BookStack evolves. Prefer to read them yourself? Open the four docs directly: install, security, LDAP, SAML 2.0.