1 line
8.3 KiB
JSON
1 line
8.3 KiB
JSON
{"repo": "blackeagle686/phoenix-studio", "files": {"deploy.sh": {"63c10b3bce3c4b4ccae60f7a0677b2fec8c7de8b": {"t": 1785604624.8376465, "n": 4902, "h": "e96ab719e24e167a", "c": "#!/bin/bash\n\n# Configuration\nPROJECT_DIR=\"/home/tlk/Documents/Projects/my_AItools/phoenix-studio\"\nVENV_DIR=\"$PROJECT_DIR/venv\"\nLOGS_DIR=\"$PROJECT_DIR/logs\"\nNGROK_TOKEN=\"3EK4AEsl1EbIFf7EL1tjvKovZOS_4cnZrmFpqW3giU8AXtBTQ\"\n\nmkdir -p \"$LOGS_DIR\"\n\ncommand=$1\nservice=$2\n\nfunction deploy() {\n echo \"Starting deployment setup...\"\n \n # Check if redis-server is installed\n if ! command -v redis-server &> /dev/null; then\n echo \"Redis is not installed. Attempting to install redis-server...\"\n sudo apt-get update\n sudo apt-get install -y redis-server\n fi\n \n # Initialize redis\n # Removed systemctl logic. Redis will now be started on port 6385 by the start() function.\n \n # Create venv\n if [ ! -d \"$VENV_DIR\" ]; then\n echo \"Creating Python virtual environment...\"\n python3 -m venv \"$VENV_DIR\"\n fi\n \n # Install dependencies\n echo \"Installing dependencies...\"\n source \"$VENV_DIR/bin/activate\"\n cd \"$PROJECT_DIR/backend\"\n pip install --upgrade pip\n pip install -r requirements.txt\n \n # Install frontend dependencies\n echo \"Installing frontend dependencies...\"\n cd \"$PROJECT_DIR/frontend\"\n npm install\n \n # Ngrok setup\n if ! command -v ngrok &> /dev/null; then\n echo \"Installing ngrok...\"\n curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc \\\n | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \\\n && echo \"deb https://ngrok-agent.s3.amazonaws.com buster main\" \\\n | sudo tee /etc/apt/sources.list.d/ngrok.list \\\n && sudo apt update \\\n && sudo apt install ngrok\n fi\n \n ngrok config add-authtoken \"$NGROK_TOKEN\"\n \n echo \"Deployment setup complete. Run './deploy.sh start' to start services.\"\n}\n\nfunction start() {\n echo \"Starting services in the background...\"\n source \"$VENV_DIR/bin/activate\"\n \n # Start Redis\n cd \"$PROJECT_DIR\"\n nohup redis-server --port 6385 > \"$LOGS_DIR/redis.log\" 2>&1 &\n echo $! > \"$LOGS_DIR/redis.pid\"\n echo \"Redis started on port 6385.\"\n \n # Start Backend\n cd \"$PROJECT_DIR\"\n nohup uvicorn backend.main:app --host 0.0.0.0 --port 8010 > \"$LOGS_DIR/backend.log\" 2>&1 &\n echo $! > \"$LOGS_DIR/backend.pid\"\n echo \"Backend started.\"\n\n # Start Celery\n nohup celery -A backend.core.celery_app worker --loglevel=info > \"$LOGS_DIR/celery.log\" 2>&1 &\n echo $! > \"$LOGS_DIR/celery.pid\"\n echo \"Celery worker started.\"\n \n # Start Ngrok (Disabled due to CRL fetch errors)\n # nohup ngrok http 8010 --log stdout --log-format logfmt > \"$LOGS_DIR/ngrok.log\" 2>&1 &\n # echo $! > \"$LOGS_DIR/ngrok.pid\"\n # echo \"Ngrok started. Use './deploy.sh logs ngrok' to see the forwarding URL.\"\n \n # Start Frontend\n cd \"$PROJECT_DIR/frontend\"\n nohup npm run dev > \"$LOGS_DIR/front.log\" 2>&1 &\n echo $! > \"$LOGS_DIR/front.pid\"\n echo \"Frontend started.\"\n}\n\nfunction stop() {\n echo \"Stopping services...\"\n for svc in redis backend celery ngrok front; do\n if [ -f \"$LOGS_DIR/$svc.pid\" ]; then\n PID=$(cat \"$LOGS_DIR/$svc.pid\")\n if ps -p $PID > /dev/null; then\n kill $PID\n echo \"$svc stopped.\"\n else\n echo \"$svc was not running.\"\n fi\n rm \"$LOGS_DIR/$svc.pid\"\n else\n echo \"No PID file found for $svc.\"\n fi\n done\n \n # Extra safety kill\n pkill -f \"uvicorn backend.main:app\" || true\n pkill -f \"celery -A backend.core.celery_app\" || true\n pkill -f \"ngrok http\" || true\n pkill -f \"redis-server --port 6385\" || true\n pkill -f \"vite\" || true\n pkill -f \"npm run dev\" || true\n}\n\nfunction restart() {\n stop\n sleep 2\n start\n}\n\nfunction logs() {\n if [ -z \"$service\" ]; then\n echo \"Please specify a service to view logs: backend, celery, ngrok, or front\"\n echo \"Usage: ./deploy.sh logs [backend|celery|ngrok|front]\"\n exit 1\n fi\n \n if [ -f \"$LOGS_DIR/$service.log\" ]; then\n tail -f \"$LOGS_DIR/$service.log\"\n else\n echo \"Log file for $service not found.\"\n fi\n}\n\ncase $command in\n deploy)\n deploy\n ;;\n start)\n start\n ;;\n stop)\n stop\n ;;\n restart)\n restart\n ;;\n logs)\n logs\n ;;\n docker-start)\n echo \"Starting Docker Compose deployment...\"\n docker compose up --build -d\n ;;\n docker-stop)\n echo \"Stopping Docker Compose deployment...\"\n docker compose down\n ;;\n docker-logs)\n echo \"Tailing Docker logs...\"\n docker compose logs -f\n ;;\n docker-restart)\n $0 docker-stop\n sleep 2\n $0 docker-start\n ;;\n *)\n echo \"Usage: ./deploy.sh {deploy|start|stop|restart|logs [service]|docker-start|docker-stop|docker-logs|docker-restart}\"\n exit 1\nesac\n"}}, "docker-compose.yml": {"87cffd9a147f1106c1f86d1d4e34156e6436fabd": {"t": 1785604626.5272777, "n": 1865, "h": "0f076efdd295ee87", "c": "version: '3.8'\n\nservices:\n db:\n image: postgres:15-alpine\n container_name: phoenix_postgres\n environment:\n POSTGRES_USER: phoenix\n POSTGRES_PASSWORD: phoenix_secure_pass\n POSTGRES_DB: studio\n volumes:\n - postgres_data:/var/lib/postgresql/data\n ports:\n - \"5432:5432\"\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U phoenix -d studio\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n redis:\n image: redis:7-alpine\n container_name: phoenix_redis\n command: redis-server --port 6385\n ports:\n - \"6385:6385\"\n volumes:\n - redis_data:/data\n healthcheck:\n test: [\"CMD\", \"redis-cli\", \"-p\", \"6385\", \"ping\"]\n interval: 5s\n timeout: 5s\n retries: 5\n\n backend:\n build:\n context: ./backend\n dockerfile: Dockerfile\n container_name: phoenix_backend\n environment:\n DATABASE_URL: postgresql://phoenix:phoenix_secure_pass@db:5432/studio\n JWT_SECRET_KEY: prod_secret_key_please_change_in_real_deployment\n REDIS_URL: redis://redis:6385/0\n CORS_ORIGINS: \"*\"\n ports:\n - \"8010:8010\"\n depends_on:\n db:\n condition: service_healthy\n redis:\n condition: service_healthy\n\n celery_worker:\n build:\n context: ./backend\n dockerfile: Dockerfile\n container_name: phoenix_celery\n command: celery -A backend.core.celery_app worker --loglevel=info\n environment:\n DATABASE_URL: postgresql://phoenix:phoenix_secure_pass@db:5432/studio\n REDIS_URL: redis://redis:6385/0\n depends_on:\n db:\n condition: service_healthy\n redis:\n condition: service_healthy\n\n frontend:\n build:\n context: ./frontend\n dockerfile: Dockerfile\n container_name: phoenix_frontend\n ports:\n - \"80:80\"\n depends_on:\n - backend\n\nvolumes:\n postgres_data:\n redis_data:\n"}}, "run.sh": {"c701607ebed305dd549764130e66c47575662f83": {"t": 1785604628.74325, "n": 785, "h": "99bf34e525c582fd", "c": "#!/bin/bash\n\n# Trap SIGINT and SIGTERM to kill background processes on exit\ntrap \"trap - SIGTERM && kill -- -$$\" SIGINT SIGTERM EXIT\n\necho \"===========================================\"\necho \"🔥 Starting Phoenix Studio Local Environment\"\necho \"===========================================\"\n\necho \"[1/2] Starting FastAPI Backend on port 8000...\"\n# Ensure we are in the root directory\ncd \"$(dirname \"$0\")\"\n./venv/bin/uvicorn backend.main:app --port 8000 --reload &\n\necho \"[2/2] Starting Vite Frontend on port 5173...\"\ncd frontend\nnpm run dev &\n\necho \"===========================================\"\necho \"✅ Both servers are starting!\"\necho \"Press Ctrl+C to stop both servers.\"\necho \"===========================================\"\n\n# Wait for background processes to keep the script running\nwait\n"}}}} |