#!/bin/bash set -e GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' INSTALL_DIR="$(pwd)" echo -e "${GREEN}🧠 Agentic AI Hub Setup${NC}" echo "=======================" # Detect Proxmox LXC if [ -f /proc/1/environ ] && grep -q "container=lxc" /proc/1/environ 2>/dev/null; then echo -e "${YELLOW}✓ LXC container detected${NC}" if ! grep -q "lxc.cgroup.relative" /etc/pve/lxc/*.conf 2>/dev/null; then echo -e "${YELLOW}⚠️ Tip: For LXC with Docker, add to /etc/pve/lxc/XXX.conf:${NC}" echo " lxc.cgroup.relative = 0" echo " lxc.apparmor.profile = unconfined" echo " lxc.cgroup.devices.allow = a" fi fi # Check/install Docker if ! command -v docker &> /dev/null; then echo -e "${YELLOW}Installing Docker...${NC}" curl -fsSL https://get.docker.com | sh usermod -aG docker $USER || true systemctl enable docker systemctl start docker fi if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then echo -e "${YELLOW}Installing Docker Compose...${NC}" apt-get update && apt-get install -y docker-compose-plugin fi # Install Node.js for MCP if ! command -v node &> /dev/null || [ "$(node -v | cut -d'v' -f2 | cut -d'.' -f1)" != "20" ]; then echo -e "${YELLOW}Installing Node.js 20...${NC}" curl -fsSL https://deb.nodesource.com/setup_20.x | bash - apt-get install -y nodejs fi # Install uv for Python tools if ! command -v uv &> /dev/null; then pip install uv || pip3 install uv fi # Create directories echo -e "${BLUE}Creating directories...${NC}" mkdir -p {data/{redis,chroma,agent/{sessions,code-server,open-webui},neo4j},workspace,logs} mkdir -p services/{agent-core,mcpo} # Set permissions chown -R 1000:1000 workspace data || true chmod +x *.sh scripts/*.sh 2>/dev/null || true # Create .env if not exists if [ ! -f .env ]; then echo -e "${YELLOW}Creating .env file...${NC}" cp .env.example .env # Generate random keys sed -i "s/MASTER_KEY=.*/MASTER_KEY=sk-agent-$(openssl rand -hex 8)/" .env sed -i "s/WEBUI_SECRET_KEY=.*/WEBUI_SECRET_KEY=$(openssl rand -hex 32)/" .env echo -e "${GREEN}✓ .env created. Edit it to add your API keys.${NC}" fi # Create workspace gitkeep touch workspace/.gitkeep echo "" echo -e "${GREEN}✅ Setup complete!${NC}" echo "" echo "Next steps:" echo "1. Edit .env file: nano .env" echo "2. Add your API keys (Groq, Mistral, etc.)" echo "3. Start services: ./start.sh" echo "" echo "Documentation:" echo " - Setup: docs/SETUP.md" echo " - API: docs/API.md" echo " - Providers: docs/PROVIDERS.md"