| # Licensed to the Apache Software Foundation (ASF) under one or more | |
| # contributor license agreements. See the NOTICE file distributed with | |
| # this work for additional information regarding copyright ownership. | |
| # The ASF licenses this file to You under the Apache License, Version 2.0 | |
| # (the "License"); you may not use this file except in compliance with | |
| # the License. You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| # | |
| name: devlake-postgresql | |
| services: | |
| postgres: | |
| image: postgres:18.6 | |
| volumes: | |
| - postgres-storage:/var/lib/postgresql | |
| restart: always | |
| ports: | |
| - 5432:5432 | |
| environment: | |
| POSTGRES_DB: lake | |
| POSTGRES_USER: merico | |
| POSTGRES_PASSWORD: merico | |
| TZ: UTC | |
| grafana: | |
| image: ${DEVLAKE_IMAGE_REGISTRY:-devlake.docker.scarf.sh}/apache/devlake-dashboard:latest | |
| build: | |
| context: grafana/ | |
| ports: | |
| - ${GRAFANA_HOST_PORT:-3002}:3000 | |
| volumes: | |
| - grafana-storage:/var/lib/grafana | |
| - ./grafana/dashboards/postgresql:/etc/grafana/dashboards:ro | |
| environment: | |
| GF_SERVER_ROOT_URL: "${GRAFANA_ROOT_URL:-http://localhost:4000/grafana}" | |
| GF_USERS_DEFAULT_THEME: "light" | |
| DATABASE_TYPE: "${GRAFANA_DATABASE_TYPE:-postgresql}" | |
| DATABASE_HOST: "${GRAFANA_DATABASE_HOST:-postgres}" | |
| DATABASE_PORT: "${GRAFANA_DATABASE_PORT:-5432}" | |
| DATABASE_NAME: "${GRAFANA_DATABASE_NAME:-lake}" | |
| DATABASE_USER: "${GRAFANA_DATABASE_USER:-merico}" | |
| DATABASE_PASSWORD: "${GRAFANA_DATABASE_PASSWORD:-merico}" | |
| DATABASE_SSL_MODE: "${GRAFANA_DATABASE_SSL_MODE:-disable}" | |
| # Legacy vars for older dashboard images; kept in sync with generic vars above. | |
| POSTGRES_URL: "${GRAFANA_DATABASE_HOST:-postgres}:${GRAFANA_DATABASE_PORT:-5432}" | |
| POSTGRES_DATABASE: "${GRAFANA_DATABASE_NAME:-lake}" | |
| POSTGRES_USER: "${GRAFANA_DATABASE_USER:-merico}" | |
| POSTGRES_PASSWORD: "${GRAFANA_DATABASE_PASSWORD:-merico}" | |
| TZ: UTC | |
| restart: always | |
| depends_on: | |
| - postgres | |
| devlake: | |
| image: devlake-local:latest | |
| build: | |
| context: backend | |
| dockerfile: Dockerfile.local | |
| args: | |
| HTTPS_PROXY: "${HTTPS_PROXY}" | |
| GOPROXY: "${GOPROXY}" | |
| ports: | |
| - 8084:8080 | |
| restart: always | |
| volumes: | |
| - devlake-log:/app/logs | |
| env_file: | |
| - ./.env | |
| environment: | |
| DB_URL: postgres://merico:merico@postgres:5432/lake?sslmode=disable | |
| E2E_DB_URL: postgres://merico:merico@postgres:5432/lake_test?sslmode=disable | |
| REMOTE_PLUGIN_DIR: "" | |
| FORCE_MIGRATION: "true" | |
| LOGGING_DIR: /app/logs | |
| TZ: UTC | |
| depends_on: | |
| - postgres | |
| config-ui: | |
| image: ${DEVLAKE_IMAGE_REGISTRY:-devlake.docker.scarf.sh}/apache/devlake-config-ui:latest | |
| build: | |
| context: "config-ui" | |
| ports: | |
| - 4000:4000 | |
| env_file: | |
| - ./.env | |
| environment: | |
| DEVLAKE_ENDPOINT: devlake:8080 | |
| GRAFANA_ENDPOINT: grafana:3000 | |
| TZ: UTC | |
| depends_on: | |
| - devlake | |
| authproxy: | |
| image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.5-amd64 | |
| network_mode: "host" | |
| ports: | |
| - 4180:4180 | |
| env_file: | |
| - ./.env | |
| volumes: | |
| postgres-storage: | |
| grafana-storage: | |
| devlake-log: |