ruvector/docker/docker-compose.yml
rUv 814f595995 feat(studio): Add complete RuVector Studio application
Major additions:
- Complete Next.js studio application with 1600+ components
- Docker support (Dockerfile.combined, docker-compose.yml)
- GCP deployment documentation and benchmarks
- SQL benchmark scripts for performance testing
- Sentry integration for monitoring
- Comprehensive test suite and mocks

Studio features:
- Dashboard and admin interfaces
- Data visualization components
- Authentication and user management
- API integration with RuVector backend
- Static data and public assets

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-06 23:04:48 +00:00

106 lines
3.2 KiB
YAML

# RuVector Docker Compose Configuration
#
# Quick Start:
# docker compose up -d
#
# Build custom studio with RuVector modifications:
# docker compose --profile custom up -d --build
#
# Access:
# - Studio: http://localhost:3001
# - pg-meta API: http://localhost:8080
# - PostgreSQL: localhost:5432
services:
# PostgreSQL with pgvector extension
db:
image: pgvector/pgvector:pg16
container_name: ruvector-db
restart: unless-stopped
ports:
- "5432:5432"
environment:
POSTGRES_USER: ruvector
POSTGRES_PASSWORD: ruvector
POSTGRES_DB: ruvector
volumes:
- ruvector-db-data:/var/lib/postgresql/data
- ./init-db.sql:/docker-entrypoint-initdb.d/init.sql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ruvector -d ruvector"]
interval: 5s
timeout: 5s
retries: 5
# pg-meta for database management API
pg-meta:
image: supabase/postgres-meta:v0.84.2
container_name: ruvector-pg-meta
restart: unless-stopped
depends_on:
db:
condition: service_healthy
ports:
- "8080:8080"
environment:
PG_META_PORT: 8080
PG_META_DB_HOST: db
PG_META_DB_PORT: 5432
PG_META_DB_NAME: ruvector
PG_META_DB_USER: ruvector
PG_META_DB_PASSWORD: ruvector
# RuVector Studio (default - uses pre-built Supabase Studio image)
studio:
image: supabase/studio:20241202-71e5240
container_name: ruvector-studio
restart: unless-stopped
profiles:
- default
- ""
depends_on:
db:
condition: service_healthy
pg-meta:
condition: service_started
ports:
- "3001:3000"
environment:
STUDIO_PG_META_URL: http://pg-meta:8080
POSTGRES_PASSWORD: ruvector
DEFAULT_ORGANIZATION_NAME: RuVector
DEFAULT_PROJECT_NAME: RuVector Database
SUPABASE_URL: http://localhost:8000
SUPABASE_PUBLIC_URL: http://localhost:8000
SUPABASE_ANON_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE
SUPABASE_SERVICE_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q
NEXT_PUBLIC_SITE_URL: http://localhost:3000
NEXT_PUBLIC_IS_PLATFORM: "false"
SENTRY_IGNORE_API_RESOLUTION_ERROR: "1"
# RuVector Studio Custom (builds from source with RuVector modifications)
# Use with: docker compose --profile custom up -d --build
studio-custom:
build:
context: ..
dockerfile: docker/Dockerfile.studio
container_name: ruvector-studio-custom
restart: unless-stopped
profiles:
- custom
depends_on:
db:
condition: service_healthy
pg-meta:
condition: service_started
ports:
- "3001:3000"
environment:
STUDIO_PG_META_URL: http://pg-meta:8080
POSTGRES_PASSWORD: ruvector
DEFAULT_ORGANIZATION_NAME: RuVector
DEFAULT_PROJECT_NAME: RuVector Database
NEXT_PUBLIC_IS_PLATFORM: "false"
volumes:
ruvector-db-data: