Files
repoflow-docker-compose/docker-compose.yml
2026-01-24 22:39:00 +00:00

128 lines
3.2 KiB
YAML

name: repoflow
services:
nginx:
image: nginxinc/nginx-unprivileged:1.29.3-alpine
restart: unless-stopped
ports:
- "9080:8080"
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- server
- client
- hasura
deploy:
replicas: 1
networks:
- repoflow-net
client:
image: api.repoflow.io/repoflow-public/docker-public/library/repoflow-client:0.7.2
restart: unless-stopped
volumes:
- ./client/env.js:/usr/share/nginx/html/env.js:ro
- ./client/analytics.js:/usr/share/nginx/html/analytics.js:ro
deploy:
replicas: 1
networks:
- repoflow-net
server:
image: api.repoflow.io/repoflow-public/docker-public/library/repoflow-server:0.7.2
restart: unless-stopped
env_file:
- ./secrets.env
environment:
- IS_PRINT_ENV=true
- SERVER_PORT=3000
- SERVER_URL=http://localhost:9080/api
- FRONTEND_URL=http://localhost:9080
- COOKIE_SECURE=false
- TMP_FOLDER=/tmp
- S3_USE_SSL=false
- S3_PORT=9000
- S3_END_POINT=minio
- S3_BUCKET=repoflow
- S3_USE_PRE_SIGNED_URL=false
- HASURA_URL=http://hasura:8080/v1/graphql
- HASURA_URL_REST=http://hasura:8080/api/rest
- IS_SMART_SEARCH_ENABLED=false
- DEFAULT_SEARCH_LIMIT=10
- IS_REDIS_ENABLED=false
- IS_REMOTE_CACHE_ENABLED=true
- COOKIE_EXPIRY_IN_SECONDS=2592000
- JWS_ALGORITHM=HS256
- DEFAULT_ADMIN_USER_NAME=admin
- DEFAULT_ADMIN_PASSWORD=password
volumes:
- server-logs:/var/log/repoflow
- grype-db:/srv/vulnerabilitiesScanning
depends_on:
- hasura
deploy:
replicas: 1
networks:
- repoflow-net
postgresql:
image: postgres:14
restart: unless-stopped
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: repoflow
volumes:
- postgresql-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U user -d repoflow -h 127.0.0.1"]
interval: 5s
timeout: 5s
retries: 20
start_period: 10s
deploy:
replicas: 1
networks:
- repoflow-net
minio:
image: minio/minio:RELEASE.2025-07-23T15-54-02Z
restart: unless-stopped
env_file:
- ./secrets.env
volumes:
- minio-data:/data
command: server /data --console-address ":9001"
deploy:
replicas: 1
networks:
- repoflow-net
hasura:
image: hasura/graphql-engine:v2.48.1
restart: unless-stopped
env_file:
- ./secrets.env
environment:
- HASURA_GRAPHQL_ENABLE_CONSOLE=true
- HASURA_GRAPHQL_DEV_MODE=true
- HASURA_GRAPHQL_ENABLED_LOG_TYPES=startup,http-log,webhook-log,websocket-log,query-log
- HASURA_GRAPHQL_ENABLE_TELEMETRY=false
- HASURA_GRAPHQL_UNAUTHORIZED_ROLE=anonymous
- HASURA_GRAPHQL_METADATA_DATABASE_URL=postgresql://user:password@postgresql:5432/repoflow
- HASURA_GRAPHQL_DATABASE_URL=postgresql://user:password@postgresql:5432/repoflow
depends_on:
postgresql:
condition: service_healthy
networks:
- repoflow-net
networks:
repoflow-net:
driver: bridge
volumes:
minio-data:
server-logs:
postgresql-data:
grype-db: