version: "3.8"

services:
  excalidraw:
    stdin_open: true
    build:
      context: .
      target: development
    container_name: excalidraw
    ports:
      - "3000:3000"
    restart: on-failure
    healthcheck:
      disable: true
    environment:
      - NODE_ENV=development
    volumes:
      - node_modules:/opt/node_app/node_modules
      - ./:/opt/node_app/

  excalidraw-storage-backend:
    build: 
      context: https://github.com/kitsteam/excalidraw-storage-backend.git#main
      target: production
    stdin_open: true
    ports:
      - "8080:8080"
    environment:
      STORAGE_URI: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}

  excalidraw-room:
    image: excalidraw/excalidraw-room
    ports:
      - "5001:80"

  postgres:
    image: postgres:15-alpine
    # Pass config parameters to the postgres server.
    # Find more information below when you need to generate the ssl-relevant file your self
    # command: -c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key
    environment:
      PGDATA: /var/lib/postgresql/data/pgdata
      POSTGRES_DB: ${POSTGRES_DB:-excalidraw-dev}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_PORT: ${POSTGRES_PORT:-5432}
      POSTGRES_USER: ${POSTGRES_USER}
    volumes:
      - postgres_data:/var/lib/postgresql/data/pgdata
    #ports:
    #  - "5432:5432"
volumes:
  postgres_data:
  node_modules:
