Skip to content
All docs

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 -d

What 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 work
  • VITE_BILLING_URL — Link to a billing wrapper for hosted plan management
  • PORT — 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