generated from ttipo/project-base
93147b88b7
- ClamAV 1.4.6 LTS 를 둘로 나눴다: clamd 는 백엔드와만 닿는 internal 네트워크(바깥 길 없음 · 서명 볼륨 읽기 전용), freshclam 은 자기 바깥 길에만. 비-root · cap_drop ALL. 운영은 늘 뜨고 개발은 profile clamav. clamd.conf 는 한 파일 한도 2047M 까지 끝까지 검사하고 암호 · 한도 초과를 판정으로 알린다(실측표는 mail/README). 검사 중에 죽으면 남던 임시 파일을 띄울 때 지운다. - nginx 를 포털 · 공개 내려받기(files.) 두 server 로 가른다(SHARE_PUBLIC_URL 과 CORS_ORIGIN 의 호스트 비교 — 같으면 포털이 함께 연다). 조각 PUT 17m, 받기는 버퍼링 · 압축 끔 + X-Accel-Buffering 넘김 + 머리글 버퍼 16k, limit_conn 은 X-Forwarded-For 마지막 칸으로 IP 마다 공개 10 · 앱 안 30, 전체 공개 400 · 앱 안 200. 받기 location 은 /api/ 블록 안의 대소문자를 가리지 않는 정규식이다(리뷰 — /FILES/ 같은 변형이 상한을 비켜 갔다). 접근 로그는 경로 모양과 43자 토큰 모양으로 토큰을 가린다. - 파일은 named volume <PROJECT_NAME>_files(개발도 — builder 단계가 /app/files 를 node 소유로 만든다), 백업하지 않는다. - CI infra 잡: nginx 두 꼴 · 받기 경로 변형 시험(가짜 백엔드) · clamconf(-n 없이 기본값까지) · 틀린 SHARE_PUBLIC_URL 거부. - mail/README: 악성 검사 · 공개 호스트 · NPM 칸(Advanced 다섯 줄) · 메모리 예산 · 문제 해결. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
65 lines
1.9 KiB
Plaintext
65 lines
1.9 KiB
Plaintext
# ==========================================
|
|
# 환경 변수 (민감정보) — 절대 커밋 금지
|
|
# ==========================================
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
!.env.*.example
|
|
|
|
# ==========================================
|
|
# 도커 영속 데이터
|
|
# ==========================================
|
|
# ⚠️ 루트 기준으로 고정한다(앞의 /). 'data/' 로 두면 모든 depth 의 data 디렉터리가 무시되어
|
|
# flutter/lib/features/<도메인>/data/ 같은 소스 코드까지 커밋되지 않는다.
|
|
# 디렉터리(/data/)가 아니라 내용(/data/*)을 무시하고 .gitkeep 만 추적한다 — 그래야 클론할 때 data/ 가
|
|
# 클론한 사용자 소유로 생긴다. 없으면 운영의 `sudo docker compose up` 이 root 소유로 만들어
|
|
# 메일 setup 스크립트가 data/mail/ 에 쓰지 못한다 (mail/README.md "운영 배포").
|
|
# (개발 DB·업로드 등 data/ 아래 내용은 모두 무시된다)
|
|
/data/*
|
|
!/data/.gitkeep
|
|
/db-data/
|
|
/redis-data/
|
|
# CI 러너 등록 정보
|
|
ci/runner-data/
|
|
# 업로드 파일 (로컬 저장) — 코드가 아니다
|
|
backend/uploads/
|
|
# 대용량 첨부 파일 (11단계 — FILE_STORAGE_DIR 의 기본값 ./files, 볼륨을 붙이지 않은 개발 · 호스트 실행) — 코드가 아니다
|
|
backend/files/
|
|
|
|
# ==========================================
|
|
# 의존성/빌드 산출물
|
|
# ==========================================
|
|
node_modules/
|
|
dist/
|
|
build/
|
|
coverage/
|
|
.tsbuildinfo
|
|
*.tsbuildinfo
|
|
|
|
# ==========================================
|
|
# 로그
|
|
# ==========================================
|
|
logs/
|
|
*.log
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
pnpm-debug.log*
|
|
|
|
# ==========================================
|
|
# IDE / OS
|
|
# ==========================================
|
|
.idea/
|
|
.vscode/*
|
|
!.vscode/extensions.json
|
|
!.vscode/settings.json
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# ==========================================
|
|
# 캐시
|
|
# ==========================================
|
|
.cache/
|
|
.eslintcache
|
|
.npm/
|