Gately v0.5.0 출시
2026년 10월 19일
Gately는 네트워크 가장자리에서 동작하며 DNS 키와 인증서 개인 키를 다룹니다. 그래서 동작을 직접 확인할 수 있어야 한다는 것이 처음부터 첫 번째 원칙이었습니다. v0.5.0은 이 원칙을 오픈소스 코드에서 추적 가능한 실행 단계로 넓힙니다. 누가 언제 무엇을 바꿨는지, 설정이 어떻게 바뀌어 왔는지, 내려받은 바이너리가 정말 공식 빌드인지를 모두 확인할 수 있습니다.
추적성: 감사 로그와 설정 기록
- 감사 로그: 로그인, 모든 설정 변경, 백업이나 개인 키 다운로드, 터미널 세션을 사용자, 출처 IP, 메서드, 경로와 함께 기록합니다. 요청 본문과 비밀 값은 저장하지 않습니다.
- 설정 기록과 원클릭 되돌리기: 설정 파일을 덮어쓸 때마다 이전 버전을 저장합니다(파일당 30개 보관). 줄 단위로 비교한 뒤 되돌릴 수 있고, 되돌리기 자체도 취소할 수 있습니다.
- 실제 클라이언트 주소: 관리 UI가 같은 호스트의 nginx, haproxy, Gately 웹 서비스 뒤에 있을 때 전달된 주소는 로컬 프록시에서 온 것만 신뢰합니다. 그래서 내부망 전용 접근, 로그인 시도 제한, 감사 로그가 모두 실제 방문자를 기준으로 동작합니다.
감사 로그와 설정 기록을 참고하세요.
더 안전한 로그인
- 패스키 로그인: 비밀번호 대신 지문, 얼굴, 기기 PIN을 사용합니다. 공개 키만 저장하며 인증 코드를 입력할 필요가 없습니다.
- 읽기 전용 계정: 가족이나 동료에게 보기만 가능한 계정을 줄 수 있습니다. 설정을 바꾸거나 백업을 내려받거나 비밀 값을 읽을 수 없습니다.
- 서명된 릴리스: 바이너리와 Docker 이미지에 cosign 서명, 빌드 출처 증명, SBOM이 함께 제공되므로 공식 CI에서 빌드된 것인지 확인할 수 있습니다. 릴리스 검증을 참고하세요.
새 기능
- ACME HTTP-01: 지원되는 DNS 제공자가 없어도 인증서를 발급할 수 있습니다.
- HTTP/3(QUIC): 웹 서비스 리스너에서 스위치 하나로 켤 수 있습니다.
- 포트 포워딩에서 PROXY 프로토콜 전송: haproxy와 nginx를 여러 단계 거쳐도 실제 클라이언트 주소를 유지합니다. 포트 포워딩을 참고하세요.
- DDNS 제공자 7곳 추가: Amazon Route 53, OVHcloud, Gandi, NS1, Bunny DNS, Namecheap, DynDNS2(No-IP, Dynu 등).
- 알림 채널 7개 추가: ntfy, Gotify, Pushover, Discord, Slack, ServerChan, PushPlus. 「주요 장애」, 「인증서 만료」, 「보안 및 로그인」 같은 내장 규칙 템플릿도 제공합니다.
더 쉬운 운영
- 전역 Prometheus 엔드포인트
/api/metrics: 인증서 만료, DDNS 동기화 상태, 포트 포워딩 트래픽, 사이트와 업스트림 상태를 한 번에 수집하며 Grafana 대시보드도 제공합니다. 모니터링 지표를 참고하세요. - 네트워크 자가 점검: 공인 IPv4 / IPv6, 통신사 NAT(CGNAT), 시스템 시간, 80 / 443 포트, DDNS 이름 확인, 인증서 만료를 한 번에 점검합니다.
- 최초 실행 안내: 비밀번호 변경, 2단계 인증 또는 패스키 설정, 자가 점검, Lucky에서 가져오기, 알림 설정을 한 페이지에서 마칩니다.
- 배포:
GATELY_INITIAL_PASSWORD로 초기 비밀번호를 지정하고,-apply선언형 설정 디렉터리는 GitOps에 적합하며, systemd와 OpenWrt 서비스 템플릿이 포함됩니다. 설치 및 배포를 참고하세요.
업그레이드 참고 사항
- Docker: 새 이미지를 받은 뒤 컨테이너를 다시 만듭니다. 바이너리: 실행 파일을 교체한 뒤 재시작합니다.
- 포트 포워딩 규칙이 PROXY 프로토콜을 보내면 대상(예: haproxy의
accept-proxy)이 이를 받아들여야 합니다. v0.4.x로 다운그레이드하기 전에는 대상의 PROXY 설정을 먼저 제거하세요. - 로컬 프록시 신뢰는 기본적으로 켜져 있으며 「설정 → 접근 제어」에서 끌 수 있습니다.
- QUIC 지원이 추가되어 단일 바이너리 크기가 약 32 MB가 되었습니다.
질문과 의견은 GitHub Issues나 Telegram 그룹에 남겨 주세요.