What You’ll Need
Before we start deploying your awesome agent, make sure you have these tools ready:- 🐳 Docker & Docker Compose - For containerization and orchestration
- 🐍 Python 3.12+ - For local development and testing
- ⚡ uv package manager - Fast dependency management
- 🔑 API Keys - Your
.envfile with all required credentials
Setting Up Your Environment
Let’s get your environment configured for success!Configure Your API Keys
First, copy the example environment file:.env and add your secret API keys:
🐳 Docker Deployment Made Easy
Ready to deploy? Your agent comes with a complete Docker Compose setup that handles everything:- 🚀 Main Agent Service - Your awesome Bindu agent with health checks and monitoring
- ⚙️ Smart Environment Support - Storage, scheduler, telemetry, and more
- 🌐 Production-Ready Networking - Isolated networks and proper port mapping
Your Docker Compose Configuration
Here’s what yourdocker-compose.yml file looks like (using placeholders for your project):
🎮 Docker Commands You’ll Use
Ready to get your agent running? Here are the essential commands:🚀 Build & Start
Fire up your agent with all services:Want it running in the background? Use detached mode:
📋 View Logs
Keep an eye on what’s happening:View logs from all services:Focus on your specific service:
Access Your Services
Once deployed, access your services at:Agent API
Your Bindu agent endpoint
Jaeger UI
Distributed tracing dashboard
Phoenix UI
LLM observability dashboard
Makefile Commands
Your agent includes a Makefile with common development tasks. Usemake help to see all available commands.
Development Commands
make install
make install
Install the virtual environment and pre-commit hooks:This command:
- Creates a virtual environment using
uv - Installs all dependencies
- Sets up pre-commit hooks for code quality
make check
make check
Run all code quality checks:This command runs:
- Lock file consistency check
- Pre-commit hooks (linting, formatting)
- Static type checking with
ty - Dependency analysis with
deptry
make test
make test
Run tests with coverage:This command:
- Runs pytest with coverage reporting
- Generates XML coverage report
- Uses configuration from
pyproject.toml
make build
make build
Build wheel distribution file:This command:
- Cleans previous build artifacts
- Creates a new wheel file in
dist/ - Uses
uvas the installer
make docs
make docs
Build and serve documentation:This starts a local documentation server. Access it at
http://localhost:8000To test documentation build without serving:make clean-build
make clean-build
Clean build artifacts:Removes the
dist/ directory and all build artifacts.make help
make help
Display all available commands:Shows a formatted list of all Makefile targets with descriptions.
Dockerfile Overview
The Dockerfile uses a modern multi-stage approach optimized for Python 3.12 anduv:
Key Features
- Multi-Stage Build - Separates build and runtime environments for optimal size and security
- Bindu Runtime Base - Uses
raahulrahl/bindu-runtime-base:latestfor production-ready runtime - UV Package Manager - Fast dependency resolution and installation with bytecode compilation
- Frozen Dependencies - Ensures reproducible builds with
--frozenflag - OCI Labels - Complete container metadata for better container management
- Optimized Layers - Dependencies installed before code copy for faster rebuilds
- Production Ready - Health checks, proper networking, and environment configuration
Deployment Workflows
Local Development
Docker Development
Production Deployment
Monitoring and Observability
Jaeger Tracing
Access Jaeger UI athttp://localhost:16686 to:
- View distributed traces across your agent
- Analyze request latency and performance
- Debug issues with detailed span information
- Monitor service dependencies
Phoenix LLM Observability
Access Phoenix UI athttp://localhost:6006 to:
- Track LLM calls and token usage
- Analyze prompt and response quality
- Monitor model performance metrics
- Debug LLM-specific issues
Phoenix uses the OpenInference standard, which is compatible with many observability providers.
Troubleshooting
Common Issues
Port Already in Use
Port Already in Use
If you see port conflict errors:
Environment Variables Not Loading
Environment Variables Not Loading
Ensure your
.env file exists and is in the project root:Build Failures
Build Failures
Clear Docker cache and rebuild:
Agent Not Responding
Agent Not Responding
Check agent logs for errors:Verify the agent is healthy:
Next Steps
Configure Agent
Customize your agent’s behavior and capabilities
Learn Observability
Deep dive into monitoring and debugging
Join Community
Connect with other agent developers
Get Help
Find support and resources