Self-host ɳChat in 5 minutes
The ɳChat client is MIT. The ɳSelf CLI manages your backend stack. Follow these steps and you have a full production-grade chat server on your own infrastructure.
Prerequisites
- Docker 24+ and Docker Compose v2
- A Linux VPS or local machine with 1 GB RAM (2 GB recommended for video)
- A domain with DNS you control (for TLS and LiveKit)
- The ɳSelf CLI (step 1 below)
Install the ɳSelf CLI
The ɳSelf CLI manages your backend stack. Install it via Homebrew (macOS / Linux) or download the binary directly.
Homebrew
brew tap nself-org/nself
brew install nselfOne-liner (Linux)
curl -fsSL https://install.nself.org | shVerify: nself --version should output v1.1.0 or later.
Clone the ɳChat repo
ɳChat is an open-source reference app. Clone it and navigate into the backend project.
git clone https://github.com/nself-org/nchat
cd nchat/.backendThe .backend/ directory is an ɳSelf project pre-configured for ɳChat.
Set your ɳChat Bundle key
The ɳChat Bundle ($0.99/mo) enables LiveKit video, recording, bots, and moderation. Skip this step if you only need the free-tier features.
nself license set nself_pro_YOUR_KEY_HEREDon't have a key? Get the ɳChat Bundle or try the live demo first.
Install the ɳChat plugins
Install the paid plugins your key enables. The nself plugin install command validates your license key server-side and downloads the plugin binaries.
# Full bundle, all 8 paid plugins
nself plugin install chat livekit recording moderation bots realtime auth support
# Or just the basics, free tier
nself plugin install realtimeBuild and start
nself build generates a docker-compose.yml from your plugin config and env vars. nself start brings up the full stack.
nself build
nself startOn first boot, ɳSelf runs migrations, seeds the database, and starts Postgres, Hasura, Auth, and Nginx automatically.
Open the ɳChat client
Download the desktop app or open the web client. Point it at your server.
Desktop app
Download for macOS, Windows, Linux and enter your server URL on first launch.
Web client
The Flutter web build is served at https://your-domain.com/app by Nginx automatically.
You're running ɳChat
Invite your team, create channels, and start messaging. All data stays on your server.