version: '3.4'

name: wave
services:
  web:
    image: ${DOCKER_REGISTRY-}wave
    build:
      context: .
      dockerfile: Wave/Dockerfile
    restart: unless-stopped
    ports:
      - "80:8080"
    links:
        - database:db
    environment:
      - "TZ=Europe/Berlin"
      - "WAVE_ConnectionStrings__DefaultConnection=Host=db; Username=wave; Password=development; Include Error Detail=true"
      - "WAVE_ConnectionStrings__Redis=redis,password=development"
    volumes:
      - wave-files:/app/files
      - wave-config:/configuration
    networks:
      - wave
    depends_on:
      - database
  database:
    image: postgres:16.1-alpine
    restart: unless-stopped
    environment:
      - "POSTGRES_DB=wave"
      - "POSTGRES_USER=wave"
      - "POSTGRES_PASSWORD=development"
    volumes:
      -  wave-db:/var/lib/postgresql/data
    networks:
      - wave 
  redis:
    image: redis:7-alpine
    restart: unless-stopped
    command: redis-server --requirepass development --save 60 1 --loglevel warning
    volumes:
      - wave-redis:/data
    networks:
      - wave

  mailhog:
    image: mailhog/mailhog:latest
    restart: unless-stopped
    ports:
      - 8080:8025
    profiles: ["smtp-debug"]
    networks:
      - wave

volumes:
  wave-files:
  wave-config:
  wave-db:
  wave-redis:
networks:
  wave: