-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy-quick.sh
More file actions
executable file
·118 lines (99 loc) · 3.48 KB
/
deploy-quick.sh
File metadata and controls
executable file
·118 lines (99 loc) · 3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/bin/bash
# BorgOS Quick Deployment Script
# Deploy to 192.168.100.159 with single command
set -e
# Configuration
REMOTE_HOST="${1:-192.168.100.159}"
REMOTE_USER="${2:-aiuser}"
REMOTE_DIR="/home/${REMOTE_USER}/borgos-mvp"
# Colors
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'
# Logo
echo -e "${BLUE}"
cat << "EOF"
╔══════════════════════════════════════╗
║ 🧠 BorgOS v2.0 MVP ║
║ AI-First Operating System ║
╚══════════════════════════════════════╝
EOF
echo -e "${NC}"
echo -e "${GREEN}Deploying BorgOS MVP to ${REMOTE_HOST}${NC}"
echo
# Create package
echo -e "${BLUE}[1/6] Creating deployment package...${NC}"
tar czf borgos-mvp.tar.gz \
core/ \
webui/ \
database/ \
installer/ \
docker-compose.yml \
.env.example \
2>/dev/null || true
# Upload to server
echo -e "${BLUE}[2/6] Uploading to server...${NC}"
ssh ${REMOTE_USER}@${REMOTE_HOST} "rm -rf ${REMOTE_DIR} && mkdir -p ${REMOTE_DIR}"
scp -q borgos-mvp.tar.gz ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/
# Deploy on remote
echo -e "${BLUE}[3/6] Installing on remote server...${NC}"
ssh ${REMOTE_USER}@${REMOTE_HOST} << 'REMOTE_SCRIPT'
cd ~/borgos-mvp
# Extract files
echo "Extracting files..."
tar xzf borgos-mvp.tar.gz
rm borgos-mvp.tar.gz
# Create .env from example
if [ ! -f .env ]; then
cp .env.example .env
# Generate secure passwords
sed -i "s/your_secure_password_here/$(openssl rand -base64 32 | tr -d '\n')/g" .env
sed -i "s/your_secret_key_here_min_32_chars/$(openssl rand -hex 32)/g" .env
echo ".env file created with secure passwords"
fi
# Check Docker
if ! docker version &>/dev/null; then
if ! sudo docker version &>/dev/null; then
echo "Installing Docker..."
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
fi
USE_SUDO="sudo"
else
USE_SUDO=""
fi
# Build and start services
echo "Building Docker images..."
$USE_SUDO docker compose build
echo "Starting services..."
$USE_SUDO docker compose down 2>/dev/null || true
$USE_SUDO docker compose up -d
# Wait for services
echo "Waiting for services to start..."
sleep 10
# Show status
$USE_SUDO docker compose ps
echo ""
echo "✅ BorgOS MVP deployed successfully!"
REMOTE_SCRIPT
# Clean up local
rm -f borgos-mvp.tar.gz
# Show access info
echo
echo -e "${GREEN}════════════════════════════════════════${NC}"
echo -e "${GREEN} BorgOS MVP Deployment Complete! ${NC}"
echo -e "${GREEN}════════════════════════════════════════${NC}"
echo
echo -e "${BLUE}Access Points:${NC}"
echo -e " Dashboard: ${GREEN}http://${REMOTE_HOST}:8080${NC}"
echo -e " API: ${GREEN}http://${REMOTE_HOST}:8081${NC}"
echo -e " ChromaDB: ${GREEN}http://${REMOTE_HOST}:8000${NC}"
echo
echo -e "${BLUE}SSH Commands:${NC}"
echo -e " Status: ssh ${REMOTE_USER}@${REMOTE_HOST} 'cd borgos-mvp && docker compose ps'"
echo -e " Logs: ssh ${REMOTE_USER}@${REMOTE_HOST} 'cd borgos-mvp && docker compose logs -f'"
echo -e " Stop: ssh ${REMOTE_USER}@${REMOTE_HOST} 'cd borgos-mvp && docker compose down'"
echo
echo -e "${YELLOW}Note: First startup may take a few minutes for database initialization${NC}"