7 Commits

Author SHA1 Message Date
ttipo 67f5d815c9 DB 서비스 이름을 postgres에서 db로 변경
Deploy / deploy (push) Successful in 20s
- depends_on, DB_HOST 기본값도 db로 갱신
- deploy: 서비스 이름 변경으로 남는 orphan 컨테이너 정리를 위해 --remove-orphans 추가

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 18:15:38 +09:00
ttipo f3e97d6c44 DB 데이터 경로를 프로젝트 폴더 기준 상대 경로로 변경
Deploy / deploy (push) Successful in 15s
- DB_DATA_DIR 기본값 /data/postgres -> ./data/postgres (다른 스택과 동일하게 프로젝트 폴더 하위에 생성)
- data/ gitignore 추가
- deploy: backend/frontend를 매 배포마다 force-recreate - DB 교체 시 스키마 미동기화, nginx 낡은 upstream 캐시 문제 방지

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 18:02:38 +09:00
ttipo 126c0169aa DB 볼륨을 /data/postgres 바인드 마운트로 변경
Deploy / deploy (push) Successful in 35s
- named volume 대신 호스트 경로 바인드 마운트 사용 (DB_DATA_DIR, 기본 /data/postgres)
- backend: DB 연결/동기화 실패 시 프로세스 종료 - restart: always가 DB 준비까지 재시도하도록 fail-fast 적용

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 17:56:44 +09:00
ttipo 8770b1b47b 호스트 포트 매핑 제거, npm 프록시 경유 구조로 전환
Deploy / deploy (push) Successful in 19s
- 모든 서비스 ports -> expose로 변경 (외부 포트 노출 없음)
- frontend/backend를 공용 proxy 네트워크에 연결 - npm이 컨테이너 이름(report-frontend:80)으로 라우팅
- DB는 내부 app-network 전용 유지
- 미사용이 된 BACKEND_PORT/FRONTEND_PORT 변수 제거

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 17:43:52 +09:00
ttipo a45cb39a57 DB를 MySQL에서 PostgreSQL로 전면 전환
- Sequelize dialect를 postgres로 변경, mysql2 대신 pg/pg-hstore 사용
- docker-compose: postgres:16-alpine + pg_isready healthcheck, 호스트 포트 5442
- 환경변수 MYSQL_PORT -> DB_PORT로 통일, .env.example 갱신

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 14:59:37 +09:00
ttipo de76764f7b 미사용 서비스 제거: adminer, n8n, n8n_postgres
Deploy / deploy (push) Successful in 13s
앱 코드에서 참조하지 않는 서비스들을 compose와 env 템플릿에서 제거.
n8n이 다시 필요해지면 ~/stacks/ 아래 독립 스택으로 구성 권장.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 05:43:41 +09:00
ttipo 4aebfaf049 CI/CD 준비: gitignore 정리, backend 멀티스테이지 빌드, Gitea Actions 배포 워크플로우
- .gitignore 추가: node_modules, dist, .env 파일을 추적에서 해제 (로컬 파일은 유지)
- .env.example 템플릿 추가 (실제 값은 서버 .env / Gitea Secrets로 관리)
- backend Dockerfile을 멀티스테이지로 전환: 이미지 빌드 내에서 npm ci + build.js 실행
- backend/frontend .dockerignore 추가
- .gitea/workflows/deploy.yml 추가: main push 시 배포 서버 러너가 compose build + up

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 03:54:20 +09:00