70438caa1f
fix(scripts): blog-lab → insta-lab in deploy/healthcheck service lists
...
배포 스크립트 hardcoded 서비스 리스트가 blog-lab을 참조해 머지 후
첫 webhook 배포가 rsync(/repo/blog-lab 없음) + docker compose
(서비스 미정의) 양쪽에서 실패. SERVICES/BUILD_TARGETS/HEALTH_ENDPOINTS/
DATA_DIRS를 insta-lab 기준으로 갱신. CONTAINER_NAMES는 blog-lab 고아
정리용으로 유지(다음번 docker rm -f가 안전 실행).
2026-05-16 01:51:45 +09:00
ace0339d33
refactor: rename stock-lab → stock (graduation)
...
- git mv stock-lab/ → stock/
- docker-compose.yml: 서비스 키 + container_name + build.context +
frontend.depends_on + agent-office STOCK_LAB_URL → STOCK_URL
- agent-office/app: config.py, service_proxy.py, agents/stock.py, tests/
STOCK_LAB_URL → STOCK_URL
- nginx/default.conf: proxy_pass http://stock-lab → http://stock (3 lines)
- CLAUDE.md / README.md / STATUS.md / scripts/ 문구 갱신
- stock/ 내부 자기 참조 갱신
lab 네이밍 정책 (feedback_lab_naming.md) graduation.
API URL / Python import / DB 파일명 변경 없음.
2026-05-15 01:45:44 +09:00
aec0fdcd31
fix(packs-lab): tier 디렉토리 제거(평면 구조) + deployer SERVICES에 packs-lab 추가
...
문제 1: deploy-nas.sh의 SERVICES 화이트리스트에 packs-lab이 빠져 있어
NAS 운영 디렉토리에 소스 sync가 안 됐고 docker compose가 packs-lab을
빌드 못해 컨테이너가 안 떠 있었다.
문제 2: routes.py가 PACK_BASE_DIR/{tier}/{filename} 트리 구조로 저장 →
사용자 요청에 따라 평면 구조(PACK_BASE_DIR/{filename})로 변경. tier 구분은
filename 규칙(prefix 등)으로 admin이 관리.
- scripts/deploy-nas.sh: SERVICES에 packs-lab 추가 (10개 → 11개)
- routes.py: tier 디렉토리 제거 (target = PACK_BASE_DIR / filename, host_path = PACK_HOST_DIR / filename)
- tests: tier 분기 사용처 평면 구조로 보정 (size_mismatch / host_path_check)
- 25/25 passing
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-11 02:54:25 +09:00
2a8635e9ed
refactor: backend→lotto 서비스 리네이밍 + lotto.db 레거시 테이블 스키마 제거
...
- backend/ → lotto/ 디렉토리 이동
- docker-compose: lotto-backend→lotto, lotto-frontend→frontend
- deploy scripts, nginx, agent-office config 네이밍 일괄 반영
- lotto/app/db.py에서 todos·blog_posts CREATE TABLE 제거 (personal로 이관 완료)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-27 17:29:13 +09:00
6c46759848
fix(deploy): deploy-nas.sh 전체 런타임 디렉토리에 chown+chmod 일괄 적용
...
서비스별 개별 처리 대신 $DST 전체에 대해 chown -R + chmod -R 755 수행.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-27 16:55:19 +09:00
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
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
447c6babc3
fix(deployer): chown 경고 제거 — numeric UID/GID + idempotent 처리
...
Synology ACL이 username 기반 chown을 거부하고 컨테이너 내부에 bgg8988
사용자가 없어 매 배포마다 WARN 로그가 쏟아지던 문제 해결.
- PUID/PGID 환경변수를 deployer 컨테이너에 전달
- find로 소유자가 다른 항목만 골라 numeric chown (idempotent)
- 실패는 silent — 어차피 파일 기능엔 영향 없음
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-15 20:33:16 +09:00
6e18782d3b
fix(deploy): chown silent failure 제거 + 에러 로그 출력
...
- 2>/dev/null || true 조합이 Synology ACL 실패를 완전히 숨겨
신규 생성 디렉토리가 root:root로 남는 문제 해결
- chown/chmod 실패 시 WARN 로그 출력 및 CHOWN_FAILED 플래그
- trailing slash 제거로 디렉토리 자체도 재귀 chown 대상에 포함
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-13 01:51:41 +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
a3f9f1cb39
fix(deploy): agent-office를 배포 rsync 대상에 추가
...
deploy-nas.sh의 rsync/chown 루프에 agent-office 디렉토리가
누락되어 NAS 런타임에 복사되지 않던 문제 수정.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-11 14:23:52 +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
a542b1af7d
fix(deployer): chown/chmod 실패 시 에러 무시 — 비root 사용자 호환
...
호스트에서 bgg8988으로 실행 시 root 소유 파일 chown 불가 허용.
deployer 컨테이너(root)에서는 정상 동작.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-06 21:39:18 +09:00
3ce93149d5
fix(deployer): rsync 타임스탬프 보존 제거 + non-critical 에러 허용
...
-t 플래그 제거 (Operation not permitted 방지), exit code 23 허용.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-06 21:38:03 +09:00
5530402604
fix(deployer): rsync에서 소유자/그룹 보존 비활성화 — chgrp 권한 오류 해결
...
-a 대신 -rlpt --no-owner --no-group 사용. 소유권은 이후 chown으로 설정.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-06 21:36:59 +09:00
cb750f888b
fix(deployer): 배포 후 파일 권한 bgg8988:users 755로 설정
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-06 21:34:56 +09:00
0be5693aee
infra: realestate-lab Docker/Nginx/배포 스크립트 통합
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-06 08:32:08 +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
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
c7e12ea9fe
deploy: music-lab rsync 항목 추가
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-21 23:03:03 +09:00
2493bc72fb
stock_lab 배포 경로 추가될 수 있게 추가
2026-01-26 03:19:25 +09:00
64c526488a
fix: deploy-nas.sh path detection for host execution
2026-01-25 19:10:23 +09:00
c655b655c9
deploy-nas.sh 스크립트 수행 오류 수정
2026-01-25 19:09:04 +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