# Aegis Deployment Guide This guide explains how to deploy the Aegis Financial Analyst Agent using Docker and Docker Compose. ## Prerequisites - **Docker** and **Docker Compose** installed on your machine. - An `.env` file with valid API keys (see `.env.example` or your existing `.env`). ## Deployment Steps 1. **Build and Start Services** Run the following command in the project root directory: ```bash docker-compose up --build -d ``` This will: - Build the Docker image for the application. - Create a network `aegis-net`. - Start all services (Gateway, Microservices, Monitor, Frontend) in detached mode. 2. **Verify Deployment** - **Frontend**: Access the Streamlit UI at `http://localhost:8501`. - **Gateway**: `http://localhost:8000` - **Services**: - Tavily: `http://localhost:8001` - Alpha Vantage: `http://localhost:8002` - Portfolio: `http://localhost:8003` 3. **View Logs** To see logs for all services: ```bash docker-compose logs -f ``` To see logs for a specific service (e.g., frontend): ```bash docker-compose logs -f frontend ``` 4. **Stop Services** To stop and remove containers: ```bash docker-compose down ``` ## Environment Variables Ensure your `.env` file contains: - `GOOGLE_API_KEY` - `TAVILY_API_KEY` - `ALPHA_VANTAGE_API_KEY` Docker Compose automatically reads these from the `.env` file in the same directory. ## Alternative Deployment (No Docker) If you cannot run Docker, use the local deployment script: ```bash ./deploy_local.sh ``` This runs all services in the background and saves logs to a `logs/` folder. ## Troubleshooting - **"Cannot connect to the Docker daemon"**: This means Docker is not running. Open **Docker Desktop** on your Mac and wait for it to start (the whale icon in the menu bar should stop animating). - **Port Conflicts**: Ensure ports 8000-8003 and 8501 are free. - **Database Persistence**: The `portfolio.db` file is mounted as a volume, so your internal portfolio data persists across restarts.