프로젝트 소개
OpenPT는 프라이빗 트래커(PT) 시딩 시나리오를 겨냥한 경량 설정 기반 BitTorrent 트래커 알림 도구입니다. 이 도구는 .torrent 파일만으로 작동하며 실제 콘텐츠 다운로드가 필요하지 않습니다. 프로그램은 클라이언트가 트래커에 시딩 상태, 업로드 양, 포트 및 클라이언트 식별 정보를 주기적으로 보고하는 것을 시뮬레이션합니다. 데이터를 전송하는 대신 수치를 보고하므로 이는 BitTorrent 클라이언트가 아닌 시딩 시뮬레이션 유틸리티이며, 트래커 규칙 및 허용 사용 정책 준수는 운영자의 책임입니다.
문서화된 기능으로는 토렌트 디렉토리의 자동 스캔 및 .torrent 파일 로드, 동시 시드 수 제한 설정(0은 무제한), qBittorrent, Transmission, Deluge 및 uTorrent를 위한 클라이언트 스푸핑 파일, 지터(jitter) 및 갱신 간격을 포함한 세 가지 업로드 전략(none, conservative_rate, configured_rate), 트래커가 반환한 피어로부터 동적으로 할당되는 업로드 속도, 목표 공유 비율 도달 시 토렌트 중단, 알림 실패 후 지수 백오프 재시도, HTTP, HTTPS 및 UDP 트래커 지원, BitTorrent v1, 하이브리드 및 v2 전용 정보 해시, 손상되었거나 파싱할 수 없는 토렌트 파일의 자동 아카이빙, 재시작 후 재개를 위한 업로드 총량 및 완료 상태 유지, 토렌트 파일 삭제 시 알림 중단, Prometheus 형식의 메트릭 및 헬스 체크 엔드포인트 등이 있습니다.
배포 방법으로는 openpt --config config.toml로 실행하는 로컬 빌드 바이너리 또는 PUID/PGID 매핑과 토렌트 디렉토리를 포함한 ./data 볼륨을 사용하는 Docker Compose 기반의 공개 Docker 이미지 chenbin3625/openpt가 있습니다. 설정은 examples/config.example.toml에서 복사한 TOML 형식을 사용하며, simultaneous_seed, client, torrents_dir, clients_dir, archive_dir, state_file, 스캔 간격, 종료 중지 타임아웃, 업로드 전략 및 속도 범위, ratio_target, 알림 포트/IP/IPv6, 트래커 타임아웃, 프록시(HTTP 또는 SOCKS5, HTTP/HTTPS 트래커에만 사용되며 UDP 트래커는 명확한 오류 반환), 백오프 제한, 메트릭 리슨 주소 및 경로, 로깅 출력을 포함합니다.
내장 Web UI는 Vite, React 및 antd로 작성되었으며 go:embed를 통해 바이너리에 포함되어 있습니다. 빌드된 프론트엔드 결과물이 커밋되어 있으므로, 최신 클론을 Go 툴체인으로 직접 빌드하거나 테스트할 수 있습니다. UI에서는 활성 및 비정상 토렌트 수, 현재 업로드 속도, 총 업로드량, 다음 알림 시간, 토렌트별 크기, 업로드량, 속도, 피어 및 공유 비율, 최근/다음 알림 시간 및 간격, 트래커 호스트 및 스위치 인덱스, 상태 및 오류 세부 정보를 표시하며, 열 정렬, 상태 필터링 및 이름 또는 트래커별 검색 기능을 제공합니다. 메트릭 리스너는 /metrics와 /healthz를 제공하며, /healthz는 metrics.enabled가 false인 경우에도 사용 가능합니다. SIGHUP 신호를 보내면 일부 설정(동시 시드, 업로드 전략 및 속도, 비율 목표, 종료 중지 타임아웃, 알림 포트/IP/IPv6, 트래커 타임아웃, 프록시 및 백오프)이 핫 리로드되지만, 클라이언트 스푸핑 파일, 디렉토리, 상태 파일, 스캔 간격, 로그 파일 및 메트릭/Web UI 옵션은 재시작이 필요합니다.
기본적으로 announce.port = 0으로 설정하면 6881과 같은 일반적인 기본값을 재사용하는 대신 시작할 때마다 49152-65535 범위 내에서 무작위 동적 포트를 생성합니다. 이 프로젝트는 MIT 라이선스 하에 배포됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.