Run Nibleaf on your own infrastructure
One docker compose brings up the whole stack — app, API, worker, database, cache, and object storage. Free forever under AGPL-3.0. Your content and your readers' data never leave your servers.
From clone to live in four commands
Copy each step. The compose file ships PostgreSQL, cache, and storage — batteries included.
- 1
Clone the repository
Grab the open-source stack from GitHub.
- 2
Configure your environment
Set your domain and secrets — the example file documents every variable.
- 3
Bring up the stack
One command starts every service and runs database migrations automatically.
- 4
Create your account
Open the app and sign up — no demo credentials in production.
Production tip: set APP_URL to your domain and configure an email provider (or disable email verification) before inviting your team — every variable is documented in .env.example.
What you need
A single host with Docker. Nibleaf ships everything else.
Docker & Compose
Any Linux host, VPS, or homelab that runs Docker Compose. 2 GB RAM is plenty to start.
PostgreSQL
Bundled by default, or bring your own managed Postgres.
Redis-compatible cache
Powers the publish queue and background jobs. Bundled.
S3-compatible storage
For images and assets — AWS S3, Cloudflare R2, Backblaze B2, or the bundled storage service.
What docker compose actually starts
Six services, each replaceable with your own managed equivalent when you outgrow the bundled ones.
Dashboard, editor, and published sites (SSR)
REST API, auth, and publishing pipeline
Background jobs: publishes, search indexing, domains
Your content, users, and analytics
Queues and hot data (Redis-compatible)
Images and assets (S3-compatible)
Everything included, nothing locked away
The self-hosted release is the same code that runs Nibleaf Cloud — not a community edition with the good parts held back. When you outgrow a single box, point it at managed Postgres and object storage and keep going.
Data ownership, literally. Content is plain Markdown in your database, assets sit in your bucket, analytics are first-party. Leaving Nibleaf means copying your own files.
- Unlimited sites, pages, and team members — no feature gates
- Built-in search, analytics, and custom domains
- Automatic database migrations on every release
- Bilingual (English + Arabic) authoring with full RTL
- Prebuilt images on GHCR — no build step required
- Your data never leaves your servers
Deploy your way
Docker Compose
The reference setup — clone the repo, copy the compose file, and go.
Read the setup guideCoolify
One-click self-hosting with a ready-made compose config that pulls the prebuilt image.
Get the Coolify configYour own orchestrator
Plain containers for Kubernetes, Nomad, or bare metal — no vendor glue.
Browse the imagesSelf-hosting questions
What does self-hosting Nibleaf cost?+
Nothing. The platform is open source under AGPL-3.0 and free forever — the only costs are your own servers. There are no feature gates and no paid tier to unlock.
What are the minimum server requirements?+
Any Linux host that runs Docker Compose. A small VPS with 2 GB of RAM comfortably runs the whole stack for a team; PostgreSQL, the cache, and object storage are bundled.
How do upgrades work?+
Pull the new image and restart — database migrations run automatically on every release. Prebuilt images are published to GHCR.
Can I use my own database and object storage?+
Yes. Point the environment at a managed PostgreSQL and any S3-compatible store (AWS S3, Cloudflare R2, Backblaze B2) instead of the bundled services.
Is the self-hosted version feature-complete?+
Yes — it is the same code that runs Nibleaf Cloud: editor, versioned publishing, search, analytics, custom domains, and bilingual Arabic/English support, with nothing held back.
Not ready to run servers? Nibleaf Cloud is the same platform, hosted and free during beta — and your content stays portable Markdown either way.
Try Cloud freeReady to run your own docs platform?
Clone the repo and be live in minutes — or start on the free cloud beta first.