# Copyright (c) 2022, 2023 Humanitarian OpenStreetMap Team # This file is part of FMTM. # # FMTM is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # FMTM is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with FMTM. If not, see . # version: "3" volumes: fmtm_db_data: central_db_data: networks: fmtm-dev: services: fmtm-db: image: "postgis/postgis:14-3.3-alpine" container_name: fmtm_db volumes: - fmtm_db_data:/var/lib/postgresql/data/ environment: - POSTGRES_USER=${FMTM_DB_USER:-fmtm} - POSTGRES_PASSWORD=${FMTM_DB_PASSWORD:-fmtm} - POSTGRES_DB=${FMTM_DB_NAME:-fmtm} ports: - "5432:5432" networks: - fmtm-dev restart: unless-stopped api: image: "quay.io/hotosm/fmtm-backend:latest" build: context: src/backend # target: debug container_name: fmtm_api volumes: - ./src/backend:/app/backend depends_on: - fmtm-db - central-proxy env_file: - .env ports: - "8000:8000" # - "5678:5678" networks: - fmtm-dev restart: unless-stopped ui-main: image: "quay.io/hotosm/fmtm-mf-main:debug" build: context: src/frontend dockerfile: debug.dockerfile args: APP_NAME: main API_URL: ${API_URL} FRONTEND_MAIN_URL: ${FRONTEND_MAIN_URL} FRONTEND_MAP_URL: ${FRONTEND_MAP_URL} container_name: fmtm_main depends_on: - api volumes: - ./src/frontend/main:/app - /app/node_modules/ environment: - API_URL=${API_URL} - FRONTEND_MAIN_URL=${FRONTEND_MAIN_URL} - FRONTEND_MAP_URL=${FRONTEND_MAP_URL} ports: - "8080:8080" networks: - fmtm-dev restart: unless-stopped ui-map: image: "quay.io/hotosm/fmtm-mf-map:debug" build: context: src/frontend dockerfile: debug.dockerfile args: APP_NAME: fmtm_openlayer_map API_URL: ${API_URL} FRONTEND_MAIN_URL: ${FRONTEND_MAIN_URL} FRONTEND_MAP_URL: ${FRONTEND_MAP_URL} container_name: fmtm_map depends_on: - api volumes: - ./src/frontend/fmtm_openlayer_map:/app - /app/node_modules/ environment: - API_URL=${API_URL} - FRONTEND_MAIN_URL=${FRONTEND_MAIN_URL} - FRONTEND_MAP_URL=${FRONTEND_MAP_URL} ports: - "8081:8081" networks: - fmtm-dev restart: unless-stopped central-db: image: "postgis/postgis:14-3.3-alpine" container_name: central_db volumes: - central_db_data:/var/lib/postgresql/data/ environment: - POSTGRES_USER=${CENTRAL_DB_USER:-odk} - POSTGRES_PASSWORD=${CENTRAL_DB_PASSWORD:-odk} - POSTGRES_DB=${CENTRAL_DB_NAME:-odk} ports: - "5433:5432" networks: - fmtm-dev restart: unless-stopped central: image: "quay.io/hotosm/odkcentral-api:latest" build: context: odkcentral/api container_name: central_api depends_on: - central-db - pyxform environment: - DOMAIN=local - SYSADMIN_EMAIL=${ODK_CENTRAL_USER} - HTTPS_PORT=${HTTPS_PORT:-443} - DB_HOST=${CENTRAL_DB_HOST:-postgres14} - DB_USER=${CENTRAL_DB_USER:-odk} - DB_PASSWORD=${CENTRAL_DB_PASSWORD:-odk} - DB_NAME=${CENTRAL_DB_NAME:-odk} - DB_SSL=${DB_SSL:-null} - EMAIL_FROM=${ODK_CENTRAL_USER} - EMAIL_HOST=${EMAIL_HOST:-mail} - EMAIL_PORT=${EMAIL_PORT:-25} - EMAIL_SECURE=${EMAIL_SECURE:-false} - EMAIL_IGNORE_TLS=${EMAIL_IGNORE_TLS:-true} - EMAIL_USER=${EMAIL_USER:-''} - EMAIL_PASSWORD=${EMAIL_PASSWORD:-''} - SENTRY_ORG_SUBDOMAIN=${SENTRY_ORG_SUBDOMAIN:-o130137} - SENTRY_KEY=${SENTRY_KEY:-3cf75f54983e473da6bd07daddf0d2ee} - SENTRY_PROJECT=${SENTRY_PROJECT:-1298632} ports: - "8383:8383" networks: - fmtm-dev command: [ "./wait-for-it.sh", "${CENTRAL_DB_HOST:-central-db}:5432", "--", "./init-user-and-start.sh", ] restart: unless-stopped central-proxy: image: "quay.io/hotosm/odkcentral-proxy:latest" build: context: odkcentral/proxy container_name: central_proxy depends_on: - central networks: - fmtm-dev restart: unless-stopped pyxform: image: "ghcr.io/getodk/pyxform-http:v1.10.1.1" networks: - fmtm-dev restart: always