# ========================================== # 백엔드 고유 설정 — 루트 .env 에서 내려주지 않는 값만 작성 (JWT/Gitea 등) # DB/Redis/CORS/포트 등은 docker-compose 가 루트 .env.development 에서 주입한다. # .example 을 복사해 .env.development 를 만들고 실제 값으로 채운다. # ========================================== # JWT 시크릿 (access/refresh 분리) — 임의의 강력한 랜덤 문자열로 교체 # 생성 예: node -e "console.log(require('crypto').randomBytes(48).toString('hex'))" JWT_ACCESS_SECRET=change-me-access-secret JWT_REFRESH_SECRET=change-me-refresh-secret # 토큰 만료 시간 JWT_ACCESS_TTL=15m JWT_REFRESH_TTL=14d # --- 앱 URL (소셜 로그인/이메일 인증 리다이렉트) --- # APP_API_URL: 백엔드 공개 주소(글로벌 prefix /api 포함) — 인증 메일 링크 생성에 사용. # 미설정 시 http://localhost:3100/api 로 폴백. APP_API_URL=http://localhost:3100/api # FRONTEND_URL: 프론트 공개 주소 — 인증 완료/소셜 로그인 후 이 주소로 리다이렉트. # 미설정 시 CORS_ORIGIN → http://localhost:5273 순으로 폴백. FRONTEND_URL=http://localhost:5273 # --- 소셜 로그인 (OAuth) --- # 각 제공자 콘솔에서 발급한 키. CLIENT_ID 가 비어 있으면 해당 소셜 로그인은 비활성화된다. # 콜백 URL 은 각 콘솔에 등록한 값과 정확히 일치해야 한다(글로벌 prefix /api 포함). KAKAO_CLIENT_ID=change-me-kakao-rest-api-key KAKAO_CLIENT_SECRET=change-me-kakao-client-secret KAKAO_CALLBACK_URL=http://localhost:3100/api/auth/kakao/callback GOOGLE_CLIENT_ID=change-me-google-client-id GOOGLE_CLIENT_SECRET=change-me-google-client-secret GOOGLE_CALLBACK_URL=http://localhost:3100/api/auth/google/callback # --- Gitea 연동 (외부 Gitea 인스턴스) --- # 세 값(BASE_URL/TOKEN/ORG)이 모두 채워져야 연동 활성화. 비우면 Gitea 동기화 없이 동작한다. # 저장소 생성/수정/삭제 시 GITEA_ORG 조직 아래 repo 가 자동 동기화된다. # GITEA_BASE_URL: 끝 슬래시 없이 (/api/v1 는 코드가 붙임) GITEA_BASE_URL=https://gitea.example.com # GITEA_TOKEN: 조직 권한을 가진 액세스 토큰 (Gitea Settings → Applications → Generate Token) GITEA_TOKEN=change-me-gitea-token # GITEA_ORG: 저장소가 생성될 조직 이름 (Relay 의 owner 로도 사용) GITEA_ORG=marketing-team # 템플릿 저장소(생성 시 복제) — 미설정 시 기본 TtiPo/project-base 사용. Gitea 에서 template 설정 필요 GITEA_TEMPLATE_OWNER=ttipo GITEA_TEMPLATE_REPO=project-base # import(역방향 동기화로 가져온, 멤버 0명) 저장소의 기본 owner-admin 으로 지정할 가입 사용자 이메일. # 동기화는 시스템 작업이라 실행 주체가 없으므로 여기서 지정한다. # 비우거나 미가입 이메일이면 import 저장소는 멤버 0명으로 남고(초대 불가), 가입 후 다음 동기화에서 지정된다. REPO_IMPORT_ADMIN_EMAIL=admin@example.com # --- AI 에이전트 (Claude) --- # Claude(Anthropic) API 키 — AI 에이전트 패널 연동용(추후). 미설정 시 AI 기능 비활성. CLAUDE_API_KEY=change-me-claude-api-key