2.4 KiB
Suna Backend
Running the backend
Within the backend directory, run the following command to stop and start the backend:
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
docker compose up redis rabbitmq
Running only the API and Worker
docker compose up api worker
Development Setup
For local development, you might only need to run Redis and RabbitMQ, while working on the API locally. This is useful when:
- 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
Then you can run your API service locally with the following commands
# 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
Environment Configuration
When running services individually, make sure to:
- Check your
.env
file and adjust any necessary environment variables - Ensure Redis connection settings match your local setup (default:
localhost:6379
) - Ensure RabbitMQ connection settings match your local setup (default:
localhost:5672
) - Update any service-specific environment variables if needed
Important: Redis Host Configuration
When running the API locally with Redis in Docker, you need to set the correct Redis host in your .env
file:
- 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
Example .env
configuration for local development:
REDIS_HOST=localhost (instead of 'redis')
REDIS_PORT=6379
REDIS_PASSWORD=
RABBITMQ_HOST=localhost (instead of 'rabbitmq')
RABBITMQ_PORT=5672