feat: add plannedTabs
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
#!/bin/sh
|
||||
# KoolTab Production Deploy
|
||||
# Usage: ./scripts/deploy.sh "My Venue" admin@myvenue.com password
|
||||
|
||||
VENUE_NAME="${1:-${SETUP_VENUE_NAME}}"
|
||||
ADMIN_EMAIL="${2:-${SETUP_ADMIN_EMAIL}}"
|
||||
ADMIN_PASSWORD="${3:-${SETUP_ADMIN_PASSWORD}}"
|
||||
|
||||
if [ -z "$VENUE_NAME" ] || [ -z "$ADMIN_EMAIL" ] || [ -z "$ADMIN_PASSWORD" ]; then
|
||||
echo "Usage: $0 \"Venue Name\" admin@example.com password"
|
||||
echo " or: SETUP_VENUE_NAME=... SETUP_ADMIN_EMAIL=... SETUP_ADMIN_PASSWORD=... $0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== Deploying KoolTab ==="
|
||||
echo " Venue: $VENUE_NAME"
|
||||
echo " Admin: $ADMIN_EMAIL"
|
||||
echo ""
|
||||
|
||||
# Build and start containers
|
||||
docker compose -f docker-compose.prod.yml up --build -d || { echo "Deploy failed"; exit 1; }
|
||||
|
||||
# Wait for API to be ready
|
||||
echo "Waiting for API..."
|
||||
until docker compose -f docker-compose.prod.yml exec api sh -c "node -e 'require(\"http\").get(\"http://localhost:3001/api/v1/health\",r=>{let b=\"\";r.on(\"data\",c=>b+=c);r.on(\"end\",()=>process.exit(b.includes(\"\\\"status\\\":\\\"ok\\\"\")?0:1))})'" 2>/dev/null; do
|
||||
sleep 2
|
||||
done
|
||||
echo "✓ API is ready"
|
||||
|
||||
# Seed the database
|
||||
echo ""
|
||||
echo "Seeding database..."
|
||||
docker compose -f docker-compose.prod.yml exec api sh -c "
|
||||
SETUP_VENUE_NAME='$VENUE_NAME' \
|
||||
SETUP_ADMIN_EMAIL='$ADMIN_EMAIL' \
|
||||
SETUP_ADMIN_PASSWORD='$ADMIN_PASSWORD' \
|
||||
node prisma/setup.js
|
||||
" || { echo "Seed failed"; exit 1; }
|
||||
|
||||
echo ""
|
||||
echo "=== Done ==="
|
||||
echo " Dashboard: https://kooltab.com"
|
||||
echo " Login: $ADMIN_EMAIL / $ADMIN_PASSWORD"
|
||||
@@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
# KoolTab Production Setup
|
||||
# Usage: ./scripts/setup.sh "My Venue" admin@myvenue.com mypassword
|
||||
#
|
||||
# Or with env vars:
|
||||
# SETUP_VENUE_NAME="My Venue" SETUP_ADMIN_EMAIL="admin@myvenue.com" SETUP_ADMIN_PASSWORD="mypassword" ./scripts/setup.sh
|
||||
|
||||
VENUE_NAME="${SETUP_VENUE_NAME:-$1}"
|
||||
ADMIN_EMAIL="${SETUP_ADMIN_EMAIL:-$2}"
|
||||
ADMIN_PASSWORD="${SETUP_ADMIN_PASSWORD:-$3}"
|
||||
|
||||
if [ -z "$VENUE_NAME" ] || [ -z "$ADMIN_EMAIL" ] || [ -z "$ADMIN_PASSWORD" ]; then
|
||||
echo "Usage: $0 \"Venue Name\" admin@example.com password"
|
||||
echo " or: SETUP_VENUE_NAME=... SETUP_ADMIN_EMAIL=... SETUP_ADMIN_PASSWORD=... $0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== KoolTab Production Setup ==="
|
||||
echo ""
|
||||
echo " Venue: $VENUE_NAME"
|
||||
echo " Admin: $ADMIN_EMAIL"
|
||||
echo ""
|
||||
|
||||
# Step 1: Apply database schema
|
||||
echo "[1/3] Applying database schema..."
|
||||
npx prisma db push --accept-data-loss 2>&1 || { echo "FAILED"; exit 1; }
|
||||
echo " ✓ Schema applied"
|
||||
|
||||
# Step 2: Generate Prisma client
|
||||
echo "[2/3] Generating Prisma client..."
|
||||
npx prisma generate 2>&1 || { echo "FAILED"; exit 1; }
|
||||
echo " ✓ Client generated"
|
||||
|
||||
# Step 3: Seed with your data
|
||||
echo "[3/3] Seeding database..."
|
||||
SETUP_VENUE_NAME="$VENUE_NAME" SETUP_ADMIN_EMAIL="$ADMIN_EMAIL" SETUP_ADMIN_PASSWORD="$ADMIN_PASSWORD" \
|
||||
node prisma/setup.js || { echo "FAILED"; exit 1; }
|
||||
|
||||
echo ""
|
||||
echo "Setup complete. Login at https://kooltab.com"
|
||||
Reference in New Issue
Block a user