version: "3.8"

services:
  blinko-website:
    image: blinkospace/blinko:latest
    container_name: blinko-website
    environment:
      NODE_ENV: production
      NEXTAUTH_SECRET: ${nextauth_secret}
      DATABASE_URL: postgresql://postgres:${postgres_password}@blinko-postgres:5432/postgres
      NEXTAUTH_URL: ${nextauth_url}
      NEXT_PUBLIC_BASE_URL: ${next_public_base_url}
    depends_on:
      blinko-postgres:
        condition: service_healthy
    restart: always
    logging:
      options:
        max-size: "10m"
        max-file: "3"
    ports:
      - 1111:1111
    healthcheck:
      test: ["CMD", "curl", "-f", "http://blinko-website:1111/"]
      interval: 30s 
      timeout: 10s   
      retries: 5     
      start_period: 30s 

  blinko-postgres:
    image: postgres:14
    container_name: blinko-postgres
    restart: always
    environment:
      POSTGRES_DB: postgres
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: ${postgres_password}
      TZ: Asia/Shanghai
    volumes:
      - blinko-db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "postgres", "-d", "postgres"]
      interval: 5s
      timeout: 10s
      retries: 5

volumes:
  blinko-db: {}
