e3d5eaf6f3
refactor: portfolio → personal 리네이밍 + Blog/Todo 통합
...
- portfolio/ 디렉토리를 personal/로 리네이밍
- lotto-backend의 Blog/Todo 라우트·CRUD를 personal 서비스로 이전
- lotto-backend에서 Blog/Todo 코드 제거 (DB 테이블 스키마는 유지)
- nginx: /api/todos, /api/blog/ 라우팅을 personal로 추가
- docker-compose: portfolio → personal 서비스 변��
- deploy 스크립트: portfolio → personal 반영
데이터 마이그레이션은 배포 후 NAS에서 별도 수행 필요:
1. cp data/portfolio/portfolio.db data/personal/personal.db
2. sqlite3 data/lotto.db ".dump todos" | sqlite3 data/personal/personal.db
3. sqlite3 data/lotto.db ".dump blog_posts" | sqlite3 data/personal/personal.db
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-27 16:32:55 +09:00
6004bcf66d
fix(deployer): git pull 후 파일 소유권을 PUID:PGID로 복원
...
deployer 컨테이너가 root로 git pull을 실행하면 새 파일이
root:root 소유로 생성되어 다른 컨테이너에서 권한 문제 발생.
pull 직후 chown -R로 원래 소유권(bgg8988:users)을 복원.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-27 15:05:39 +09:00
c6366ad238
feat(portfolio): 백엔드 서비스 + 인프라 설정
...
- FastAPI 앱: DB(5테이블), Pydantic 모델, 토큰 인증, 전체 API 라우트
- Docker Compose: portfolio 서비스 (포트 18850)
- Nginx: /api/profile/ → portfolio:8000
- 배포 스크립트: portfolio 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-27 14:33:34 +09:00
cce84de8be
fix(deploy): 서비스 목록 변수화 + rsync 전 권한 확보 + healthcheck 전서비스 추가
...
- deploy.sh / deploy-nas.sh: 서비스 목록을 변수로 통합하여 누락 방지
- deploy-nas.sh: rsync 전 chmod u+rwX로 Docker root 소유 파일 권한 확보
- healthcheck.sh: music-lab, blog-lab, realestate-lab, agent-office 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-11 14:27:36 +09:00
678440a2bd
fix(deploy): agent-office 배포 누락 수정 + 백업 삭제 권한 처리
...
- deploy.sh의 BUILD_TARGETS, 고아 컨테이너 정리, 헬스체크, data 디렉토리에
agent-office 추가
- .releases 오래된 백업 삭제 시 chmod u+rwX로 권한 확보 후 삭제
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-11 14:25:26 +09:00
fdb2fedd40
fix(deploy): compose stop/rm 후 재빌드로 컨테이너 충돌 근본 해결
...
docker ps --filter 방식이 Synology에서 불안정하여
docker compose stop/rm으로 compose 관리 컨테이너를 먼저 정리하고,
이름 기반 docker rm으로 고아 컨테이너도 추가 정리하는 2단계 방식으로 변경.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-06 22:22:32 +09:00
d9bfd04c76
deployer: 배포 안정성 개선 — 헬스체크 실패 exit 1 + rsync 에러 핸들링 수정
...
- deploy.sh: 헬스체크 실패 시 exit 1 반환 (성공/실패 로그 추적 가능)
- deploy.sh: 릴리즈 백업에서 data/ 디렉토리 제외 (디스크 절약)
- deploy-nas.sh: rsync || [...] && true 셸 구문 오류 수정 (올바른 에러 핸들링)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-06 22:12:04 +09:00
cd292b2632
fix(deploy): --force-recreate로 컨테이너 이름 충돌 해결
...
docker rm -f가 deployer 내부에서 동작하지 않는 문제.
docker compose up --force-recreate로 기존 컨테이너를 자동 교체.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-06 21:58:06 +09:00
80ccb20f99
fix(deploy): docker rm -f로 컨테이너 강제 제거 후 빌드
...
docker compose down은 다른 프로젝트명으로 생성된 컨테이너를 인식 못함.
개별 docker rm -f로 확실하게 이름 충돌 제거.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-06 21:56:46 +09:00
ce4f7b3ef6
fix(deploy): 빌드 전 docker compose down으로 컨테이너 충돌 방지
...
신규 서비스 추가 시 기존 고아 컨테이너와 이름 충돌하는 문제 해결.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-06 21:55:03 +09:00
1b368e9896
fix(deploy): deploy.sh에 realestate-lab 빌드/헬스체크 추가
...
docker compose up --build 목록과 헬스체크 대상에 realestate-lab 누락 수정.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-06 21:47:52 +09:00
8b916194aa
deployer: blog-lab 서비스 배포 스크립트에 추가
...
rsync 대상, docker compose up, 헬스체크에 blog-lab 포함
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-05 20:05:14 +09:00
4b339d9d4f
deployer: Docker CLI 설치 방식 개선 + 헬스체크 수정
...
- Dockerfile: docker.io → docker-ce-cli + docker-compose-plugin (Docker 공식 저장소)
- python:3.12-slim에서 docker.io가 제대로 동작하지 않던 문제 해결
- root 유저로 실행하여 Docker 소켓 접근 보장
- deploy.sh: 헬스체크 URL을 서비스명:내부포트로 변경
- 컨테이너 내부에서 localhost:18000 접근 불가 문제 해결
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-04 14:03:58 +09:00
9ac142e1de
deployer: flock용 util-linux 추가, 헬스체크 URL localhost 포트로 수정
...
- Dockerfile: util-linux 패키지 추가 (flock 명령어 제공)
- deploy.sh: 헬스체크 URL을 Docker 서비스명 → localhost 호스트 포트로 변경
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-03 01:50:04 +09:00
6a1a2c4552
CI/CD 안정성 강화: 동시 배포 방지, 자기 재빌드 제거, 헬스체크 추가
...
- deploy.sh: flock으로 동시 배포 방지, deployer를 빌드 대상에서 제외
- deploy.sh: 배포 후 헬스체크 (4개 서비스 /health 확인)
- deploy.sh: 릴리즈 백업 최근 5개만 유지, 원자적 백업 (mv)
- deploy-nas.sh: .env 동기화 제거 (운영 시크릿 보호), __pycache__ 제외
- deployer: threading.Lock으로 동시 배포 방어, TimeoutExpired 개별 처리
- docker-compose: deployer 포트 localhost 바인딩, stock-lab 환경변수 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-03 01:20:25 +09:00
0aa12d94c5
deployer: docker-compose → docker compose (v2) 수정
...
NAS Docker v2에서 docker-compose 명령어 없음 오류 수정.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-25 04:14:06 +09:00
7ab0733400
NAS 기본 설정 변경
2026-03-21 10:46:09 +09:00
d8e4e0461c
feat: add stock-lab service for financial news scraping and analysis
2026-01-26 02:56:52 +09:00
526d6a53e5
파일 권한 설정 추가
2026-01-26 01:17:40 +09:00
bd43c99221
fix: revert deployer to root and fix permissions in script
2026-01-26 00:35:26 +09:00
e1c3168d5c
fix: deploy.sh path detection for host execution
2026-01-26 00:01:08 +09:00
82cbae7ae2
webhook 설정 오류 수정
...
- deployer 배포 webhook 오류 설정 수정
2026-01-25 17:28:58 +09:00
a8b661b304
rename script folder
2026-01-25 15:44:39 +09:00