fix paths

This commit is contained in:
Adam Cohen Hillel 2025-04-24 20:28:24 +01:00
parent d181786438
commit 88593793f2
5 changed files with 86 additions and 57 deletions

View File

@ -16,6 +16,8 @@ REDIS_SSL=
# LLM Providers:
ANTHROPIC_API_KEY=
OPENAI_API_KEY=
MODEL_TO_USE=
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=

View File

@ -18,10 +18,16 @@ redis==5.2.1
upstash-redis==1.3.0
supabase>=2.15.0
pyjwt==2.10.1
exa-py>=1.9.1
e2b-code-interpreter>=1.2.0
certifi==2024.2.2
python-ripgrep==0.0.6
daytona_sdk>=0.14.0
boto3>=1.34.0
openai>=1.72.0
streamlit>=1.44.1
nest-asyncio>=1.6.0
vncdotool>=1.2.0
pydantic
tavily-python>=0.5.4
pytesseract==0.3.13

View File

@ -8,6 +8,13 @@ NC='\033[0m' # No Color
echo -e "${RED}Cleaning up all services...${NC}"
# Determine the script and project directories
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_ROOT="$SCRIPT_DIR"
if [[ "$SCRIPT_DIR" == */scripts ]]; then
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
fi
# Stop all running background processes from previous runs
echo -e "${BLUE}Stopping background processes...${NC}"
pkill -f "uvicorn api:app"
@ -20,8 +27,8 @@ docker rm agentpress-redis 2>/dev/null || true
# Stop Supabase
echo -e "${BLUE}Stopping Supabase...${NC}"
cd backend/supabase
cd "$PROJECT_ROOT/backend/supabase"
supabase stop 2>/dev/null || true
cd ../..
cd "$SCRIPT_DIR"
echo -e "${GREEN}Cleanup complete. You can now start the services again.${NC}"

View File

@ -1,27 +1,34 @@
#!/bin/bash
# Create necessary directories
mkdir -p docker
# Fix any spacing issues in the JWT tokens using macOS compatible sed
if [ -f ".env" ]; then
sed -i '' 's/ey AgC/eyAgC/g' .env
# Determine the script and project directories
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_ROOT="$SCRIPT_DIR"
if [[ "$SCRIPT_DIR" == */scripts ]]; then
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
fi
if [ -f "docker-compose.yml" ]; then
sed -i '' 's/ey AgC/eyAgC/g' docker-compose.yml
# Create necessary directories
mkdir -p "$PROJECT_ROOT/docker"
# Fix any spacing issues in the JWT tokens using macOS compatible sed
if [ -f "$PROJECT_ROOT/.env" ]; then
sed -i '' 's/ey AgC/eyAgC/g' "$PROJECT_ROOT/.env"
fi
if [ -f "$PROJECT_ROOT/docker-compose.yml" ]; then
sed -i '' 's/ey AgC/eyAgC/g' "$PROJECT_ROOT/docker-compose.yml"
fi
# Create a symbolic link for .env.local in frontend
if [ -f ".env" ]; then
cp .env frontend/.env.local
if [ -f "$PROJECT_ROOT/.env" ]; then
cp "$PROJECT_ROOT/.env" "$PROJECT_ROOT/frontend/.env.local"
fi
# Create a symbolic link for Kong configuration if it doesn't exist
if [ ! -f "./backend/supabase/kong.yml" ]; then
if [ ! -f "$PROJECT_ROOT/backend/supabase/kong.yml" ]; then
echo "Creating Kong configuration file"
mkdir -p ./backend/supabase
cat > ./backend/supabase/kong.yml << EOL
mkdir -p "$PROJECT_ROOT/backend/supabase"
cat > "$PROJECT_ROOT/backend/supabase/kong.yml" << EOL
_format_version: "2.1"
_transform: true
@ -67,8 +74,8 @@ EOL
fi
# Fix any spacing issues in the Kong configuration
if [ -f "./backend/supabase/kong.yml" ]; then
sed -i '' 's/ey AgC/eyAgC/g' ./backend/supabase/kong.yml
if [ -f "$PROJECT_ROOT/backend/supabase/kong.yml" ]; then
sed -i '' 's/ey AgC/eyAgC/g' "$PROJECT_ROOT/backend/supabase/kong.yml"
fi
echo "Initialization complete. Run 'docker compose up -d' to start the application."

View File

