diff options
Diffstat (limited to 'R2R/compose.og.yaml')
-rwxr-xr-x | R2R/compose.og.yaml | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/R2R/compose.og.yaml b/R2R/compose.og.yaml new file mode 100755 index 00000000..05c04b3f --- /dev/null +++ b/R2R/compose.og.yaml @@ -0,0 +1,129 @@ +x-depends-on: + neo4j: &neo4j-dependency + condition: service_healthy + +networks: + r2r-network: + name: r2r-network + driver: bridge + attachable: true + ipam: + driver: default + config: + - subnet: 172.28.0.0/16 + labels: + - "com.docker.compose.recreate=always" + + +services: + r2r: + image: emrgntcmplxty/r2r:main + ports: + - "8000:8000" + environment: + - PYTHONUNBUFFERED=1 + - POSTGRES_USER=${POSTGRES_USER:-postgres} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres} + - POSTGRES_HOST=postgres + - POSTGRES_PORT=5432 + - POSTGRES_DBNAME=${POSTGRES_DBNAME:-postgres} + - POSTGRES_VECS_COLLECTION=${POSTGRES_VECS_COLLECTION:-${CONFIG_NAME:-vecs}} + - NEO4J_USER=${NEO4J_USER:-neo4j} + - NEO4J_PASSWORD=${NEO4J_PASSWORD:-ineedastrongerpassword} + - NEO4J_URL=${NEO4J_URL:-bolt://neo4j:7687} + - NEO4J_DATABASE=${NEO4J_DATABASE:-neo4j} + - OPENAI_API_KEY=${OPENAI_API_KEY:-} + - OLLAMA_API_BASE=${OLLAMA_API_BASE:-http://host.docker.internal:11434} + - CONFIG_NAME=${CONFIG_NAME:-} + - CONFIG_PATH=${CONFIG_PATH:-} + - CLIENT_MODE=${CLIENT_MODE:-false} + depends_on: + - postgres + networks: + - r2r-network + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000/v1/health"] + interval: 10s + timeout: 5s + retries: 5 + restart: on-failure + volumes: + - ${CONFIG_PATH:-/}:${CONFIG_PATH:-/app/config} + labels: + - "traefik.enable=true" + - "traefik.http.routers.r2r.rule=PathPrefix(`/api`)" + - "traefik.http.services.r2r.loadbalancer.server.port=8000" + - "traefik.http.middlewares.r2r-strip-prefix.stripprefix.prefixes=/api" + - "traefik.http.middlewares.r2r-add-v1.addprefix.prefix=/v1" + - "traefik.http.routers.r2r.middlewares=r2r-strip-prefix,r2r-add-v1,r2r-headers" + - "traefik.http.middlewares.r2r-headers.headers.customrequestheaders.Access-Control-Allow-Origin=*" + - "traefik.http.middlewares.r2r-headers.headers.customrequestheaders.Access-Control-Allow-Methods=GET,POST,OPTIONS" + - "traefik.http.middlewares.r2r-headers.headers.customrequestheaders.Access-Control-Allow-Headers=DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization" + - "traefik.http.middlewares.r2r-headers.headers.customresponseheaders.Access-Control-Expose-Headers=Content-Length,Content-Range" + + r2r-dashboard: + image: emrgntcmplxty/r2r-dashboard:latest + environment: + - NEXT_PUBLIC_API_URL=http://traefik:80/api + depends_on: + - r2r + networks: + - r2r-network + labels: + - "traefik.enable=true" + - "traefik.http.routers.dashboard.rule=PathPrefix(`/`)" + - "traefik.http.services.dashboard.loadbalancer.server.port=3000" + + postgres: + image: pgvector/pgvector:pg16 + environment: + POSTGRES_USER: ${POSTGRES_USER:-postgres} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres} + POSTGRES_DB: ${POSTGRES_DBNAME:-postgres} + volumes: + - postgres_data:/var/lib/postgresql/data + networks: + - r2r-network + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}"] + interval: 5s + timeout: 5s + retries: 5 + restart: on-failure + + traefik: + image: traefik:v2.9 + command: + - "--api.insecure=true" + - "--providers.docker=true" + - "--providers.docker.exposedbydefault=false" + - "--entrypoints.web.address=:80" + - "--accesslog=true" + - "--accesslog.filepath=/var/log/traefik/access.log" + ports: + - "88:80" + - "8080:8080" # Traefik dashboard + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + networks: + - r2r-network + + rag_eval_devenv: + container_name: rag_eval_devenv + #image: paper_eval_img:0.4 + image: r2r_rag:latest + tty: true + volumes: + - ${CODE_DIRECTORY}:/code + networks: + - r2r-network + +volumes: + postgres_data: + the_code: + driver: local + driver_opts: + o: bind + type: none + device: ${STORAGE_DIRECTORY} + #device: /home/shebes/Coding/gn-ai/gnqa |