forked from algorithm-visualizer/algorithm-visualizer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy-phala.sh
More file actions
executable file
·134 lines (111 loc) · 3.61 KB
/
deploy-phala.sh
File metadata and controls
executable file
·134 lines (111 loc) · 3.61 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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/bin/bash
# TEE Trust Validator - Phala Cloud Deployment Script
# Deploy to Phala Network's Confidential Cloud
set -e
echo "🚀 TEE Trust Validator - Phala Cloud Deployment"
echo "================================================"
# Configuration
DOCKER_IMAGE="tee-trust-validator"
DOCKER_TAG="latest"
DOCKER_REGISTRY="${DOCKER_REGISTRY:-}"
NODE_ID="${NODE_ID:-12}"
DSTACK_IMAGE="${DSTACK_IMAGE:-dstack-0.5.3}"
KMS_ID="${KMS_ID:-phala-prod7}"
APP_NAME="${APP_NAME:-tee-trust-validator}"
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Load environment variables
if [ -f ".env" ]; then
export $(cat .env | grep -v '^#' | xargs)
echo -e "${GREEN}✓ Loaded environment variables${NC}"
else
echo -e "${YELLOW}⚠ No .env file found. Using environment variables.${NC}"
fi
# Validate required environment variables
if [ -z "$PHALA_API_KEY" ]; then
echo -e "${RED}✗ PHALA_API_KEY is required${NC}"
echo "Please set PHALA_API_KEY environment variable or create .env file"
exit 1
fi
# Step 1: Build Docker image
echo ""
echo "📦 Building Docker image..."
docker build --platform linux/amd64 -t ${DOCKER_IMAGE}:${DOCKER_TAG} .
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ Docker image built successfully${NC}"
else
echo -e "${RED}✗ Docker build failed${NC}"
exit 1
fi
# Step 2: Push to registry (if configured)
if [ ! -z "$DOCKER_REGISTRY" ]; then
echo ""
echo "📤 Pushing to Docker registry..."
# Tag image
docker tag ${DOCKER_IMAGE}:${DOCKER_TAG} ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${DOCKER_TAG}
# Push image
docker push ${DOCKER_REGISTRY}/${DOCKER_IMAGE}:${DOCKER_TAG}
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ Image pushed to registry${NC}"
else
echo -e "${RED}✗ Failed to push image${NC}"
exit 1
fi
fi
# Step 3: Deploy to Phala Cloud
echo ""
echo "☁️ Deploying to Phala Cloud..."
# Check if phala CLI is installed
if ! command -v phala &> /dev/null; then
echo -e "${YELLOW}Installing Phala CLI...${NC}"
npm install -g @phala/cli
fi
# Login to Phala (if needed)
echo "🔐 Authenticating with Phala Network..."
phala auth login $PHALA_API_KEY
# Deploy using docker-compose
echo "🚀 Deploying application..."
phala deploy --compose docker-compose.yml \
--name ${APP_NAME} \
--node-id ${NODE_ID} \
--image ${DSTACK_IMAGE} \
--kms-id ${KMS_ID}
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ Deployment successful!${NC}"
# Get deployment info
echo ""
echo "📊 Deployment Information:"
phala cvms list | grep ${APP_NAME}
echo ""
echo "🌐 Access your application:"
echo " Dashboard: https://<app-id>-3000.dstack-pha-prod7.phala.network/"
echo " API: https://<app-id>-8000.dstack-pha-prod7.phala.network/"
echo ""
echo "Run 'phala cvms list' to see your app ID"
else
echo -e "${RED}✗ Deployment failed${NC}"
exit 1
fi
# Step 4: Verify deployment
echo ""
echo "🔍 Verifying deployment..."
sleep 30 # Wait for services to start
# Get the app ID (you might need to parse this from phala cvms list)
APP_INFO=$(phala cvms list | grep ${APP_NAME})
echo "App Info: ${APP_INFO}"
echo ""
echo "✅ Deployment Complete!"
echo ""
echo "📝 Next Steps:"
echo "1. Check deployment status: phala cvms list"
echo "2. View logs: phala cvms logs <cvm-id>"
echo "3. Test API: curl https://<app-id>-8000.dstack-pha-prod7.phala.network/api/health"
echo ""
echo "🔗 Resources:"
echo " Documentation: https://docs.phala.network/"
echo " Support: https://discord.gg/phala"
echo ""
echo "Thank you for using TEE Trust Validator! 🚀"