-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.sh
More file actions
executable file
·119 lines (103 loc) · 3.69 KB
/
Copy pathsetup.sh
File metadata and controls
executable file
·119 lines (103 loc) · 3.69 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
#!/bin/bash
# Scripto - Quick Setup Script for Local Development
# This script helps you set up the backend quickly without Azure resources
set -e
echo "🚀 Scripto Backend Quick Setup"
echo "================================"
echo ""
# Colors
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# Check if MySQL is installed
echo "📦 Checking dependencies..."
if ! command -v mysql &> /dev/null; then
echo -e "${YELLOW}MySQL not found. Installing via Homebrew...${NC}"
brew install mysql
brew services start mysql
else
echo -e "${GREEN}✓ MySQL found${NC}"
fi
# Check if local.settings.json exists
if [ ! -f "apps/server/local.settings.json" ]; then
echo -e "${YELLOW}⚠ local.settings.json not found. Creating from template...${NC}"
cp apps/server/local.settings.json.example apps/server/local.settings.json
echo -e "${GREEN}✓ Created local.settings.json${NC}"
echo -e "${YELLOW}⚠ Please edit apps/server/local.settings.json with your values${NC}"
fi
# Create database
echo ""
echo "🗄️ Setting up database..."
read -p "Enter MySQL root password (press Enter if no password): " -s MYSQL_PASSWORD
echo ""
if [ -z "$MYSQL_PASSWORD" ]; then
mysql -u root -e "CREATE DATABASE IF NOT EXISTS scripto;" 2>/dev/null || {
echo -e "${RED}✗ Failed to create database. Please create it manually.${NC}"
exit 1
}
mysql -u root scripto < apps/server/db/database_schema.sql 2>/dev/null || {
echo -e "${RED}✗ Failed to import schema${NC}"
exit 1
}
else
mysql -u root -p"$MYSQL_PASSWORD" -e "CREATE DATABASE IF NOT EXISTS scripto;" 2>/dev/null || {
echo -e "${RED}✗ Failed to create database. Please create it manually.${NC}"
exit 1
}
mysql -u root -p"$MYSQL_PASSWORD" scripto < apps/server/db/database_schema.sql 2>/dev/null || {
echo -e "${RED}✗ Failed to import schema${NC}"
exit 1
}
fi
echo -e "${GREEN}✓ Database created and schema imported${NC}"
# Generate JWT secret
echo ""
echo "🔐 Generating JWT secret..."
JWT_SECRET=$(openssl rand -base64 48)
echo -e "${GREEN}✓ Generated JWT secret${NC}"
# Update local.settings.json with JWT secret
if command -v jq &> /dev/null; then
jq --arg jwt "$JWT_SECRET" '.Values.JWT_SECRET = $jwt' apps/server/local.settings.json > apps/server/local.settings.json.tmp
mv apps/server/local.settings.json.tmp apps/server/local.settings.json
echo -e "${GREEN}✓ Updated JWT secret in local.settings.json${NC}"
else
echo -e "${YELLOW}⚠ jq not found. Please manually update JWT_SECRET in local.settings.json to:${NC}"
echo "$JWT_SECRET"
fi
# Setup Python venv
echo ""
echo "🐍 Setting up Python virtual environment..."
cd apps/server
if [ ! -d ".venv" ]; then
python3 -m venv .venv
echo -e "${GREEN}✓ Created virtual environment${NC}"
fi
source .venv/bin/activate
pip install -q -r requirements.txt
echo -e "${GREEN}✓ Installed Python dependencies${NC}"
cd ../..
# Frontend setup
echo ""
echo "📦 Setting up frontend..."
cd apps/web
if [ ! -d "node_modules" ]; then
npm install
echo -e "${GREEN}✓ Installed frontend dependencies${NC}"
else
echo -e "${GREEN}✓ Frontend dependencies already installed${NC}"
fi
cd ../..
echo ""
echo -e "${GREEN}✅ Setup complete!${NC}"
echo ""
echo "📝 Next steps:"
echo "1. Edit apps/server/local.settings.json with your API keys"
echo "2. Update MySQL password if not using root without password"
echo ""
echo "🚀 To start the project:"
echo " Terminal 1: cd apps/web && npm run dev"
echo " Terminal 2: cd apps/server && source .venv/bin/activate && func start"
echo ""
echo "Or run: npm run dev:web (in one terminal) and npm run dev:server (in another)"
echo ""