Requirements
You'll need the following components:
A Supabase project for database and authentication
Redis database for caching and session management
Daytona sandbox for secure agent execution
Python 3.11 for the API backend
API keys for LLM providers (OpenAI or Anthropic)
(Optional but recommended) Tavily API key for enhanced search capabilities
Prerequisites
-
Supabase:
- Create a new Supabase project
- Save your project's API URL, anon key, and service role key for later use
- Install the Supabase CLI
-
Redis: Set up a Redis instance using one of these options:
- Upstash Redis (recommended for cloud deployments)
- Local installation:
- Save your Redis connection details for later use
-
Daytona:
-
LLM API Keys:
-
Search API Key (可选,但推荐):
- For enhanced search capabilities, obtain an Tavily API key
-
RapidAPI API Key (可选,但推荐):
- To enable API services like LinkedIn, and others, you'll need a RapidAPI key
- Each service requires individual activation in your RapidAPI account:
- Locate the service's
base_url
in its corresponding file (e.g.,"https://linkedin-data-scraper.p.rapidapi.com"
in backend/agent/tools/data_providers/LinkedinProvider.py) - Visit that specific API on the RapidAPI marketplace
- Subscribe to the service (many offer free tiers with limited requests)
- Once subscribed, the service will be available to your agent through the API Services tool
- Locate the service's
Installation Steps
- Clone the repository:
git clone https://github.com/kortix-ai/suna.git cd suna
- Configure backend environment:
cd backend cp .env.example .env # Create from example if available, or use the following template
Edit the .env
file and fill in your credentials:
NEXT_PUBLIC_URL="http://localhost:3000" # Supabase credentials from step 1 SUPABASE_URL=your_supabase_url SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key # Redis credentials from step 2 REDIS_HOST=your_redis_host REDIS_PORT=6379 REDIS_PASSWORD=your_redis_password REDIS_SSL=True # Set to False for local Redis without SSL # Daytona credentials from step 3 DAYTONA_API_KEY=your_daytona_api_key DAYTONA_SERVER_URL="https://app.daytona.io/api" DAYTONA_TARGET="us" # Anthropic or OpenAI: # Anthropic ANTHROPIC_API_KEY= MODEL_TO_USE="anthropic/claude-3-7-sonnet-latest" # OR OpenAI API: OPENAI_API_KEY=your_openai_api_key MODEL_TO_USE="gpt-4o" # Optional but recommended TAVILY_API_KEY=your_tavily_api_key # Optional RAPID_API_KEY=
- Set up Supabase database:
# Login to Supabase CLI supabase login # Link to your project (find your project reference in the Supabase dashboard) supabase link --project-ref your_project_reference_id # Push database migrations supabase db push
- Configure frontend environment:
cd ../frontend cp .env.example .env.local # Create from example if available, or use the following template
Edit the .env.local
file:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_BACKEND_URL="http://localhost:8000/api"
NEXT_PUBLIC_URL="http://localhost:3000"
- Install dependencies:
# Install frontend dependencies cd frontend npm install # Install backend dependencies cd ../backend pip install -r requirements.txt
-
Start the application:
In one terminal, start the frontend:
cd frontend npm run dev
In another terminal, start the backend:
cd backend python api.py
- Access Suna:
- Open your browser and navigate to
http://localhost:3000
- Sign up for an account using the Supabase authentication
- Start using your self-hosted Suna instance!
- Open your browser and navigate to