-
hanyul released this
2026-10-26 16:16:59 +09:00 6.6.2 주요 변경사항
오프라인 배너 오탐, 수집 중 상태 문구, 패스키 등록 아이디 입력을 고친 6.6.2입니다.
화면
- 실제로 연결이 끊긴 경우에만
오프라인 상태입니다. 연결되면 이어서 불러옵니다.를 표시합니다. 브라우저가 오프라인이라고 알려도GET /api/health/live로 먼저 확인하고, 응답 없이 실패할 때만 오프라인으로 봅니다. API 응답이 하나라도 도착하면 바로 사라집니다. - 같은 판정을 조회 일시정지와 연결 복귀 재시도에도 써서, 연결된 상태에서 조회가 멈추지 않습니다.
로그인
- 가입의
패스키 등록버튼은 아이디가 3자 미만이면 비활성입니다. 같은 칸이 관리자 보안 키도 받으므로 그 밖의 아이디 규칙은 서버가 확인합니다.
운영 화면
- Hitomi·E-Hentai 수집이 실행 중이면 상태 문구를 표시하지 않습니다. 재개 대기·보호 대기·오류·예약 건너뜀·완료 문구는 그대로 보입니다.
- Hitomi 수집을 시작하거나 재개해도
시작했습니다·재개했습니다문구를 남기지 않습니다.
이미지
backend(log-reader)·crawler·web을 새로 빌드했고, nginx·byedpi는 직전 이미지에
6.6.2태그를 붙였습니다. 다섯 서비스 모두6.6.2와latest를 가집니다.NAS 업데이트와 주의사항
운영은 운영 반영을 따릅니다.
- rollback:
IMAGE_TAG=6.6.1 sh ops/deploy-production.sh로 되돌릴 수 있습니다.
Downloads 2
-
Source code (zip)
0
2026-10-26 16:16:59 +09:00 -
Source code (tar.gz)
0
2026-10-26 16:16:59 +09:00
- 실제로 연결이 끊긴 경우에만
-
hanyul released this
2026-10-26 13:50:04 +09:00 6.6.1 주요 변경사항
운영 화면의 가비지 컬렉션 영역을 정리하고 Hitomi 재개 뒤 남던 대기 문구를 고친 6.6.1입니다.
운영 화면
- 가비지 컬렉션 정리 대상에서
불완전한 갤러리항목을 숨겼습니다. 정리 명령에 포함되지 않는 통계라 화면에서 뺐고, 상태 API의orphaned값은 그대로 남습니다. - 남은 세 항목(삭제 대기 이미지·블랙리스트 갤러리·완료 상태 불일치)을 한 줄에 배치했습니다.
수집
- Hitomi 체크포인트를 재개해 수집이 진행 중인데도
크롤러가 재시작되어 체크포인트 재개를 기다리고 있습니다.가 계속 보이던 문제를 고쳤습니다. 관리자·예약·자동 재개 모두 재개할 때Hitomi 수집 작업을 재개했습니다.로 바뀝니다.
이미지
backend(log-reader)·crawler·web을 새로 빌드했고, nginx·byedpi는 직전 이미지에
6.6.1태그를 붙였습니다. 다섯 서비스 모두6.6.1과latest를 가집니다.NAS 업데이트와 주의사항
운영은 운영 반영을 따릅니다.
- rollback:
IMAGE_TAG=6.6.0 sh ops/deploy-production.sh로 되돌릴 수 있습니다.
Downloads 2
-
Source code (zip)
0
2026-10-26 13:50:04 +09:00 -
Source code (tar.gz)
0
2026-10-26 13:50:04 +09:00
- 가비지 컬렉션 정리 대상에서
-
hanyul released this
2026-10-26 11:21:15 +09:00 6.6.0 주요 변경사항
검색창 태그 추천을 분류별로 나누고 보조 줄에 작품 수를 다시 표시하는 6.6.0입니다.
검색
- 같은 이름이 여러 분류에 있으면 분류마다 따로 추천합니다. 예:
sailor moon은패러디 · 작품 133개와캐릭터 · 작품 24개두 항목으로 보입니다. - 추천을 고르면 그 분류의 태그 조건(
parody:"sailor moon")이 적용됩니다. 이전에는 분류 없이 이름만으로 검색했습니다. - 보조 줄은
분류 · 원문 이름(번역된 경우) · 작품 N개순서입니다. 카테고리 추천은카테고리 · 작품 N개로 보입니다.
API
GET /api/tags/search?groupBy=name이 이름별로 묶지 않고 분류별 tag를 반환합니다(namespace는 실제 분류,galleryCount=usageCount). 응답의namespaces필드를 제거했습니다.
이미지
backend(log-reader)·web을 새로 빌드했고, crawler·nginx·byedpi는 직전 이미지에
6.6.0태그를 붙였습니다. 다섯 서비스 모두6.6.0과latest를 가집니다.NAS 업데이트와 주의사항
운영은 운영 반영을 따릅니다.
- rollback:
IMAGE_TAG=6.5.0 sh ops/deploy-production.sh로 되돌릴 수 있습니다.
Downloads 2
-
Source code (zip)
0
2026-10-26 11:21:15 +09:00 -
Source code (tar.gz)
0
2026-10-26 11:21:15 +09:00
- 같은 이름이 여러 분류에 있으면 분류마다 따로 추천합니다. 예:
-
hanyul released this
2026-10-26 09:35:32 +09:00 6.5.0 주요 변경사항
자동 증분 수집 시각을 조정하고 E-Hentai 예약 증분을 추가했으며, Hitomi·E-Hentai 수집 상태 화면을 같은 용어와 항목으로 맞춘 6.5.0입니다.
자동 증분 수집
- Hitomi 예약 증분이 매일 19:30(Asia/Seoul)에 실행됩니다(이전 20:00).
- E-Hentai 예약 증분을 매일 21:30에 추가했습니다. 관리자 시작과 같은 경로로 새
incremental만 시작합니다. - E-Hentai 예약은 진행 중이거나 재개 대기인 작업, 보호 대기, 증분 기준선 없음 중 하나라도 해당하면 기존 작업을 건드리지 않고 그날 실행을 건너뜁니다. 건너뛴 사유와 다음 실행 시각은 상태 API(
nextRunAt·scheduledSkip)와 운영 화면에 보입니다. - 증분 기준선은
full이 검색 끝까지 완료되어야 생기므로, 진행 중인 E-Hentaifull이 끝나기 전까지 21:30 예약은 건너뜀으로 기록됩니다.
운영 화면
- Hitomi·E-Hentai 수집 상태가 같은 항목과 순서로 보입니다: 실행 모드, 수집 목표, 현재 갤러리, 현재 단계, 최신 ID, 마지막 처리 ID, 이미지 진행, 다음 자동 실행, 마지막 성공.
- 수집 목표 문구를 통일했습니다. 전체 수집은
최신 ID부터 1까지, 증분 수집은증분 기준선 이후입니다. - E-Hentai에 최신 ID·마지막 처리 ID·다음 자동 실행을 표시하고
목록 위치를 지웠습니다. E-Hentai 상태 API에latestKnownGid·lastProcessedGid를 추가했습니다.
이미지
backend(log-reader)·crawler·web을 새로 빌드했고, nginx·byedpi는 직전 이미지에
6.5.0태그를 붙였습니다. 다섯 서비스 모두6.5.0과latest를 가집니다.NAS 업데이트와 주의사항
운영은 운영 반영을 따릅니다.
- rollback:
IMAGE_TAG=6.4.0 sh ops/deploy-production.sh로 되돌릴 수 있습니다.
Downloads 2
-
Source code (zip)
0
2026-10-26 09:35:32 +09:00 -
Source code (tar.gz)
0
2026-10-26 09:35:32 +09:00
-
hanyul released this
2026-10-26 01:18:28 +09:00 6.4.0 주요 변경사항
crawler의 직접 인터넷 경로를 막아 byedpi만 외부로 나가게 하는 6.4.0입니다.
네트워크
2exhentai_network(postgres·redis·minio·backend·crawler)를 내부 전용(internal)으로 바꿨습니다. backend는 기존처럼2exhentai_edge로 외부에 연결합니다(릴리스 확인·Turnstile·웹 푸시).- crawler와 byedpi 사이는 새 내부 전용 네트워크
2exhentai_crawler_proxy로 연결하고, 외부 연결은 byedpi 전용2exhentai_byedpi_egress만 씁니다.2exhentai_crawler_egress는 없어졌습니다. - crawler가 직접 외부에 연결하면 실패하고, Hitomi·E-Hentai 요청은 byedpi를 통해서만 나갑니다. crawler의 외부 DNS 설정도 지웠습니다.
이미지
backend(log-reader)를 새로 빌드했고, crawler·web·nginx·byedpi는 직전 이미지에
6.4.0태그를 붙였습니다. 다섯 서비스 모두6.4.0과latest를 가집니다.NAS 업데이트와 주의사항
운영은 운영 반영을 따릅니다.
- 새
compose.yml·ops/deploy-production.sh로 배포합니다. 기존 네트워크는 내부 전용으로 바꿀 수 없어, 배포 스크립트가 처음 한 번 postgres·redis·minio·backend·crawler·byedpi를 멈추고 이전 네트워크를 지운 뒤 새 네트워크로 다시 띄웁니다. backend가 다시 healthy가 될 때까지 몇 분간 서비스가 멈춥니다. 데이터 디렉터리는 그대로입니다. - 이전 네트워크에 이 배포 밖의 컨테이너가 붙어 있으면 아무것도 멈추지 않고 종료하므로, 그 컨테이너를 분리한 뒤 다시 실행합니다.
- rollback:
IMAGE_TAG=6.3.0으로 되돌릴 때는 운영 반영의 rollback 안내를 따릅니다.
Downloads 2
-
Source code (zip)
0
2026-10-26 01:18:28 +09:00 -
Source code (tar.gz)
0
2026-10-26 01:18:28 +09:00
-
hanyul released this
2026-10-26 00:34:19 +09:00 6.3.0 주요 변경사항
Hitomi·E-Hentai 수집 요청을 항상 ByeDPI로 보내는 6.3.0입니다.
수집 전송
- Hitomi·E-Hentai의 모든 요청(목록·detail·API·스크립트·이미지)이 ByeDPI SOCKS proxy로만 나갑니다. 직접 연결을 먼저 시도하거나 직접 연결로 되돌아가지 않습니다.
E-Hentai 전송 실패: ByeDPI로 재시도합니다같은 fallback 로그가 없어졌습니다.- ByeDPI에 연결할 수 없으면
proxy-unavailable로 분류해 수집을 멈추고, 연결 reset·timeout은 일반 재시도로 처리합니다. EHENTAI_DPI_PROXY_URL·HITOMI_DPI_PROXY_URL이 비어 있으면 그 source의 요청을 보내지 않고 오류로 남깁니다(Compose 기본값은socks5h://byedpi:1080).
운영 화면
- 정리 패널의
완료 상태 불일치에서 잘못된 완료 확인 시각 표기를 지웠습니다.
이미지
backend(log-reader)·crawler·web을 새로 빌드했고, nginx·byedpi는 직전 이미지에
6.3.0태그를 붙였습니다. 다섯 서비스 모두6.3.0과latest를 가집니다.NAS 업데이트와 주의사항
운영은 운영 반영을 따릅니다.
- 새
compose.yml로 배포합니다. crawler 환경에서HITOMI_DPI_CIRCUIT_TTL_MS·HITOMI_DPI_RESET_THRESHOLD·HITOMI_DPI_PROXY_HOSTS가 빠졌습니다..env.production에 남아 있어도 무시되며 지워도 됩니다. - rollback:
IMAGE_TAG=6.2.1 sh ops/deploy-production.sh로 되돌릴 수 있습니다.
Downloads 2
-
Source code (zip)
0
2026-10-26 00:34:19 +09:00 -
Source code (tar.gz)
0
2026-10-26 00:34:19 +09:00
-
hanyul released this
2026-10-25 23:51:31 +09:00 6.2.1 주요 변경사항
검색창 태그 추천에 작품 수 대신 태그 분류를 보여 주는 6.2.1입니다. 데이터와 schema는 바뀌지 않습니다.
검색
- 홈 검색창의 태그 추천 보조 줄이
작품 N개대신 패러디·작가·캐릭터·그룹·여성·남성 같은 분류를 보여 줍니다. 같은 이름이 여러 분류에 있으면패러디 · 캐릭터처럼 함께 표시합니다. - 번역된 태그는 분류 옆에 원문 이름을 계속 보여 주고, 카테고리 추천은
카테고리로 표시합니다. GET /api/tags/search의 이름별 추천 항목에 그 이름이 속한 분류 목록namespaces를 추가했습니다. 기존 필드는 그대로입니다.
반영 SQL
없습니다.
이미지
backend(log-reader)·web을 새로 빌드했고, crawler·nginx·byedpi는 직전 이미지에
6.2.1태그를 붙였습니다. 다섯 서비스 모두6.2.1과latest를 가집니다.NAS 업데이트와 주의사항
운영은 운영 반영을 따릅니다.
- 새 환경 키와 Compose 변경은 없습니다.
- rollback: schema 변경이 없으므로
IMAGE_TAG=6.2.0 sh ops/deploy-production.sh로 되돌릴 수 있습니다.
Downloads 2
-
Source code (zip)
0
2026-10-25 23:51:31 +09:00 -
Source code (tar.gz)
0
2026-10-25 23:51:31 +09:00
- 홈 검색창의 태그 추천 보조 줄이
-
hanyul released this
2026-10-25 19:29:27 +09:00 6.2.0 주요 변경사항
이미지 검색의 영역 선택 기능을 없애고, 프로젝트 문서를 현재 코드에 맞춰 정리한 6.2.0입니다. 기존 데이터와 schema는 바뀌지 않습니다.
제거한 기능·API
- 홈 이미지 검색의
영역 선택창과 선택 영역 재검색을 지웠습니다. 결과 위의 선택 영역 안내 문구도 없어졌습니다. POST /api/image-search는image파일 하나만 받습니다.crop필드를 포함해 이미지 외 필드를 보내면400입니다.- 응답
query.region은original·trimmed만 반환합니다(cropped제거). - 어두운 테두리·상태 표시줄 자동 제거, 좌우 반전, 가로로 긴 영역의 90° 회전 검색과 browser 축소는 그대로입니다.
문서
docs/,.agents/,README.md,AGENTS.md,tests/README.md를 현재 코드·설정·배포 방식에 맞추고, 긴 문단을 표·목록·단계로 나눠 읽기 쉽게 정리했습니다.
반영 SQL
없습니다.
이미지
backend(log-reader)·crawler·web을 새로 빌드했고, nginx·byedpi는 6.1.0 이미지에
6.2.0태그를 붙였습니다. 다섯 서비스 모두6.2.0과latest를 가집니다.NAS 업데이트와 주의사항
운영은 운영 반영을 따릅니다.
- 새 환경 키와 Compose 변경은 없습니다.
- web과 backend를 함께 배포합니다. 배포 전에 열어 둔 화면에서 영역 선택 재검색을 보내면
400이 나며, 새로고침하면 해결됩니다. - rollback: schema 변경이 없으므로
IMAGE_TAG=6.1.0 sh ops/deploy-production.sh로 되돌릴 수 있습니다.
Downloads 2
-
Source code (zip)
0
2026-10-25 19:29:27 +09:00 -
Source code (tar.gz)
0
2026-10-25 19:29:27 +09:00
- 홈 이미지 검색의
-
hanyul released this
2026-10-25 16:25:34 +09:00 6.1.0 주요 변경사항
쓰지 않는 기능과 이전 버전 호환 코드를 정리하고, 이미지를 버전 태그로만 관리하도록 게시·배포를 바꾼 6.1.0입니다. 기존 데이터는 그대로 유지되며, 앱이 읽지 않던 테이블·컬럼만 지웁니다.
제거한 기능·API
- 상세 창의 비슷한 작품 줄과
GET /api/galleries/:id/related를 지웠습니다. GET /api/health/detailed를 지웠습니다. 구성 요소 상태는/api/health/dependencies, 버전은 운영 화면의 버전·릴리스에서 확인합니다.- 이전 화면용 orphan audit 단일 batch 경로(
POST /api/crawler/garbage-collection/orphan-audit)를 지웠습니다. 운영 화면은 백그라운드 실행(orphan-audit/run·stop)만 씁니다. - 작가·그룹 모아보기는 cursor로만 이어 받습니다(offset
page요청은400). 검색 요청의source필드도 받지 않습니다. VIEWER_RISK_MODE(shadow 모드)를 지웠습니다. viewer 위험 판정은 항상 적용(enforce)되며, grant마다 남기던 info 로그도 없어졌습니다.- 이전 버전과 섞여 실행될 때만 쓰던 web·backend·crawler의 호환 처리(북마크·모아보기 이어 받기 fallback, 옛
?search=·source=홈 URL, 옛 PWA 캐시·설정 이전 등)를 지웠습니다.
수집·운영
- 크기 제한을 넘는 JPEG·PNG·GIF 원본을 재시도하지 않는 이미지 정책 오류로 처리합니다.
- E-Hentai 저장 전 중복 상태 조회를 없애고, 수집 중 차단 규칙은 캐시한 규칙으로 거릅니다. metadata 통계를 읽지 못하면 unified-status 오류 목록에 보입니다.
- 이전 릴리스가 저장한 수집 checkpoint·재확인 누계는 그대로 읽고 재개합니다.
- crawler 로그 cursor(
since)를 밀리초 아래 정밀도까지 지킵니다.
게시·배포
- 이미지 sha256 digest, 릴리스 manifest(
ops/releases/), 빌드 입력 지문, 기반 이미지 digest 고정을 없앴습니다. 다섯 서비스가 모든 릴리스의 버전 태그를 가지며, 배포·rollback은IMAGE_TAG=<버전>하나로 합니다.RELEASE_MANIFEST와<SERVICE>_IMAGE변수는 더 이상 쓰지 않습니다. - 게시 스크립트를 다시 실행하면 이미 있는 버전 태그는 건너뛰고, 다섯 서비스의 버전 태그가 모두 있어야
latest를 옮깁니다.
의존성·내부 정리
- npm 의존성을 최신 stable로 올렸습니다(Next.js 16.4.3, AWS SDK S3 3.1156.0 등). 알려진 취약점 advisory는 0건입니다.
- prettier·turbo를 지우고 빌드는 npm workspace script로 합니다.
- 중복 검증·중복 로직·쓰지 않는 export와 설정, 구현만 따라가던 테스트를 정리했습니다. 태그 번역 검사는 회차별 fixture 대신 사전 불변 조건으로 바꿨습니다.
반영 SQL
배포 때 자동 반영이 아래 순서로 한 번씩 실행합니다. 모두
배포 전,crawler 정지: 불필요이며 앱이 읽지 않는 대상만 지웁니다.파일 내용 20261025-02-drop-blacklist-rule-priority.sql쓰지 않는 blacklist_rules.priority컬럼 삭제20261025-03-drop-legacy-tables.sql이전 설치의 migrations·typeorm_metadata·crawl_attempts테이블 삭제이미지
다섯 서비스(byedpi·nginx·backend(log-reader)·crawler·web)를 모두 새로 빌드해
6.1.0과latest로 게시했습니다.NAS 업데이트와 주의사항
운영은 운영 반영과 기존 설치 schema 반영을 따릅니다.
- 새
compose.yml·ops/deploy-production.sh로 배포합니다. 이미지 변수(<SERVICE>_IMAGE)와VIEWER_RISK_MODE,CRAWLER_API_URL줄이 Compose에서 빠졌습니다. - 환경 키:
.env.production의VIEWER_RISK_MODE는 지워도 되며 남아 있어도 무시됩니다. 새 키는 없습니다. - viewer 위험 판정: shadow로 운영하던 설치는 이 버전부터 판정이 실제로 적용됩니다.
- 반영 결과는 배포 출력과
[schema-upgrade]로그,schema_upgrades원장으로 확인합니다. - rollback: 지운 테이블·컬럼은 5.14.0 이후 이미지가 읽지 않으므로 6.0.0으로 되돌릴 수 있습니다. 6.0.0의 byedpi에는
6.0.0태그가 없으므로(5.22.4이미지) 운영 반영의 rollback 안내대로 태그를 먼저 확인합니다.
Downloads 2
-
Source code (zip)
0
2026-10-25 16:25:34 +09:00 -
Source code (tar.gz)
0
2026-10-25 16:25:34 +09:00
- 상세 창의 비슷한 작품 줄과
-
hanyul released this
2026-10-25 10:42:44 +09:00 6.0.0 주요 변경사항
기존 설치의 schema 반영이 수동 SQL에서 자동 반영으로 바뀌고 배포 스크립트·Compose 계약이 함께 바뀌어 major 6.0.0으로 게시합니다. 기존 데이터는 그대로 유지됩니다.
자동 schema 반영과 배포
- backend·crawler가 시작 전에
sql/upgrades/반영 파일을 원장(schema_upgrades)에 기록하며 한 번씩 적용합니다. 파일 내용이 원장과 다르면 시작하지 않습니다. ops/deploy-production.sh가 서비스를 교체하기 전에 새 crawler 이미지로배포 전파일을 적용하고, 새 backend·crawler 이미지의 읽기 전용 schema 확인을 통과해야 교체합니다.crawler 정지: 필요파일이면 crawler를 멈춘 뒤 다시 실행하고,/api/health/ready뒤 배포 완료 단계에서배포 후파일을 적용합니다.- 중지된 기존 PostgreSQL을 최초 설치로 보지 않고, 배포 전 schema 확인 없이 교체하지 않습니다.
- 게시가 릴리스 manifest(
ops/releases/<버전>.env)를 남기고,RELEASE_MANIFEST로 게시 때 확인한 digest 그대로 배포·rollback할 수 있습니다.
검색·작품
- 검색창에
shirabe_shiki처럼_로 이은 이름이나artist:shirabe_shiki를 붙여넣어도 작가 태그가 제안되고, 그대로 검색해도shirabe shiki작품이 나옵니다. - 상세 창에 비슷한 작품 줄을 추가했습니다.
- 업로드 이미지 검색에 좌우 반전·회전·선택 영역 질의와 질의 설명을 추가하고, 큰 이미지는 업로드 전에 줄입니다.
알림
- 저장한 검색에 새 작품이 들어오면 Push 알림을 보냅니다(사용자별 24시간 20건). 저장한 검색마다 알림을 켜고 끌 수 있습니다.
- 관리자 운영 Push 알림: crawler 연결 불가, E-Hentai 수집 실패·보호 정지를 알리고 같은 사건은 한 번만 보냅니다.
- 작가 알림에 공개 노출과 개인 차단을 적용합니다. 재시도 가능한 알림의 발송 기록을 보존하고 발송 기록에 보존 기간을 둡니다.
계정·패스키
- 패스키 실패는 화면에 고정 문장 하나("패스키를 추가하지 못했습니다." 등)로만 보이고, 진단 정보 복사는 운영자에게만 보입니다.
- 패스키 자동 완성 대기를 서버 ceremony 기한 전에 끝내고 입력칸 포커스 때 다시 겁니다.
- 전역 오류 화면과 열거 값만 받는 브라우저 실패 보고를 추가했습니다.
- 계정 내보내기에 Push 구독·알림 기록과 다시 받기로 보관 중인 기록을 포함합니다. 전체 session 종료를 DB 시각으로 보장합니다.
수집과 운영
- Hitomi: 새 완료 작품 재확인과 파일 변경 작품 다시 받기를 추가했습니다. 다시 받아도 북마크·읽기 기록·알림 기록이 새 작품으로 옮겨지고, 다시 받기가 실패하면 보관해 운영 화면에 건수를 보여 줍니다. 같은 작품 반복 정지는 보류하고 정지 작품을 격리할 수 있습니다.
- E-Hentai: 목록·상세 요청 재시도, 상세 반복 실패 격리(알 수 없는 안내는 일시 실패), gdata 사전 제외, 버전 계보 저장과 새 버전 안내·중복 사전 후보를 추가했습니다. latest가 증분 기준선을 옮기지 않습니다.
- 중복 검토에 보존 추천과 연결된 후보 함께 정리를 추가했습니다.
- 운영 화면에 backend 5xx 원인 분류·5xx·DB 대기 지표·route별 상태와 수집 처리량의 storage lock 대기 단계를 보여 줍니다. 실시간 로그는 PostgreSQL 문장을 가립니다.
- 운영 점검에 보안 설정·PostgreSQL 진단을 더하고 MinIO 용량 확인은 선택 실행으로 바꿨습니다. 처리량·상위 문장 읽기 전용 SQL(
ops/crawl-throughput.sql,ops/top-statements.sql)을 추가했습니다.
성능·안정성
- 이미지 색인 통계를 전수 join 없이 집계하고 집계 간격을 지킵니다(PostgreSQL 임시 파일 대량 기록 원인).
- GC 통계·정리가 후보 작품만 읽고(부분 index 추가) orphan audit는 백그라운드로 실행합니다.
- 요청 지표를 합산해 15초마다 기록하고 요청 예산 Lua를 EVALSHA로 보냅니다. Hitomi 404 원본 삭제 표시를 묶어 처리합니다.
- Redis 멈춤을 무응답 시간으로 판정하고 RDB 저장을 1시간 1회로 줄였습니다. 잠금 안 S3 호출에 전체 deadline을 둡니다.
- PostgreSQL에
pg_stat_statements와 느린 문장·lock 대기·임시 파일 로그를 켰습니다. - 다른
PHASH_VERSION지문을 만나면 색인이 지문을 지우지 않고 멈춥니다. - nginx가 container 재생성 중 DNS 실패로 upstream을 비우던 구간을 30초에서 5초로 줄였습니다.
- viewer 렌더링·preload·진행률 조회, 모아보기·북마크 목록 이어 받기의 count 반복, dashboard·읽기 기록 export 조회를 줄였습니다. React Query 기본 재시도는 연결 단절·5xx에만 합니다.
반영 SQL
배포 때 자동 반영이 아래 순서로 한 번씩 실행합니다. 모두
배포 전,crawler 정지: 불필요이며 추가 변경이라 데이터를 바꾸지 않습니다.파일 내용 20261024-01-session-revoke-and-cascade-indexes.sqlusers.sessions_revoked_at컬럼, 북마크·작가 북마크·발송 기록 index(CONCURRENTLY)20261024-02-pg-stat-statements.sqlpg_stat_statements확장20261024-03-gc-candidate-indexes.sqlimages·galleriesGC 후보 부분 index 3개(CONCURRENTLY, 운영 규모에서 오래 걸릴 수 있음)20261024-04-saved-search-and-admin-alerts.sql저장한 검색 알림 컬럼, 관리자 운영 알림 테이블 20261025-01-gallery-refetch-holds.sql다시 받기 개인 기록 보관 테이블과 보관·되돌리기 함수 이미지 게시 범위
-ChangedOnly게시입니다. 버전 태그6.0.0은 새로 빌드한 서비스에만 있습니다.서비스 6.0.0 digest backend(log-reader) 새 빌드 sha256:a694729c…crawler 새 빌드 sha256:01d61dc7…web 새 빌드 sha256:5907d2ee…nginx 새 빌드(resolver 변경) sha256:92d8cc32…byedpi 재사용(5.22.4) sha256:d0343125…릴리스 manifest:
ops/releases/6.0.0.envNAS 업데이트와 주의사항
운영은 운영 반영과 기존 설치 schema 반영을 따릅니다.
- 반드시 새
compose.yml·ops/deploy-production.sh로 배포합니다.backend-schema-check서비스, manifest 이미지 변수, PostgreSQL·Redis 설정이 새 Compose에 있습니다. - PostgreSQL·Redis 재생성: PostgreSQL command(
pg_stat_statementspreload·진단 로그)와 Redis 저장 설정이 바뀌어 두 컨테이너가 다시 만들어집니다. 짧은 DB 중단이 있습니다. - Watchtower:
20261024-03이 큰 테이블에 index를 만들므로 Watchtower를 멈추고 배포 스크립트로 배포합니다. Watchtower가 먼저 교체하면 반영이 끝날 때까지 backend·crawler가 멈춥니다. - 반영 결과는 배포 출력과
[schema-upgrade]로그,schema_upgrades원장으로 확인합니다. - 환경 키 변경은 없습니다.
- rollback: 반영 SQL은 모두 추가 변경이라 5.22.4 이미지로 되돌려도 새 컬럼·테이블·index를 무시합니다. 5.22.4 이하는 manifest가 없으므로 운영 반영의
IMAGE_TAG블록을 따르며,-ChangedOnly게시라 서비스별 이전 태그를 먼저 확인합니다.
Downloads 2
-
Source code (zip)
0
2026-10-25 10:42:44 +09:00 -
Source code (tar.gz)
0
2026-10-25 10:42:44 +09:00
- backend·crawler가 시작 전에