suna/backend/README.md

83 lines
2.4 KiB
Markdown
Raw Normal View History

2025-04-25 05:15:40 +08:00
# Suna Backend
## Running the backend
Within the backend directory, run the following command to stop and start the backend:
2025-04-25 05:15:40 +08:00
```bash
docker compose down && docker compose up --build
```
## Running Individual Services
You can run individual services from the docker-compose file. This is particularly useful during development:
### Running only Redis and RabbitMQ
2025-04-25 05:15:40 +08:00
```bash
docker compose up redis rabbitmq
2025-04-25 05:15:40 +08:00
```
### Running only the API and Worker
2025-04-25 05:15:40 +08:00
```bash
docker compose up api worker
2025-04-25 05:15:40 +08:00
```
## Development Setup
For local development, you might only need to run Redis and RabbitMQ, while working on the API locally. This is useful when:
2025-04-25 05:15:40 +08:00
- You're making changes to the API code and want to test them directly
- You want to avoid rebuilding the API container on every change
- You're running the API service directly on your machine
To run just Redis and RabbitMQ for development:```bash
docker compose up redis rabbitmq
2025-04-25 05:15:40 +08:00
Then you can run your API service locally with the following commands
```sh
# On one terminal
cd backend
poetry run python3.11 api.py
# On another terminal
cd frontend
poetry run python3.11 -m dramatiq run_agent_background
```
2025-04-25 05:15:40 +08:00
### Environment Configuration
2025-04-25 05:15:40 +08:00
When running services individually, make sure to:
2025-04-25 05:15:40 +08:00
1. Check your `.env` file and adjust any necessary environment variables
2. Ensure Redis connection settings match your local setup (default: `localhost:6379`)
3. Ensure RabbitMQ connection settings match your local setup (default: `localhost:5672`)
4. Update any service-specific environment variables if needed
2025-04-25 05:15:40 +08:00
### Important: Redis Host Configuration
2025-04-25 05:15:40 +08:00
When running the API locally with Redis in Docker, you need to set the correct Redis host in your `.env` file:
2025-04-25 05:15:40 +08:00
- For Docker-to-Docker communication (when running both services in Docker): use `REDIS_HOST=redis`
- For local-to-Docker communication (when running API locally): use `REDIS_HOST=localhost`
### Important: RabbitMQ Host Configuration
When running the API locally with Redis in Docker, you need to set the correct RabbitMQ host in your `.env` file:
- For Docker-to-Docker communication (when running both services in Docker): use `RABBITMQ_HOST=rabbitmq`
- For local-to-Docker communication (when running API locally): use `RABBITMQ_HOST=localhost`
2025-04-25 05:15:40 +08:00
Example `.env` configuration for local development:
```sh
2025-04-25 05:15:40 +08:00
REDIS_HOST=localhost (instead of 'redis')
REDIS_PORT=6379
REDIS_PASSWORD=
RABBITMQ_HOST=localhost (instead of 'rabbitmq')
RABBITMQ_PORT=5672
2025-04-25 05:15:40 +08:00
```