jarvis-assist/Claude outputs/setup-jarvis-complete.sh

127 lines
3.9 KiB
Bash

#!/bin/bash
set -e
echo "🤖 ============ JARVIS CORE SETUP ============"
echo ""
# ============ COLORS ============
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m'
# ============ CONFIGURATION ============
JARVIS_HOME="/home/jarvis-core/jarvis"
DOMAIN="${1:-jarvis.local}"
echo -e "${BLUE}📍 Setup Directory: $JARVIS_HOME${NC}"
echo -e "${BLUE}📍 Domain: $DOMAIN${NC}"
echo ""
# ============ 1. SYSTEM UPDATE ============
echo -e "${YELLOW}[1/7] System Update...${NC}"
sudo apt-get update -qq
sudo apt-get upgrade -y -qq
sudo apt-get install -y -qq \
curl \
wget \
git \
htop \
net-tools \
openssl > /dev/null
echo -e "${GREEN}✅ System updated${NC}"
# ============ 2. DOCKER ============
echo -e "${YELLOW}[2/7] Installing Docker...${NC}"
if ! command -v docker &> /dev/null; then
curl -fsSL https://get.docker.com -o get-docker.sh
sudo bash get-docker.sh > /dev/null 2>&1
rm get-docker.sh
sudo usermod -aG docker jarvis-core
echo -e "${GREEN}✅ Docker installed${NC}"
else
echo -e "${GREEN}✅ Docker already installed${NC}"
fi
# ============ 3. DOCKER COMPOSE ============
echo -e "${YELLOW}[3/7] Installing Docker Compose...${NC}"
if ! command -v docker-compose &> /dev/null; then
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d'"' -f4)
sudo curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose > /dev/null 2>&1
sudo chmod +x /usr/local/bin/docker-compose
echo -e "${GREEN}✅ Docker Compose installed${NC}"
else
echo -e "${GREEN}✅ Docker Compose already installed${NC}"
fi
# ============ 4. PROJECT STRUCTURE ============
echo -e "${YELLOW}[4/7] Creating project structure...${NC}"
mkdir -p $JARVIS_HOME/{config,data,logs,api,web}
cd $JARVIS_HOME
# Create directories
mkdir -p data/{postgres,redis,milvus,etcd,ollama,n8n}
mkdir -p logs/{api,n8n,nginx}
echo -e "${GREEN}✅ Project structure created${NC}"
# ============ 5. CONFIGURATION FILES ============
echo -e "${YELLOW}[5/7] Creating configuration files...${NC}"
# Copy docker-compose.yml (you'll need to provide this)
# This assumes files are available locally
if [ ! -f "docker-compose.yml" ]; then
echo -e "${YELLOW}⚠️ docker-compose.yml not found. Please copy it to $JARVIS_HOME${NC}"
fi
# Create .env file
cat > .env << EOF
DOMAIN=$DOMAIN
DB_PASSWORD=$(openssl rand -base64 32)
CLAUDE_API_KEY=
OLLAMA_MODEL=mistral
LOG_LEVEL=info
JWT_SECRET=$(openssl rand -base64 32)
API_KEY_ADMIN=$(openssl rand -base64 32)
N8N_ENCRYPTION_KEY=$(openssl rand -base64 32)
EOF
echo -e "${GREEN}✅ Configuration created${NC}"
echo -e "${YELLOW} 📝 Edit .env with your API keys!${NC}"
# ============ 6. VOLUMES & PERMISSIONS ============
echo -e "${YELLOW}[6/7] Setting up volumes...${NC}"
sudo chown -R jarvis-core:jarvis-core $JARVIS_HOME
chmod -R 755 $JARVIS_HOME
chmod 600 .env
echo -e "${GREEN}✅ Volumes configured${NC}"
# ============ 7. DOCKER NETWORK ============
echo -e "${YELLOW}[7/7] Creating Docker network...${NC}"
docker network create jarvis-net 2>/dev/null || true
echo -e "${GREEN}✅ Docker network ready${NC}"
echo ""
echo -e "${GREEN}============================================${NC}"
echo -e "${GREEN}🚀 JARVIS CORE READY FOR DEPLOYMENT${NC}"
echo -e "${GREEN}============================================${NC}"
echo ""
echo -e "${BLUE}Next steps:${NC}"
echo "1. cd $JARVIS_HOME"
echo "2. Edit .env - Add your CLAUDE_API_KEY"
echo "3. docker-compose up -d"
echo ""
echo -e "${BLUE}Services:${NC}"
echo " • API: http://$DOMAIN:8000"
echo " • n8n: http://$DOMAIN:5678"
echo " • Web: http://$DOMAIN:3000"
echo " • Traefik: http://$DOMAIN:8080"
echo " • Postgres: 5432"
echo " • Redis: 6379"
echo " • Milvus: 19530"
echo " • Ollama: 11434"
echo ""
echo -e "${YELLOW}⚠️ IMPORTANT: Change default passwords in production!${NC}"
echo ""