docker-compose.langfuse.yml 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. services:
  2. langfuse-worker:
  3. image: langfuse/langfuse-worker:3
  4. ports:
  5. - 127.0.0.1:3030:3030
  6. environment: &langfuse-worker-env
  7. NEXTAUTH_URL: http://localhost:3000
  8. DATABASE_URL: postgresql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_DATABASE}
  9. SALT: ${SALT}
  10. ENCRYPTION_KEY: ${ENCRYPTION_KEY}
  11. TELEMETRY_ENABLED: ${TELEMETRY_ENABLED:-true}
  12. LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES: ${LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES:-true}
  13. CLICKHOUSE_MIGRATION_URL: ${CLICKHOUSE_MIGRATION_URL:-clickhouse://clickhouse:9000}
  14. CLICKHOUSE_URL: ${CLICKHOUSE_URL:-http://clickhouse:8123}
  15. CLICKHOUSE_USER: ${CLICKHOUSE_USER}
  16. CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD}
  17. CLICKHOUSE_CLUSTER_ENABLED: ${CLICKHOUSE_CLUSTER_ENABLED:-false}
  18. # LANGFUSE_USE_AZURE_BLOB: ${LANGFUSE_USE_AZURE_BLOB:-false}
  19. LANGFUSE_S3_EVENT_UPLOAD_BUCKET: ${AWS_BUCKET}
  20. LANGFUSE_S3_EVENT_UPLOAD_REGION: ${AWS_DEFAULT_REGION}
  21. LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
  22. LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
  23. LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT: ${AWS_ENDPOINT}
  24. LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE: ${AWS_USE_PATH_STYLE_ENDPOINT}
  25. LANGFUSE_S3_EVENT_UPLOAD_PREFIX: ${LANGFUSE_S3_EVENT_UPLOAD_PREFIX:-events/}
  26. LANGFUSE_S3_MEDIA_UPLOAD_BUCKET: ${AWS_BUCKET}
  27. LANGFUSE_S3_MEDIA_UPLOAD_REGION: ${AWS_DEFAULT_REGION}
  28. LANGFUSE_S3_MEDIA_UPLOAD_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
  29. LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
  30. LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT: ${AWS_URL}
  31. LANGFUSE_S3_MEDIA_UPLOAD_FORCE_PATH_STYLE: ${AWS_USE_PATH_STYLE_ENDPOINT}
  32. LANGFUSE_S3_MEDIA_UPLOAD_PREFIX: ${LANGFUSE_S3_MEDIA_UPLOAD_PREFIX:-media/}
  33. LANGFUSE_S3_BATCH_EXPORT_ENABLED: ${LANGFUSE_S3_BATCH_EXPORT_ENABLED:-false}
  34. LANGFUSE_S3_BATCH_EXPORT_BUCKET: ${AWS_BUCKET}
  35. LANGFUSE_S3_BATCH_EXPORT_PREFIX: ${LANGFUSE_S3_BATCH_EXPORT_PREFIX:-exports/}
  36. LANGFUSE_S3_BATCH_EXPORT_REGION: ${AWS_DEFAULT_REGION}
  37. LANGFUSE_S3_BATCH_EXPORT_ENDPOINT: ${AWS_ENDPOINT}
  38. LANGFUSE_S3_BATCH_EXPORT_EXTERNAL_ENDPOINT: ${AWS_URL}
  39. LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
  40. LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
  41. LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE: ${AWS_USE_PATH_STYLE_ENDPOINT}
  42. # LANGFUSE_INGESTION_QUEUE_DELAY_MS: ${LANGFUSE_INGESTION_QUEUE_DELAY_MS:-}
  43. # LANGFUSE_INGESTION_CLICKHOUSE_WRITE_INTERVAL_MS: ${LANGFUSE_INGESTION_CLICKHOUSE_WRITE_INTERVAL_MS:-}
  44. REDIS_HOST: ${REDIS_HOST:-redis}
  45. REDIS_PORT: ${REDIS_PORT:-6379}
  46. REDIS_AUTH: ${REDIS_PASSWORD}
  47. # REDIS_TLS_ENABLED: ${REDIS_TLS_ENABLED:-false}
  48. # REDIS_TLS_CA: ${REDIS_TLS_CA:-/certs/ca.crt}
  49. # REDIS_TLS_CERT: ${REDIS_TLS_CERT:-/certs/redis.crt}
  50. # REDIS_TLS_KEY: ${REDIS_TLS_KEY:-/certs/redis.key}
  51. # EMAIL_FROM_ADDRESS: ${EMAIL_FROM_ADDRESS:-}
  52. # SMTP_CONNECTION_URL: ${SMTP_CONNECTION_URL:-}
  53. depends_on: &langfuse-depends-on
  54. pgsql:
  55. condition: service_healthy
  56. minio:
  57. condition: service_healthy
  58. redis:
  59. condition: service_healthy
  60. clickhouse:
  61. condition: service_healthy
  62. langfuse:
  63. image: langfuse/langfuse:3
  64. depends_on: *langfuse-depends-on
  65. ports:
  66. - 3000:3000
  67. environment:
  68. <<: *langfuse-worker-env
  69. NEXTAUTH_URL: http://localhost:3000
  70. NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
  71. LANGFUSE_INIT_ORG_ID: ${LANGFUSE_INIT_ORG_ID:-}
  72. LANGFUSE_INIT_ORG_NAME: ${LANGFUSE_INIT_ORG_NAME:-}
  73. LANGFUSE_INIT_PROJECT_ID: ${LANGFUSE_INIT_PROJECT_ID:-}
  74. LANGFUSE_INIT_PROJECT_NAME: ${LANGFUSE_INIT_PROJECT_NAME:-}
  75. LANGFUSE_INIT_PROJECT_PUBLIC_KEY: ${LANGFUSE_INIT_PROJECT_PUBLIC_KEY:-}
  76. LANGFUSE_INIT_PROJECT_SECRET_KEY: ${LANGFUSE_INIT_PROJECT_SECRET_KEY:-}
  77. LANGFUSE_INIT_USER_EMAIL: ${LANGFUSE_INIT_USER_EMAIL:-}
  78. LANGFUSE_INIT_USER_NAME: ${LANGFUSE_INIT_USER_NAME:-}
  79. LANGFUSE_INIT_USER_PASSWORD: ${LANGFUSE_INIT_USER_PASSWORD:-}
  80. pgsql:
  81. image: postgres:16
  82. environment:
  83. POSTGRES_DB: ${DB_DATABASE}
  84. POSTGRES_USER: ${DB_USERNAME}
  85. POSTGRES_PASSWORD: ${DB_PASSWORD}
  86. volumes:
  87. - pg-data:/var/lib/postgresql/data:rw
  88. healthcheck:
  89. test: pg_isready -d ${DB_DATABASE} -U ${DB_USERNAME}
  90. interval: 15s
  91. timeout: 5s
  92. start_period: 2s
  93. redis:
  94. image: redis:7.2.3-alpine3.18
  95. command: >
  96. --requirepass ${REDIS_PASSWORD}
  97. volumes:
  98. - redis-data:/data:rw
  99. healthcheck:
  100. test: ["CMD", "redis-cli", "ping"]
  101. interval: 500ms
  102. timeout: 1s
  103. clickhouse:
  104. image: clickhouse/clickhouse-server
  105. restart: always
  106. user: "101:101"
  107. environment:
  108. CLICKHOUSE_DB: ${CLICKHOUSE_DB}
  109. CLICKHOUSE_USER: ${CLICKHOUSE_USER}
  110. CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD}
  111. volumes:
  112. - clickhouse-data:/var/lib/clickhouse
  113. - clickhouse-logs:/var/log/clickhouse-server
  114. # ports:
  115. # - 127.0.0.1:8123:8123
  116. # - 127.0.0.1:9000:9000
  117. healthcheck:
  118. test: wget --no-verbose --tries=1 --spider http://localhost:8123/ping || exit 1
  119. interval: 5s
  120. timeout: 5s
  121. retries: 10
  122. start_period: 1s
  123. minio:
  124. image: minio/minio
  125. entrypoint: sh
  126. command: -c 'mkdir -p /data/${AWS_BUCKET} && minio server --address ":9000" --console-address ":9001" /data'
  127. environment:
  128. MINIO_ROOT_USER: ${AWS_ACCESS_KEY_ID}
  129. MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY}
  130. volumes:
  131. - minio-data:/data
  132. ports:
  133. # - 9090:9000
  134. - 127.0.0.1:9091:9001
  135. healthcheck:
  136. test: ["CMD", "mc", "ready", "local"]
  137. interval: 1s
  138. timeout: 5s
  139. retries: 5
  140. start_period: 1s
  141. volumes:
  142. minio-data: {}
  143. pg-data: {}
  144. clickhouse-data: {}
  145. clickhouse-logs: {}
  146. redis-data: {}