Self Hosting Guide

Get the platform running in minutes with our automated setup wizard

Last updated: August 2025

What You Need First

Before we start, make sure you have these installed:

Step 1: Clone and Enter

Get the code and navigate to the project directory:

# Please refer to https://zmind.so/docs for self-hosting instructions.

Step 2: Run the Setup Wizard

Start the interactive setup wizard:

python setup.py

The wizard will ask you to choose between two setup methods:

Docker Compose (Recommended)
Automatically manages all services and dependencies. Just run and go.
Manual
Requires installing dependencies and running services manually.

Step 3: Provide Your Credentials

The wizard will walk you through configuring these services in 17 steps. Don't worry - it saves your progress!

Required Services

Supabase (Database & Auth)

Self-hosted option available. Handles user data, conversations, and agent configs.

Get it at: supabase.com

Daytona (Sandboxing)

Provides secure environments for agents to run code safely.

Get it at: daytona.io

LLM Provider (At least one)

Choose from OpenAI, Anthropic, Google Gemini, or OpenRouter.

Use Sonnet for the best results.

Search APIs

Tavily for search, Firecrawl for web scraping.

Get Tavily at: tavily.com

Get Firecrawl at: firecrawl.dev

Optional Services

Morph (AI Code Editing)

Makes code editing much better. Highly recommended but not required.

RapidAPI

Enables extra tools like LinkedIn scraping. Skip for now if you want.

Composio

Tool integrations and workflows.

Step 4: Database Setup

The wizard will offer to set up your Supabase database automatically. This requires the Supabase CLI:

If you let the wizard handle it, it will:

Important: After the migrations, you'll need to manually expose the 'basejump' schema in your Supabase dashboard:

  1. Go to Project Settings → Data API → Exposed schemas
  2. Check the 'basejump' box
  3. Save

Step 5: Start Zmind

If you chose Docker setup:

The wizard automatically starts everything for you! After setup completes:

# Check if everything is runningdocker compose ps# Follow the logs to see what's happeningdocker compose logs -f# Stop everything when you're donedocker compose down

If you chose manual setup:

You'll need to start each service in separate terminals:

Terminal 1 - Infrastructure:

docker compose up redis -d

Terminal 2 - Frontend:

cd frontend && npm run dev

Terminal 3 - Backend API:

cd backend && uv run api.py

Terminal 4 - Background Worker:

cd backend && uv run dramatiq run_agent_background

You're Done! 🎉

Once all services are running, open your browser and go to:

http://localhost:3000

You should see the Zmind dashboard where you can start chatting with Zmind or create your own agents.

Agent Examples