微信扫码
添加专属顾问
我要投稿
开源版Manus Suna本地部署指南,手把手教你搭建强大AI代理平台。 核心内容: 1. Suna核心组件配置详解(Supabase、Redis等) 2. 分步骤安装流程与常见问题解决 3. 可选集成项与高级功能配置指南
部署流程包含:
git clone https://github.com/kortix-ai/suna.gitcd sunaconda create --name suna python==3.12python setup.py # 运行设置向导
Step 1/18: Choose Setup Method==================================================ℹ️ You can start Suna using either Docker Compose or by manually starting the services.How would you like to set up Suna?[1] Docker Compose (recommended, starts all services automatically)[2] Manual (requires installing dependencies and running services manually)这里我输入2 选择了手动Enter your choice (1 or 2): 2
Step 2/18: Checking Requirements
==================================================
✅ git is installed.
✅ uv is installed.
✅ node is installed.
✅ npm is installed.
✅ docker is installed.
ℹ️ Checking if Docker is running...
✅ Docker is running.
ℹ️ Verifying project structure...
✅ Suna repository detected.
Step 3/18: Collecting Supabase Information
==================================================
ℹ️ You'll need a Supabase project. Visit https://supabase.com/dashboard/projects to create one.
ℹ️ In your project settings, go to 'API' to find the required information.
Press Enter to continue once you have your project details...
Enter your Supabase Project URL (e.g., https://xyz.supabase.co):
Enter your Supabase anon key: eyJhbGciOiJIUzI1NiIsMqivvR-6o
Enter your Supabase service role key: eyJhbG
✅ Supabase information saved.:
image: kortix/suna:0.1.2,当你运行的时候需要看下终端提示的是哪个版本 例如 image: kortix/suna:0.1.3 或者 image: kortix/suna:0.1.4等
Step 4/18: Collecting Daytona Information
==================================================
ℹ️ Suna uses Daytona for sandboxing. Visit https://app.daytona.io/ to create an account.
ℹ️ Then, generate an API key from the 'Keys' menu.
Press Enter to continue once you have your API key...
Enter your Daytona API key:
✅ Daytona information saved.
⚠️ IMPORTANT: You must create a Suna snapshot in Daytona for it to work properly.
ℹ️ Visit https://app.daytona.io/dashboard/snapshots to create a snapshot.
ℹ️ Create a snapshot with these exact settings:
ℹ️ - Name: kortix/suna:0.1.2
ℹ️ - Snapshot name: kortix/suna:0.1.2
ℹ️ - Entrypoint: /usr/bin/supervisord -n -c /etc/supervisor/conf.d/supervisord.conf
Press Enter to continue once you have created the snapshot..
Step 5/18: Collecting LLM API Keys
==================================================
ℹ️ Suna requires at least one LLM provider. Supported: OpenAI, Anthropic, Google Gemini, OpenRouter.
Select LLM providers to configure (e.g., 1,3):
[1] OpenAI
[2] Anthropic
[3] Google Gemini
[4] OpenRouter
Select providers: 4
Enter your Openrouter API key: sk-
✅ LLM keys saved. Default model: openrouter/google/gemini-2.5-pro
Step 6/18: Configure AI-Powered Code Editing (Optional)
==================================================
ℹ️ Suna uses Morph for fast, intelligent code editing.
ℹ️ This is optional but highly recommended for the best experience.
ℹ️ An OpenRouter API key is already configured. It can be used as a fallback for code editing if you don't provide a Morpph key.
Do you want to add a Morph API key now? (y/n): y
ℹ️ Great! Please get your API key from: https://morphllm.com/api-keys
Enter your Morph API key (or press Enter to skip): sk-cunVSOB
登录https://tavily.com
Step 7/18: Collecting Search and Scraping API Keys
==================================================
ℹ️ Suna uses Tavily for search and Firecrawl for web scraping.
ℹ️ Get a Tavily key at https://tavily.com and a Firecrawl key at https://firecrawl.dev
Press Enter to continue once you have your keys...
Enter your Tavily API key: tvly-HbTgMN
Enter your Firecrawl API key: fc-943ce5b
Are you self-hosting Firecrawl? (y/N): n
✅ Search and scraping keys saved.
Step 8/18: Collecting RapidAPI Key (Optional)
==================================================
ℹ️ A RapidAPI key enables extra tools like LinkedIn scraping.
ℹ️ Get a key at https://rapidapi.com/. You can skip this and add it later.
Enter your RapidAPI key (or press Enter to skip): ••••
✅ RapidAPI key saved.
Step 9/18: Collecting Smithery API Key (Optional)
==================================================
ℹ️ A Smithery API key is only required for custom Agents and workflows.
ℹ️ Get a key at https://smithery.ai/. You can skip this and add it later.
Enter your Smithery API key (or press Enter to skip):
ℹ️ Skipping Smithery API key.
Step 10/18: Collecting QStash Configuration
==================================================
ℹ️ QStash is required for Suna's background job processing and scheduling.
ℹ️ QStash enables workflows, automated tasks, and webhook handling.
ℹ️ Get your credentials at https://console.upstash.com/qstash
Press Enter to continue once you have your QStash credentials...
Enter your QStash token: eyJVc2VySUQiM5LTQ2YjY5ODNlZDMiLCJQYXNzd29yZCI6ImNkYWNlN2JiM2MwMDRiZTM5ZTVjMTcyNDc1NWJmMTRjIn0=
Enter your QStash current signing key: sig_gaWf9H
Enter your QStash next signing key: siMfZ1
✅ QStash configuration saved.
Step 11/18: Collecting MCP Configuration
==================================================
ℹ️ Generating a secure encryption key for MCP credentials...
✅ MCP encryption key generated.
✅ MCP configuration saved.
Step 12/18: Collecting Pipedream Configuration (Optional)
==================================================
ℹ️ Pipedream enables workflow automation and MCP integrations.
ℹ️ Create a Pipedream Connect project at https://pipedream.com/connect to get your credentials.
ℹ️ You can skip this step and configure Pipedream later.
Do you want to configure Pipedream integration? (y/N): y
Enter your Pipedream Project ID (or press Enter to skip): proj_ELs
Enter your Pipedream Client ID: OI42XYMJC07GO7y
Enter your Pipedream Client Secret: 0ER2bmZ
Enter your Pipedream Environment (development/production): [development]:
✅ Pipedream configuration saved.
Step 13/18: Collecting Slack Configuration (Optional)
==================================================
ℹ️ Slack integration enables communication and notifications.
ℹ️ Create a Slack app at https://api.slack.com/apps to get your credentials.
ℹ️ You can skip this step and configure Slack later.
Do you want to configure Slack integration? (y/N): y
Enter your Slack Client ID (or press Enter to skip): 92910
Enter your Slack Client Secret: 8d39627185aa608bf9
Enter your Slack Redirect URI: [http://localhost:3000/api/integrations/slack/callback]:
✅ Slack configuration saved.
Step 14/18: Collecting Webhook Configuration
==================================================
ℹ️ Webhook base URL is required for workflows to receive callbacks.
ℹ️ This must be a publicly accessible URL where Suna can receive webhooks.
ℹ️ For local development, you can use services like ngrok or localtunnel.
Enter your webhook base URL (e.g., https://yourdomain.com): https://e5c1ddf177a9.ngrok-free.app
✅ Webhook configuration saved.
Step 16/18: Setting up Supabase Database
==================================================
ℹ️ This step will link your project to Supabase and push database migrations.
ℹ️ You can skip this if you've already set up your database or prefer to do it manually.
Do you want to skip the database setup? (Y/n): y
# 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
Step 17/18: Installing Dependencies
==================================================
ℹ️ Installing frontend dependencies with npm...
added 954 packages, and audited 955 packages in 48s
283 packages are looking for funding
run `npm fund` for details
1 moderate severity vulnerability
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
✅ Frontend dependencies installed.
ℹ️ Installing backend dependencies with uv...
ℹ️ Creating virtual environment...
Using CPython 3.12.10
Creating virtual environment at: .venv
Activate with: .venv\Scripts\activate
✅ Virtual environment created.
Resolved 154 packages in 3ms
░░░░░░░░░░░░░░░░░░░░ [0/151] Installing wheels...
warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
If the cache and target directories are on different filesystems, hardlinking may not be supported.
If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Installed 151 packages in 7.57s
+ aioboto3==14.3.0
+ aiobotocore==2.22.0
+ aiofiles==24.1.0
+ aiohappyeyeballs==2.6.1
+ aiohttp==3.12.0
+ aiohttp-retry==2.9.1
+ aioitertools==0.12.0
+ aiosignal==1.3.2
+ altair==4.2.2
+ annotated-types==0.7.0
+ anyio==4.9.0
+ apscheduler==3.11.0
+ asyncio==3.4.3
+ attrs==25.3.0
+ automat==25.4.16
+ backoff==2.2.1
+ boto3==1.37.3
+ botocore==1.37.3
+ certifi==2024.2.2
+ cffi==1.17.1
+ chardet==5.2.0
+ charset-normalizer==3.4.2
+ click==8.1.7
+ colorama==0.4.6
+ constantly==23.10.4
+ croniter==6.0.0
+ cryptography==45.0.4
+ daytona-api-client==0.21.0
+ daytona-api-client-async==0.21.0
+ daytona-sdk==0.21.0
+ deprecated==1.2.18
+ deprecation==2.1.0
+ distro==1.9.0
+ dnspython==2.7.0
+ dramatiq==1.18.0
+ e2b==1.5.1
+ e2b-code-interpreter==1.2.0
+ email-validator==2.0.0
+ entrypoints==0.4
+ environs==9.5.0
+ et-xmlfile==2.0.0
+ exa-py==1.9.1
+ fastapi==0.115.12
+ filelock==3.18.0
+ frozenlist==1.7.0
+ fsspec==2025.5.1
+ gotrue==2.12.3
+ gunicorn==23.0.0
+ h11==0.16.0
+ h2==4.2.0
+ hpack==4.1.0
+ httpcore==1.0.9
+ httpx==0.28.0
+ httpx-sse==0.4.0
+ huggingface-hub==0.33.0
+ hyperframe==6.1.0
+ hyperlink==21.0.0
+ idna==3.10
+ importlib-metadata==8.7.0
+ incremental==24.7.2
+ iniconfig==2.1.0
+ jinja2==3.1.6
+ jiter==0.10.0
+ jmespath==1.0.1
+ jsonschema==4.24.0
+ jsonschema-specifications==2025.4.1
+ langfuse==2.60.5
+ litellm==1.72.2
+ lxml==6.0.0
+ mailtrap==2.0.1
+ markupsafe==3.0.2
+ marshmallow==3.26.1
+ mcp==1.9.4
+ multidict==6.4.4
+ nest-asyncio==1.6.0
+ nodeenv==1.9.1
+ numpy==2.3.0
+ openai==1.90.0
+ openpyxl==3.1.2
+ packaging==24.1
+ pandas==2.3.0
+ pika==1.3.2
+ pillow==11.3.0
+ pluggy==1.6.0
+ postgrest==1.1.1
+ prisma==0.15.0
+ prometheus-client==0.21.1
+ prompt-toolkit==3.0.36
+ propcache==0.3.2
+ protobuf==5.29.5
+ pycparser==2.22
+ pycryptodomex==3.23.0
+ pydantic==2.11.7
+ pydantic-core==2.33.2
+ pydantic-settings==2.9.1
+ pyjwt==2.10.1
+ pypdf2==3.0.1
+ pytesseract==0.3.13
+ pytest==8.3.3
+ pytest-asyncio==0.24.0
+ pytest-mock==3.14.1
+ python-dateutil==2.9.0.post0
+ python-docx==1.1.0
+ python-dotenv==1.0.1
+ python-multipart==0.0.20
+ python-ripgrep==0.0.6
+ pytz==2025.2
+ pyyaml==6.0.1
+ qstash==3.0.0
+ questionary==2.0.1
+ realtime==2.6.0
+ redis==5.2.1
+ referencing==0.36.2
+ regex==2024.11.6
+ requests==2.32.3
+ rpds-py==0.25.1
+ s3transfer==0.11.3
+ sentry-sdk==2.29.1
+ setuptools==75.3.0
+ six==1.17.0
+ sniffio==1.3.1
+ sse-starlette==2.3.6
+ starlette==0.46.2
+ storage3==0.12.0
+ strenum==0.4.15
+ stripe==12.0.1
+ structlog==25.4.0
+ supabase==2.17.0
+ supafunc==0.10.1
+ tavily-python==0.5.4
+ tiktoken==0.9.0
+ tokenizers==0.21.1
+ toml==0.10.2
+ tomlkit==0.13.3
+ toolz==1.0.0
+ tqdm==4.67.1
+ twisted==25.5.0
+ typing-extensions==4.14.0
+ typing-inspection==0.4.1
+ tzdata==2025.2
+ tzlocal==5.3.1
+ upstash-redis==1.3.0
+ urllib3==2.4.0
+ uvicorn==0.27.1
+ vncdotool==1.2.0
+ wcwidth==0.2.13
+ websockets==14.2
+ wrapt==1.17.2
+ yarl==1.20.1
+ zipp==3.23.0
+ zope-interface==7.2
✅ Backend dependencies and package installed.
Step 18/18: Starting Suna
==================================================
ℹ️ All configurations are complete. Manual start is required.
✨ Suna Setup Complete! ✨
ℹ️ Suna is configured to use openrouter/google/gemini-2.5-pro as the default LLM.
ℹ️ Delete the .setup_progress file to reset the setup.
ℹ️ To start Suna, you need to run these commands in separate terminals:
1. Start Infrastructure (in project root):
docker compose up redis rabbitmq -d
2. Start Frontend (in a new terminal):
cd frontend && npm run dev
3. Start Backend (in a new terminal):
cd backend && uv run api.py
4. Start Background Worker (in a new terminal):
cd backend && uv run dramatiq run_agent_background
Once all services are running, access Suna at: http://localhost:3000
先安装scoop
PS C:\Users\Administrator> Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -ForcePS C:\Users\Administrator> irm scoop.201704.xyz -outfile 'install.ps1'PS C:\Users\Administrator> .\install.ps1 -ScoopDir 'E:\Scoop' -ScoopGlobalDir 'E:\GlobalScoopApps' -RunAsAdmin
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-09-20
搭建你的私有AI助手:Open WebUI完全部署指南
2025-09-19
Google 推出 AI 支付协议,支持信用卡与稳定币
2025-09-19
Dify 与 RAGFlow 的全球化与商业化之路
2025-09-19
别再把RAG当记忆:这5个开源引擎让AI真正会记住
2025-09-19
硅基流动上线阿里通义千问 Qwen-Image-Edit
2025-09-18
API协议全景图:从REST到MCP的选型指南
2025-09-18
开源Graph Builder:将文档转化为知识图谱
2025-09-18
Parlant:为企业级应用而生的开源LLM智能体框架,打造“AI员工监工”,让LLM可解释、可审计
2025-07-23
2025-08-20
2025-09-07
2025-07-23
2025-08-05
2025-07-14
2025-08-20
2025-07-29
2025-07-12
2025-07-31
2025-09-17
2025-09-09
2025-09-08
2025-09-07
2025-09-01
2025-08-16
2025-08-13
2025-08-11