63 lines
1.4 KiB
Bash
Executable File
63 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# Private beta launcher (Tailscale-first)
|
|
# Usage: ./start_beta.sh [port]
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PORT="${1:-${CRM_PORT:-8080}}"
|
|
ENV_FILE="${CRM_ENV_FILE:-$SCRIPT_DIR/.env.beta}"
|
|
|
|
if [ -f "$ENV_FILE" ]; then
|
|
# shellcheck disable=SC1090
|
|
set -a
|
|
. "$ENV_FILE"
|
|
set +a
|
|
else
|
|
echo "ERROR: Missing $ENV_FILE"
|
|
echo "Copy .env.beta.example to .env.beta and fill values first."
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "${CRM_SECRET_KEY:-}" ]; then
|
|
echo "ERROR: CRM_SECRET_KEY is required for beta/prod mode."
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${#CRM_SECRET_KEY}" -lt 24 ]; then
|
|
echo "ERROR: CRM_SECRET_KEY is too short. Use at least 24+ chars."
|
|
exit 1
|
|
fi
|
|
|
|
export CRM_ENV="production"
|
|
export CRM_PORT="$PORT"
|
|
export CRM_HOST="0.0.0.0"
|
|
|
|
TAILSCALE_IP=""
|
|
if command -v tailscale >/dev/null 2>&1; then
|
|
TAILSCALE_IP="$(tailscale ip -4 2>/dev/null | head -n 1 || true)"
|
|
fi
|
|
|
|
if [ -z "${CRM_CORS_ORIGIN:-}" ]; then
|
|
if [ -n "$TAILSCALE_IP" ]; then
|
|
export CRM_CORS_ORIGIN="http://$TAILSCALE_IP:$PORT"
|
|
else
|
|
export CRM_CORS_ORIGIN="*"
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo " Venture CRM - Private Beta"
|
|
echo " Mode: $CRM_ENV"
|
|
echo " Port: $PORT"
|
|
echo " CORS: ${CRM_CORS_ORIGIN}"
|
|
if [ -n "$TAILSCALE_IP" ]; then
|
|
echo " Tailscale URL: http://$TAILSCALE_IP:$PORT"
|
|
else
|
|
echo " Tailscale IP not detected. Run: tailscale ip -4"
|
|
fi
|
|
echo ""
|
|
|
|
cd "$SCRIPT_DIR"
|
|
python3 backend/server.py
|