o2o-site-AEO/.gitignore
Mina Choi 7a0d933a7a nginx: 서버마다 다른 설정을 git 에서 빼고 템플릿만 남긴다
site.conf 는 서버 환경에 딸린 파일이라 커밋 대상이 아니다. 이 레포가 .env·*.toml 에
이미 쓰고 있는 규약(*.example 만 커밋)을 그대로 적용한다.

★ 그냥 지우면 안 되는 이유를 .gitignore 주석에 적었다 — compose 가 이 파일을
bind mount 하는데(docker-compose.yml:224), 파일이 없으면 Docker 가 그 자리에
디렉토리를 만들어 nginx 가 설정 없이 뜬다. 클론 직후 example 을 복사해야 한다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019uYhHQdssRubirPirrdJJC
2026-08-31 14:33:04 +09:00

52 lines
2.1 KiB
Plaintext

# 환경변수: 실제 값(.env)은 커밋하지 않는다. 템플릿(.env.example)만 커밋한다.
.env
.env.*
!.env.example
# 설정: 시크릿 포함이라 커밋하지 않는다. *.example 만 커밋한다.
*.toml
!*.toml.example
# Python 바이트코드/캐시 — 절대 커밋하지 않는다.
__pycache__/
*.py[cod]
*$py.class
.pytest_cache/
# 가상환경
.venv/
venv/
# 생성물(FastAPI OpenAPI 스펙). 필요 시 재생성한다.
backend/openapi.json
# 발행 payload 는 frontend/site/payloads/.gitignore 가 단일 출처다 — 여기에 겹쳐 쓰지 않는다.
# 정적 산출물 — 운영에서는 Docker named volume(site-out)에 있고, 로컬에서 직접 구우면
# 여기 생긴다. 어느 쪽이든 payload 로 다시 굽는 재생성물이라 git 이 관리할 대상이 아니다.
frontend/site/out/
frontend/site/dist/
frontend/admin/dist/
# nginx 설정: 서버마다 다르므로 실제 파일은 커밋하지 않는다. 템플릿만 커밋한다.
# ★ compose(docker-compose.yml:224)가 ./nginx/site.conf 를 bind mount 한다 —
# 파일이 없으면 Docker 가 그 자리에 **디렉토리를 만들어** nginx 가 설정 없이 뜬다.
# 클론 직후 반드시: cp nginx/site.conf.example nginx/site.conf
nginx/site.conf
!nginx/site.conf.example
# OS
.DS_Store
# ── 에이전트 지침은 커밋한다 ──────────────────────────────────────────────
# AGENTS.md / CLAUDE.md 는 팀과 모든 에이전트가 공유하는 규약이라 반드시 커밋한다.
# 커밋 안 하면 클론한 사람이 "배포 후 republish_all.py 필수" 같은 함정을 전달받지 못한다.
#
# ★ `!CLAUDE.md` 를 지우지 말 것. 이 머신의 ~/.gitignore_global 이 CLAUDE.md 를 전역으로
# 무시하고 있어서, 레포 쪽에서 명시적으로 되살리지 않으면 심볼릭 링크가 커밋되지 않는다.
# (전역 설정은 사람마다 다르므로 레포가 스스로를 지킨다.)
!CLAUDE.md
# 개인용 오버라이드는 레포가 아니라 ~/.claude/CLAUDE.md 나 .claude/settings.local.json 에 둔다.
.claude/settings.local.json