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
dbcda9dd6b
compose 네트워크 이름을 app-network로 통일
...
Deploy / deploy (push) Successful in 13s
다른 스택(adform, innertab)과 동일한 명명 규칙 적용
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 17:41:28 +09:00
ttipo
1d21d4b49b
비밀값 하드코딩 기본값 제거
...
Deploy / deploy (push) Successful in 37s
- docker-compose: DB_PASSWORD, ACCESS_SECRET, REFRESH_SECRET, ADMIN_USER, ADMIN_PASS를 필수(:?)로 변경 - 누락 시 명확한 에러로 실패
- server.js: 시크릿/관리자 계정의 하드코딩 폴백 제거 (JWT 시크릿 누락 시 기동 중단, 관리자 계정 미설정 시 생성 건너뜀)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 16:02:42 +09:00
ttipo
c8dbaf167f
Revert "frontend를 npm 공용 proxy 네트워크에 연결"
...
Deploy / deploy (push) Successful in 13s
This reverts commit 0e9e5b0283 .
2026-07-19 15:42:10 +09:00
ttipo
0e9e5b0283
frontend를 npm 공용 proxy 네트워크에 연결
...
Deploy / deploy (push) Successful in 20s
npm(Nginx Proxy Manager)이 proxy 네트워크에서 report-frontend:80 으로 접근할 수 있도록 external 네트워크 추가 (adform/innertab과 동일 패턴). 도메인 접속 시 502 나던 문제 해결
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 15:38:48 +09:00
ttipo
539fb8aa61
frontend: 로컬 vite 실행 경로 제거, Docker 단일 환경으로 정리
...
Deploy / deploy (push) Successful in 38s
- dev/preview 스크립트 제거 (Docker 빌드는 build만 사용)
- .env.example 안내를 .env.production 기준으로 갱신, .env.development 삭제
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 15:27:16 +09:00
ttipo
b118a58b8f
backend: 로컬 npm 실행 경로 제거, Docker 단일 환경으로 정리
...
- dev 스크립트(nodemon)와 dotenv 의존성/로드 코드 제거 (설정은 compose 환경변수로만 주입)
- backend/.env.example 삭제 - 환경변수 템플릿은 루트 .env.example로 일원화
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 15:25:38 +09:00
ttipo
32b5a8ed0e
frontend: 미사용 PASSWORD_ADMIN 환경변수 제거
...
frontend 소스에서 참조하지 않는 죽은 설정 정리 (백엔드 슈퍼 패스워드 제거 후속)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 15:18:00 +09:00
ttipo
d7e31ae38c
deploy: 저장소 이름 변경(blog_report -> report) 반영
...
Deploy / deploy (push) Failing after 1s
저장소가 report로 이름이 바뀌면서 배포 워크플로우의 git 주소와 DEPLOY_DIR이 옛 이름을 가리켜 Pull 단계에서 즉시 실패하던 문제 수정
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 15:08:27 +09:00
ttipo
5f7fa3689f
로그인 슈퍼 패스워드 백도어 제거
...
Deploy / deploy (push) Failing after 0s
하드코딩된 관리자 슈퍼 패스워드로 모든 계정에 로그인할 수 있던 로직을 제거하고, bcrypt 본인 비밀번호 검증만 사용
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 14:59:49 +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
e91e32c6fa
backend/frontend용 .env.example 템플릿 추가
...
Deploy / deploy (push) Successful in 21s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 06:01:31 +09:00
ttipo
7e6f579362
컨테이너 이름을 report-* 형식으로 통일
...
Deploy / deploy (push) Successful in 20s
mysql_db → report-db, report_backend → report-backend, report_frontend → report-frontend
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 05:46:12 +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
88d069fe86
compose 안정화: mysql healthcheck 대기, adminer IPv4 리슨 및 내부 바인딩
...
Deploy / deploy (push) Successful in 20s
- backend가 mysql 초기화 완료(healthy) 후에 기동하도록 depends_on 조건 추가
- adminer: IPv6 비활성 호스트에서 리슨 실패하던 것을 0.0.0.0 리슨으로 수정,
포트를 127.0.0.1로 바인딩해 외부 노출 차단
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 05:24:00 +09:00
ttipo
db730e3572
임시 테스트 워크플로우 제거
...
Deploy / deploy (push) Successful in 1m52s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 05:18:18 +09:00
ttipo
75710b295e
t2를 개별 프로브 잡 3개로 분리, 완료된 테스트 워크플로우 정리
...
Deploy / deploy (push) Failing after 0s
T2 probes / a-root-env-exists (push) Failing after 0s
T2 probes / b-frontend-env-exists (push) Failing after 0s
T2 probes / c-brace-korean-syntax (push) Successful in 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 05:06:33 +09:00
ttipo
e76a11db37
스텝별 분리 테스트 워크플로우 t1/t2/t3
...
CI Test / test (push) Failing after 0s
Deploy2 / deploy (push) Successful in 0s
Deploy / deploy (push) Failing after 0s
T1 git pull step / t1 (push) Successful in 0s
T2 env check step / t2 (push) Failing after 0s
T3 docker step / t3 (push) Successful in 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 05:04:39 +09:00
ttipo
4c95eb5140
ci-test: deploy.yml 스텝 복제 + 잡ID 가설 테스트 워크플로우
...
CI Test / test (push) Failing after 0s
Deploy2 / deploy (push) Successful in 0s
Deploy / deploy (push) Failing after 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 05:03:25 +09:00
ttipo
8c34166fbe
ci-test: env 블록과 github.token 사용 추가 (원인 분리)
...
CI Test / test (push) Successful in 0s
Deploy / deploy (push) Failing after 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 05:02:28 +09:00
ttipo
f182ccbcc4
러너 동작 확인용 임시 테스트 워크플로우 추가
...
CI Test / test (push) Successful in 0s
Deploy / deploy (push) Failing after 0s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 05:00:39 +09:00
ttipo
58c90b3454
배포 방식을 영구 디렉터리 git pull 방식으로 변경
...
Deploy / deploy (push) Failing after 1s
actions/checkout의 git clean이 바인드 마운트된 backend/img(업로드 파일)를
삭제하는 문제가 있어, 서버의 영구 배포 디렉터리에서 pull + compose up 하는
방식으로 전환. .env는 서버 파일로 관리하므로 Secrets 등록 불필요.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-19 04:47:04 +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
kkgu889
7f950339ae
first commit
2026-07-19 03:44:35 +09:00