1. Local

services:
  database:
    image: mariadb:latest
    restart: always
    ports:
    - 3308:3306
    environment:
      MARIADB_ROOT_PASSWORD: my_cool_secret
      MARIADB_DATABASE: springbootdb
    volumes:
      - mariadb_data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      start_period: 10s
      interval: 10s
      timeout: 5s
      retries: 3
    networks:
      - my-network
  backend:
    depends_on:
      database:
        condition: service_healthy
    image: kudong/newspace-backend:latest
    ports:
      - 8080:8080
    environment:
      OPENAI_API_KEY: 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
      SECRET_TOKEN: Newspace's token secret
      OPENAI_MODEL: deepseek-r1-distill-qwen-32b
      DB_USERNAME: root
      DB_PASSWORD: my_cool_secret
      DB_URL: jdbc:mariadb://database:3306/springbootdb?useUnicode=true&characterEncoding=utf-8&serverTimeZone=Asia/Seoul
    volumes:
      - "C:\\uploads:/newspace/uploads"    
    networks:
      - my-network
  frontend:
    depends_on:
      database:
        condition: service_healthy
      backend:
        condition: service_started
    image: kudong/newspace-frontend:latest
    ports:
      - 5173:80
    environment:
      BACKEND_IP: 127.0.0.1
      BACKEND_PORT: 8080
    networks:
      - my-network
networks:
  my-network:
    driver: bridge
volumes:
  mariadb_data:

2. Release Server

services:
  backend:
    image: newspace-backend:latest
    ports:
      - 8080:8080
    environment:
      OPENAI_API_KEY: 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
      OPENAI_MODEL: deepseek-r1-distill-llama-70b
      SECRET_TOKEN: Newspace's token secret
      DB_USERNAME: lgcns
      DB_PASSWORD: tldpsdptm
      DB_URL: jdbc:mariadb://172.21.1.22:3306/springbootdb?useUnicode=true&characterEncoding=utf-8&serverTimeZone=Asia/Seoul
    volumes:
      - /home/lgcns/uploads:/newspace/uploads
    networks:
      - my-network

  frontend:
    depends_on:
      - backend
    image: newspace-frontend:latest
    ports:
      - 5173:80
    environment:
      BACKEND_IP: kudong.kr
      BACKEND_PORT: 55021
    networks:
      - my-network

networks:
  my-network:
    driver: bridge