Self-Hosted Productivity Suite
Nextcloud, BookStack, AFFiNE, Outline, Stirling PDF — a full Notion+Google Docs+Acrobat replacement on your own server.
What's in this pack
This pack collects the seven self-hostable productivity apps that, run together, cover the same ground as Notion + Google Docs + Acrobat — but on hardware you control. Every entry is open source, has an active maintainer, and ships an official Docker image.
| # | App | Replaces |
|---|---|---|
| 1 | Nextcloud | Google Drive + Calendar + Contacts |
| 2 | AFFiNE | Notion (docs + whiteboard + DB) |
| 3 | Outline | Confluence / Notion wiki |
| 4 | BookStack | GitBook / structured docs |
| 5 | Stirling-PDF | Adobe Acrobat |
| 6 | Logseq | Obsidian / Roam (graph notes) |
| 7 | MarkItDown | manual file → markdown conversion |
The first three are the load-bearing apps. BookStack and Logseq are alternatives picked by team shape. Stirling-PDF and MarkItDown are utility apps every install will use eventually.
Why self-host productivity tools
The pitch isn't "save money" — most teams under fifty seats save little once they price in their own infrastructure time. The real wins are:
- Data residency. Your content never leaves the network boundary you control. Useful for regulated industries, GDPR, China-mainland deployments, or anyone whose customers ask "where does the data live."
- Vendor independence. Notion's pricing has changed three times in three years. Google Workspace prices climb every renewal. Self-hosted apps don't change pricing because there is no pricing.
- AI integration without a third-party gateway. When the doc store is on your network, your local LLM can read it. Notion API rate limits and AFFiNE's lack thereof aren't comparable.
- Customization. AFFiNE has a plugin API. Outline lets you hard-fork. Nextcloud has 200+ official apps. Notion gives you "import / export."
The pitch against self-hosting is operations cost. You will run Docker, Postgres, S3-compatible object storage, and a backup pipeline. If your team has zero ops capacity, stay on SaaS.
Install in one command
# Install the full pack (Docker Compose for all 7)
tokrepo install pack/self-hosted-productivity
# Or pick individual apps
tokrepo install nextcloud
tokrepo install affine
tokrepo install outline
The TokRepo manifest gives you a Docker Compose file with Postgres, Redis, MinIO, and reverse-proxy config wired together. You add a domain, run docker compose up -d, and you have the suite. SSL is via Caddy with automatic Let's Encrypt.
Common pitfalls
- Backup is not optional. All seven apps store state in Postgres + object storage. Both must be backed up. A nightly
pg_dumpplus rclone of the bucket is the bare minimum. Test restores quarterly. - Outline requires SSO at scale. Above 20 users, Outline's email/password mode becomes painful. Wire it to Authelia or Authentik on day one.
- AFFiNE local-first means partial sync conflicts. When two laptops edit offline, the merge can drop blocks. Keep the cloud workspace as the source of truth and treat local copies as cache.
- Stirling-PDF runs OCR locally. Scanning a 200-page PDF can saturate one CPU core for minutes. Run it on a separate container with CPU limits if you also host user-facing apps on the same host.
- Nextcloud client sync is bandwidth-heavy. Each laptop client polls every 30 seconds by default. Across a remote team this can flood a small uplink. Tune the polling interval per client.
When this pack alone isn't enough
If your team's primary need is AI access to your knowledge, this pack is the storage layer — pair it with AI Second Brain for the retrieval and graph layer on top. If your need is external content APIs, the Headless CMS for AI pack is a better fit. And if you also want to delete trackers from your browsing layer, the Privacy-First Web pack is the matching front-end stack.
Migration playbook from Notion or Confluence
The hardest part of switching is content migration, not standing up the apps. We recommend a two-week phased move. Week one, install the suite, set up Authelia or Authentik SSO, and import a single team's content as the pilot. AFFiNE accepts Notion's HTML export directly; Outline imports from Confluence and Notion via an officially maintained importer. BookStack reads markdown directories. Week two, freeze writes on the source SaaS, run the importer one last time, switch the team's DNS or shortcut bookmarks, and keep the SaaS in read-only mode for thirty days as an audit trail. Most blockers we see are not about the apps themselves but about embedded media, custom Notion databases with formula fields, and Google Docs comments. Plan time for those before you commit to the cutover date.
7 assets in this pack
Frequently asked questions
Is this stack actually free?
All seven apps are open source under permissive or copyleft licenses. The cost is hardware and ops time. A modest VPS (4 vCPU, 16GB RAM, 200GB SSD) at ~30 USD/month runs the whole suite for a 20-person team. Larger teams need separate Postgres and object storage. There are no per-seat fees, no SaaS bills, and no API quotas.
How does this compare to Notion?
Notion is one polished product; this pack is seven specialized apps. AFFiNE is the closest single replacement (docs + whiteboard + DB views) but doesn't yet match Notion's templates ecosystem. Outline beats Notion for structured wikis. Nextcloud covers Notion's file storage gap. The whole pack costs less than Notion Team for a 50-seat org if you already have a server.
Can Claude Code or Cursor read documents from this stack?
Yes. Nextcloud has a WebDAV API. AFFiNE exposes a GraphQL API. Outline has a public REST API. Pair this pack with our MCP Server Stack and the matching MCP servers expose those APIs to AI agents. The result is the agent can read, write, and search your knowledge base directly.
Difference vs Confluence + Google Workspace?
Confluence and Google Workspace are SaaS — fine if you accept third-party data residency. This pack is for teams that can't or won't accept that. Compared on features alone, Confluence has stronger structured permissions; AFFiNE has stronger live collaboration; Outline is faster than Confluence at every page load.
Operational gotcha?
Storage growth. Nextcloud's photo galleries, AFFiNE's whiteboard exports, and Stirling's OCR cache all balloon over time. Set per-user quotas in Nextcloud (default is unlimited), purge AFFiNE's /tmp weekly, and set a lifecycle policy on the MinIO bucket. Without these your 200GB disk hits 95% in 6 months.
12 packs · 80+ hand-picked assets
Browse every curated bundle on the home page
Back to all packs