@ -10,44 +10,51 @@ NC='\033[0m' # No Color
echo -e "${BLUE}Starting AgentPress Development Environment${NC}"
# Load environment variables from .env file
if [ -f .env ]; then
# Check if script is being run from the project root or from the scripts directory
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_ROOT="$SCRIPT_DIR"
if [[ "$SCRIPT_DIR" == */scripts ]]; then
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
fi
if [ -f "$PROJECT_ROOT/.env" ]; then
echo -e "${BLUE}Loading environment variables from .env file...${NC}"
set -a
source .env
source "$PROJECT_ROOT/.env"
set +a
else
echo -e "${RED}Error: .env file not found in project root${NC}"
echo -e "${RED}Error: .env file not found in project root: $PROJECT_ROOT${NC}"
exit 1
fi
# Run cleanup script to ensure all previous services are stopped
if [ -f "./cleanup.sh" ]; then
if [ -f "$SCRIPT_DIR/cleanup.sh" ]; then
echo -e "${BLUE}Running cleanup script...${NC}"
bash ./cleanup.sh
bash "$SCRIPT_DIR/cleanup.sh"
fi
# Check if init-dev.sh exists and run it if it does
if [ -f "./init-dev.sh" ]; then
if [ -f "$SCRIPT_DIR/init-dev.sh" ]; then
echo -e "${BLUE}Running initialization script...${NC}"
bash ./init-dev.sh
bash "$SCRIPT_DIR/init-dev.sh"
fi
# Create a trap to handle ctrl+c and clean up processes
trap 'echo -e "${RED}Shutting down services...${NC}"; kill $(jobs -p) 2>/dev/null; cd backend/supabase && supabase stop; docker stop agentpress-redis 2>/dev/null; docker rm agentpress-redis 2>/dev/null; exit' INT TERM
trap 'echo -e "${RED}Shutting down services...${NC}"; kill $(jobs -p) 2>/dev/null; cd "$PROJECT_ROOT/backend/supabase" && supabase stop; docker stop agentpress-redis 2>/dev/null; docker rm agentpress-redis 2>/dev/null; exit' INT TERM
# Start Supabase and ensure it starts properly
echo -e "${GREEN}Starting Supabase and extracting credentials...${NC}"
cd backend/supabase
cd "$PROJECT_ROOT/backend/supabase"
# Start Supabase and store the output
supabase start > supabase_output.txt
cd ../..
cd "$SCRIPT_DIR"
# Wait to ensure Supabase is fully started
echo -e "${YELLOW}Waiting for Supabase to start...${NC}"
sleep 5
# Read output file
SUPABASE_OUTPUT=$(cat backend/supabase/supabase_output.txt)
SUPABASE_OUTPUT=$(cat "$PROJECT_ROOT/backend/supabase/supabase_output.txt")
echo -e "${YELLOW}Supabase Output:${NC}"
echo "$SUPABASE_OUTPUT"
@ -57,7 +64,7 @@ SUPABASE_ANON_KEY=$(echo "$SUPABASE_OUTPUT" | grep "anon key" | awk '{print $3}'
SUPABASE_SERVICE_ROLE_KEY=$(echo "$SUPABASE_OUTPUT" | grep "service_role key" | awk '{print $3}')
# Remove temp file
rm -f backend/supabase/supabase_output.txt
rm -f "$PROJECT_ROOT/backend/supabase/supabase_output.txt"
# Check if extraction was successful
if [ -z "$SUPABASE_URL" ] || [ -z "$SUPABASE_ANON_KEY" ] || [ -z "$SUPABASE_SERVICE_ROLE_KEY" ]; then
@ -65,9 +72,9 @@ if [ -z "$SUPABASE_URL" ] || [ -z "$SUPABASE_ANON_KEY" ] || [ -z "$SUPABASE_SERV
echo -e "${YELLOW}Manual check - trying to get current Supabase status...${NC}"
# Try to get the status
cd backend/supabase
cd "$PROJECT_ROOT/backend/supabase"
SUPABASE_STATUS=$(supabase status)
cd ../..
cd "$SCRIPT_DIR"
echo "$SUPABASE_STATUS"
@ -79,7 +86,7 @@ if [ -z "$SUPABASE_URL" ] || [ -z "$SUPABASE_ANON_KEY" ] || [ -z "$SUPABASE_SERV
# Still failed?
if [ -z "$SUPABASE_URL" ] || [ -z "$SUPABASE_ANON_KEY" ] || [ -z "$SUPABASE_SERVICE_ROLE_KEY" ]; then
echo -e "${RED}ERROR: Unable to extract Supabase credentials and cannot proceed without them.${NC}"
echo -e "${RED}Please start Supabase manually with 'cd backend/supabase && supabase start'${NC}"
echo -e "${RED}Please start Supabase manually with 'cd $PROJECT_ROOT/backend/supabase && supabase start'${NC}"
echo -e "${RED}Then extract the credentials from the output and update environment files manually.${NC}"
exit 1
else
@ -107,25 +114,25 @@ echo -e "${YELLOW}Updating environment variables with extracted Supabase credent
# Update the root .env file
echo -e "${YELLOW}Updating root .env file...${NC}"
sed -i '' "s|^SUPABASE_URL=.*|SUPABASE_URL=\"${SUPABASE_URL}\"|g" .env
sed -i '' "s|^SUPABASE_ANON_KEY=.*|SUPABASE_ANON_KEY=\"${SUPABASE_ANON_KEY}\"|g" .env
sed -i '' "s|^SUPABASE_SERVICE_ROLE_KEY=.*|SUPABASE_SERVICE_ROLE_KEY=\"${SUPABASE_SERVICE_ROLE_KEY}\"|g" .env
sed -i '' "s|^NEXT_PUBLIC_SUPABASE_URL=.*|NEXT_PUBLIC_SUPABASE_URL=\"${SUPABASE_URL}\"|g" .env
sed -i '' "s|^NEXT_PUBLIC_SUPABASE_ANON_KEY=.*|NEXT_PUBLIC_SUPABASE_ANON_KEY=\"${SUPABASE_ANON_KEY}\"|g" .env
sed -i '' "s|^SUPABASE_URL=.*|SUPABASE_URL=\"${SUPABASE_URL}\"|g" "$PROJECT_ROOT/.env"
sed -i '' "s|^SUPABASE_ANON_KEY=.*|SUPABASE_ANON_KEY=\"${SUPABASE_ANON_KEY}\"|g" "$PROJECT_ROOT/.env"
sed -i '' "s|^SUPABASE_SERVICE_ROLE_KEY=.*|SUPABASE_SERVICE_ROLE_KEY=\"${SUPABASE_SERVICE_ROLE_KEY}\"|g" "$PROJECT_ROOT/.env"
sed -i '' "s|^NEXT_PUBLIC_SUPABASE_URL=.*|NEXT_PUBLIC_SUPABASE_URL=\"${SUPABASE_URL}\"|g" "$PROJECT_ROOT/.env"
sed -i '' "s|^NEXT_PUBLIC_SUPABASE_ANON_KEY=.*|NEXT_PUBLIC_SUPABASE_ANON_KEY=\"${SUPABASE_ANON_KEY}\"|g" "$PROJECT_ROOT/.env"
# Update the frontend .env.local file
echo -e "${YELLOW}Updating frontend/.env.local file...${NC}"
sed -i '' "s|^SUPABASE_URL=.*|SUPABASE_URL=\"${SUPABASE_URL}\"|g" frontend/.env.local
sed -i '' "s|^SUPABASE_ANON_KEY=.*|SUPABASE_ANON_KEY=\"${SUPABASE_ANON_KEY}\"|g" frontend/.env.local
sed -i '' "s|^SUPABASE_SERVICE_ROLE_KEY=.*|SUPABASE_SERVICE_ROLE_KEY=\"${SUPABASE_SERVICE_ROLE_KEY}\"|g" frontend/.env.local
sed -i '' "s|^NEXT_PUBLIC_SUPABASE_URL=.*|NEXT_PUBLIC_SUPABASE_URL=\"${SUPABASE_URL}\"|g" frontend/.env.local
sed -i '' "s|^NEXT_PUBLIC_SUPABASE_ANON_KEY=.*|NEXT_PUBLIC_SUPABASE_ANON_KEY=\"${SUPABASE_ANON_KEY}\"|g" frontend/.env.local
sed -i '' "s|^SUPABASE_URL=.*|SUPABASE_URL=\"${SUPABASE_URL}\"|g" "$PROJECT_ROOT/frontend/.env.local"
sed -i '' "s|^SUPABASE_ANON_KEY=.*|SUPABASE_ANON_KEY=\"${SUPABASE_ANON_KEY}\"|g" "$PROJECT_ROOT/frontend/.env.local"
sed -i '' "s|^SUPABASE_SERVICE_ROLE_KEY=.*|SUPABASE_SERVICE_ROLE_KEY=\"${SUPABASE_SERVICE_ROLE_KEY}\"|g" "$PROJECT_ROOT/frontend/.env.local"
sed -i '' "s|^NEXT_PUBLIC_SUPABASE_URL=.*|NEXT_PUBLIC_SUPABASE_URL=\"${SUPABASE_URL}\"|g" "$PROJECT_ROOT/frontend/.env.local"
sed -i '' "s|^NEXT_PUBLIC_SUPABASE_ANON_KEY=.*|NEXT_PUBLIC_SUPABASE_ANON_KEY=\"${SUPABASE_ANON_KEY}\"|g" "$PROJECT_ROOT/frontend/.env.local"
# Update the backend .env file with correct Redis and Supabase settings
echo -e "${YELLOW}Updating backend/.env file with local Redis and Supabase settings...${NC}"
# Create or update backend/.env with correct local dev settings
cat > backend/.env << EOL
cat > "$PROJECT_ROOT/backend/.env" << EOL
# API Keys (loaded from root .env)
GROQ_API_KEY="${GROQ_API_KEY}"
OPENROUTER_API_KEY="${OPENROUTER_API_KEY}"
@ -194,14 +201,14 @@ fi
# Apply Supabase migrations
echo -e "${YELLOW}Applying Supabase migrations...${NC}"
cd backend/supabase
cd "$PROJECT_ROOT/backend/supabase"
MIGRATION_OUTPUT=$(supabase db reset --debug)
echo "$MIGRATION_OUTPUT"
cd ../..
cd "$SCRIPT_DIR"
# Uncomment test authentication code in auth/page.tsx
echo -e "${YELLOW}Enabling test authentication code...${NC}"
sed -i '' -e 's|\/\*|\/\* Test login enabled: |g' -e 's|\*\/| \*\/|g' frontend/src/app/auth/page.tsx
sed -i '' -e 's|\/\*|\/\* Test login enabled: |g' -e 's|\*\/| \*\/|g' "$PROJECT_ROOT/frontend/src/app/auth/page.tsx"
# Create default user in Supabase
echo -e "${YELLOW}Creating default user...${NC}"
@ -221,14 +228,9 @@ curl -X GET "${SUPABASE_URL}/auth/v1/admin/users" \
-H "apikey: ${SUPABASE_SERVICE_ROLE_KEY}" \
-H "Content-Type: application/json" | grep -o '"email":"[^"]*"'
# Start Redis
echo -e "${GREEN}Starting Redis...${NC}"
docker run --name agentpress-redis -p 6379:6379 -d redis:latest &
sleep 2 # Give Redis time to start
# Start Backend
echo -e "${GREEN}Starting Backend...${NC}"
cd backend
cd "$PROJECT_ROOT/backend"
# Check for Python or Python3 command
if command -v python3 &>/dev/null; then
python3 -m uvicorn api:app --host 0.0.0.0 --port 8000 --reload &
@ -237,14 +239,19 @@ elif command -v python &>/dev/null; then
else
echo -e "${RED}Python not found. Cannot start backend.${NC}"
fi
cd ..
cd "$SCRIPT_DIR"
sleep 2 # Give backend time to start
# Start Frontend
echo -e "${GREEN}Starting Frontend...${NC}"
cd frontend
cd "$PROJECT_ROOT/frontend"
npm run dev &
cd ..
cd "$SCRIPT_DIR"
# Start Redis
echo -e "${GREEN}Starting Redis...${NC}"
docker run --name agentpress-redis -p 6379:6379 -d redis:latest &
sleep 2 # Give Redis time to start
echo -e "${GREEN}All services are starting!${NC}"
echo -e "${BLUE}Frontend will be available at:${NC} http://localhost:3000"
@ -309,13 +316,13 @@ while [ $attempt -lt $max_attempts ]; do
else
echo -e "${RED}Backend process is not running!${NC}"
echo -e "${YELLOW}Attempting to restart backend...${NC}"
cd backend
cd "$PROJECT_ROOT/backend"
if command -v python3 &>/dev/null; then
python3 -m uvicorn api:app --host 0.0.0.0 --port 8000 --reload &
elif command -v python &>/dev/null; then
python -m uvicorn api:app --host 0.0.0.0 --port 8000 --reload &
fi
cd ..
cd "$SCRIPT_DIR"
fi
fi
fi