From 497faca5746f46a5bc56c3b60bb940239a7ef8d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Malfait?= Date: Mon, 16 Jun 2025 22:42:57 +0200 Subject: [PATCH] feat: Add Cursor background agent configuration with PostgreSQL and Redis setup --- .cursor/environment.docker-compose.json | 18 ++++++++++++++++++ .cursor/environment.json | 14 ++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 .cursor/environment.docker-compose.json create mode 100644 .cursor/environment.json diff --git a/.cursor/environment.docker-compose.json b/.cursor/environment.docker-compose.json new file mode 100644 index 000000000..ef96b3d06 --- /dev/null +++ b/.cursor/environment.docker-compose.json @@ -0,0 +1,18 @@ +{ + "install": "yarn install && echo 'Setting up Docker Compose environment...' && cd packages/twenty-docker && cp -n docker-compose.yml docker-compose.dev.yml || true", + "start": "sudo service docker start && cd packages/twenty-docker && echo 'Installing yq...' && sudo apt-get update && sudo apt-get install -y wget && wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 && sudo chmod +x /usr/local/bin/yq && echo 'Patching docker-compose for local development...' && yq eval 'del(.services.server.image)' -i docker-compose.dev.yml && yq eval '.services.server.build.context = \"../../\"' -i docker-compose.dev.yml && yq eval '.services.server.build.dockerfile = \"./packages/twenty-docker/twenty/Dockerfile\"' -i docker-compose.dev.yml && yq eval 'del(.services.worker.image)' -i docker-compose.dev.yml && yq eval '.services.worker.build.context = \"../../\"' -i docker-compose.dev.yml && yq eval '.services.worker.build.dockerfile = \"./packages/twenty-docker/twenty/Dockerfile\"' -i docker-compose.dev.yml && echo 'Setting up .env file...' && echo 'SERVER_URL=http://localhost:3000' > .env && echo 'APP_SECRET='$(openssl rand -base64 32) >> .env && echo 'PG_DATABASE_PASSWORD='$(openssl rand -hex 16) >> .env && echo 'SIGN_IN_PREFILLED=true' >> .env && echo 'Building and starting services...' && docker-compose -f docker-compose.dev.yml up -d --build", + "terminals": [ + { + "name": "Docker Compose Logs", + "command": "sleep 30 && cd packages/twenty-docker && docker-compose -f docker-compose.dev.yml logs -f" + }, + { + "name": "Database Seed", + "command": "sleep 60 && cd packages/twenty-docker && echo 'Waiting for services to be ready...' && until docker-compose -f docker-compose.dev.yml exec -T server curl --fail http://localhost:3000/healthz 2>/dev/null; do echo 'Waiting for server...'; sleep 5; done && echo 'Seeding database...' && docker-compose -f docker-compose.dev.yml exec -T server yarn command:prod -- workspace:seed:dev" + }, + { + "name": "Service Status", + "command": "sleep 10 && cd packages/twenty-docker && while true; do clear; echo '=== Service Status ===' && docker-compose -f docker-compose.dev.yml ps && echo '\\n=== Health Status ===' && docker-compose -f docker-compose.dev.yml exec -T server curl -s http://localhost:3000/healthz 2>/dev/null && echo ' - Server: Healthy' || echo ' - Server: Starting...' && sleep 30; done" + } + ] +} \ No newline at end of file diff --git a/.cursor/environment.json b/.cursor/environment.json new file mode 100644 index 000000000..aea8e2558 --- /dev/null +++ b/.cursor/environment.json @@ -0,0 +1,14 @@ +{ + "install": "yarn install", + "start": "sudo service docker start && echo 'Waiting for Docker to start...' && sleep 5 && echo 'Starting PostgreSQL and Redis containers...' && make postgres-on-docker && make redis-on-docker && sleep 15 && echo 'Containers started successfully! Checking status...' && docker ps --filter name=twenty_", + "terminals": [ + { + "name": "Development Server", + "command": "sleep 20 && echo 'Starting Twenty development server...' && export SERVER_URL=http://localhost:3000 && yarn start" + }, + { + "name": "Logs & Status", + "command": "sleep 10 && echo '=== Waiting for containers to be ready ===' && until docker exec twenty_pg pg_isready -U postgres 2>/dev/null; do echo 'Waiting for PostgreSQL...'; sleep 2; done && echo 'PostgreSQL is ready!' && echo '=== Container Status ===' && docker ps --filter name=twenty_ --format 'table {{.Names}}\\t{{.Status}}\\t{{.Ports}}' && echo '\\n=== Following PostgreSQL logs ===' && docker logs -f twenty_pg" + } + ] +} \ No newline at end of file