• 4.2.0 — 수집 진행 확인 API, 모바일 메뉴·번역 개선, 백업 도구 정리

    4.1.4 대비 변경사항

    새 기능

    • 수집 진행 확인 API (Uptime Kuma용) — 공개 GET /api/health/crawling을 추가했습니다. 수집 중이면 200, 대기 중이면 503, crawler 상태를 확인할 수 없으면 503과 crawling: null을 반환합니다. 응답에는 crawling·source·jobType·startedAt만 포함합니다. Uptime Kuma HTTP 모니터에서 수집 중일 때 UP으로 표시되며, 대기 상태를 알림으로 받지 않으려면 Upside Down 모드나 Keyword 모니터를 사용하세요(운영 가이드).

    개선·수정

    • 모바일 메뉴 — 서버 상태에 아이콘을 붙이고 외부 링크 아이콘을 글자 바로 옆으로 옮겼습니다. 라이트 모드에서 북마크 별 아이콘이 흰색이라 보이지 않던 문제를 고쳤습니다(대시보드 통계의 북마크 아이콘 포함).
    • 가비지 컬렉션 화면 — 통계 카드와 실행 버튼 사이 간격을 줄였습니다.
    • 태그 번역 — 번역 누락 181개를 재검토해 92개를 번역하고 58개를 원문 유지로 정리했습니다. 31개는 동명 대상 때문에 표기가 갈려 보류했습니다.
    • 기본 전역 블랙리스트 — 새 설치와 기본값 재설정에 쓰는 목록을 현재 운영 설정과 같게 맞췄습니다(태그 141개, 갤러리 411개). 기존 DB의 블랙리스트는 바뀌지 않습니다.
    • 수집 로그 — 대상이 없는 범위 메타데이터 수집이 끝나면 확인한 시작 ID와 마지막 처리 ID를 함께 표시합니다.

    운영 도구

    • 백업 스크립트 제거 — 수동 실행용 ops/backup-production.sh, ops/restore-drill.sh, tests/run-backup-restore.ps1와 운영 감사의 백업 최신성 검사를 제거했습니다. 애플리케이션과 저장소는 백업을 수행하지 않으며, 데이터 보존은 운영자가 별도로 관리합니다(데이터 보존).
    • 운영 감사 — MinIO 사용량 700GiB 경고와 1TiB 중대 판정을 제거했습니다. 볼륨 사용률(82% 경고, 85% 중대) 검사는 유지합니다.

    문서

    • 오늘 변경을 반영해 문서를 다시 정리했습니다. 운영 가이드의 백업과 복구 절은 데이터 보존으로 바뀌었습니다. 문서 색인의 현재 계획에 MinIO 대체(PGSTY Silo in-place 전환 PoC, 조건부 SeaweedFS) 항목을 추가했습니다.

    새 공개 API가 추가되어 minor 버전입니다. DB 스키마·migration·환경 변수 변경은 없고 기존 API와 호환됩니다.

    이미지 게시 범위

    운영 빌드 입력 지문을 4.1.4 시점 latest와 대조해 backend·crawler·web만 새로 빌드하고 4.2.0·latest를 게시했습니다(publish-images.ps1 -ChangedOnly). byedpi·redis·nginx는 입력이 같아 기존 latest digest를 유지하며 4.2.0 태그를 추가하지 않았습니다. log-reader는 backend 이미지를 사용합니다. 전체 stack에는 기본 latest를 사용하세요.

    NAS 업데이트

    운영 스크립트와 문서가 바뀌었으므로 저장소를 먼저 갱신한 뒤 배포 스크립트를 실행합니다.

    cd /volume1/2ex-hentai
    git pull
    docker login git.2ex.dev
    sh ops/deploy-production.sh
    docker compose --env-file .env.production ps
    

    deploy-production.sh는 전체 pull을 먼저 마친 뒤 digest가 바뀐 backend·crawler·web(backend 이미지를 쓰는 log-reader 포함)만 교체합니다. DB migration은 없습니다. 이 릴리스는 변경 서비스에만 버전 태그가 있으므로 IMAGE_TAG로 전체 서비스를 일괄 지정할 수 없습니다.

    4.1.4 대비 전체 변경

    검증

    • Docker run-unit.ps1 -Workspace all 통과(shared lint·build, backend 61 suites·290 tests, crawler 49·371, web 98·675).
    • run-schema.ps1(기본 블랙리스트 seed 포함), run-operations.ps1 -DeploymentOnly, 개발 DB run-translation-coverage.ps1 통과.
    • 개발 stack 재빌드 후 backend·crawler·log-reader 재시작 0회, /api/health/crawling 대기 503 확인, Nginx 경유 390px 모바일 메뉴 확인(관리자 권한은 응답 대체 fixture).
    • 추적 Markdown 21개 로컬 링크·anchor 오류 0건.
    • 실행하지 않은 검증: 수집 중 200 응답의 실제 확인(단위 테스트로만 검증), 가비지 컬렉션 화면 시각 확인, 전체 integration(기존 1440px 갤러리 중앙정렬 PARTIAL 유지), 의존성 감사, NAS 배포.

    게시 확인

    • 릴리스 소스: 8dc63e2f7831bc1d2e01d7d9bac3822cd56bccd9 (주석 태그 4.2.0).
    • 4.2.0·latest digest
      • backend sha256:a0ff6d615403327a2ef4aaefe646867ee2832bda7235db021340d44c1505f748
      • crawler sha256:00c56153c4a3da1f5996d630d47bb48e4e1a9036681f3efd394bebc84fcc1994
      • web sha256:7e1baffa2d25618ea10dc963ec2d361f1c149d6dd50b633f20b6069cd4359bc9
    • 이미지 OCI version 4.2.0·revision 8dc63e2f 확인. byedpi·redis·nginx는 기존 latest digest 유지·4.2.0 태그 부재 확인.
    Downloads 2