Self-Hosting Guide
OpenNapse is a self-hosted productivity app with Docker support for founders and small teams that want full control over data, deployment, and AI provider configuration.
Requirements
- Docker Engine 24+ and Docker Compose v2
- A domain name with DNS pointing to your server (for HTTPS)
- (Optional) A Supabase project for cloud sync and auth
Quick start with Docker Compose
git clone https://github.com/Xelson431/OpenNapse.git cd OpenNapse cp .env.example .env # Edit .env with your settings docker compose up -dWhat you deploy
You deploy the same OpenNapse app used for local-first workflows, but pointed at your own infrastructure. The browser UI, project structure, and idea-to-project workflow stay the same across local, self-hosted, and staged cloud modes.
Environment variables
Key configuration options in your .env file:
VITE_SUPABASE_URL/VITE_SUPABASE_ANON_KEY— Enable staged cloud auth and Supabase-backed storage workVITE_BILLING_URL— Link to a billing wrapper for hosted plan managementPORT— The port OpenNapse listens on (default: 3000)
Production deployment
For production, set up a reverse proxy (nginx, Caddy, or Traefik) with TLS termination. Point your domain to the server and ensure VITE_SUPABASE_URL points to a properly configured Supabase instance with Row-Level Security enabled.
Regular backups of your Supabase database and any volume-mounted data are recommended. OpenNapse uses a migration system that runs on startup.
Troubleshooting FAQ
- App not reachable? Check your container port mapping and reverse proxy configuration.
- Supabase auth failing? Verify your URL, anon key, redirect settings, and RLS policies.
- Need local-only mode? Remove Supabase configuration and OpenNapse will keep everything in browser storage.
Updating
git pull docker compose pull docker compose up -d