goldenChat base source add

This commit is contained in:
aidev
2026-05-23 15:11:48 +09:00
commit a4ea7762b5
2081 changed files with 1155760 additions and 0 deletions
+93
View File
@@ -0,0 +1,93 @@
# ─────────────────────────────────────────────────────────────────────────────
# GoldenChart — Docker Compose
# 실행: docker compose up --build
# 중지: docker compose down
# 데이터 완전 삭제: docker compose down -v
# ─────────────────────────────────────────────────────────────────────────────
networks:
goldenchart-net:
driver: bridge
volumes:
mysql-data:
driver: local
services:
# ── MySQL 8.0 ────────────────────────────────────────────────────────────
mysql:
image: mysql:8.0
container_name: gc-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-rootpassword}
MYSQL_DATABASE: ${MYSQL_DATABASE:-stockAnalyzer}
MYSQL_USER: ${MYSQL_USER:-stock}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-analyzer}
ports:
- "${MYSQL_PORT:-3306}:3306"
volumes:
- mysql-data:/var/lib/mysql
- ./docker/mysql/init:/docker-entrypoint-initdb.d:ro
command: >
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--default-time-zone=+09:00
--innodb-buffer-pool-size=256M
--max-connections=200
--binlog-expire-logs-seconds=86400
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost",
"-u", "${MYSQL_USER:-stock}", "-p${MYSQL_PASSWORD:-analyzer}"]
interval: 10s
timeout: 5s
retries: 10
start_period: 40s
networks:
- goldenchart-net
# ── Spring Boot Backend ──────────────────────────────────────────────────
backend:
build:
context: . # 루트를 컨텍스트로 (ta4j-master 포함)
dockerfile: backend/Dockerfile
container_name: gc-backend
restart: unless-stopped
depends_on:
mysql:
condition: service_healthy
environment:
SPRING_PROFILES_ACTIVE: docker
DB_URL: "jdbc:mysql://mysql:3306/${MYSQL_DATABASE:-stockAnalyzer}?useSSL=false&serverTimezone=Asia/Seoul&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&createDatabaseIfNotExist=true"
DB_USERNAME: ${MYSQL_USER:-stock}
DB_PASSWORD: ${MYSQL_PASSWORD:-analyzer}
# 업비트 API 키 DB 암호화 (운영 환경에서 반드시 변경)
GC_SECRETS_ENCRYPTION_KEY: ${GC_SECRETS_ENCRYPTION_KEY:-goldenchart-local-dev-key-change-me}
ports:
- "${BACKEND_PORT:-8080}:8080"
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:8080/api/indicators/list || exit 1"]
interval: 15s
timeout: 5s
retries: 5
start_period: 60s
networks:
- goldenchart-net
# ── React Frontend (Nginx) ───────────────────────────────────────────────
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
args:
VITE_API_BASE_URL: /api
container_name: gc-frontend
restart: unless-stopped
depends_on:
backend:
condition: service_healthy
ports:
- "${FRONTEND_PORT:-80}:80"
networks:
- goldenchart-net