프로젝트 소개
Gately는 가정 네트워크, NAS, 클라우드 호스트 등 다양한 서버에서 사용할 수 있는 오픈소스 네트워크 게이트웨이 도구 모음으로, 소스 코드를 직접 감사할 수 있습니다. DDNS, STUN 통과, 포트 포워딩, 리버스 프록시, 인증서, WAF 등 자주 쓰는 기능을 약 32 MB 단일 파일에 담았으며 Lucky 설정을 원클릭으로 가져올 수 있습니다.
Gately를 만든 이유
네트워크 경계에서 동작하며 DNS 키와 인증서 개인 키를 다루는 소프트웨어에는 투명성이 필요합니다. Gately는 완전한 오픈소스이므로 사용자와 커뮤니티가 소스 코드와 설정을 직접 검토하고 무엇을 하는지 확인할 수 있습니다. Gately의 약속은 다음과 같습니다.
- 소스 코드를 Apache-2.0으로 공개하고 커뮤니티의 검토를 받습니다.
- 기본적으로 프로젝트 서버에 연결하지 않고 기기 정보를 보고하지 않습니다. 서드파티 로그인은 직접 등록한 OAuth 앱을 사용하며 중계를 거치지 않습니다.
- 모든 외부 주소(공인 IP 조회, STUN 서버 등)를 확인하고 수정하고 끌 수 있습니다.
- 설정은 일반 JSON이므로 git에 넣어 감사하고 롤백할 수 있습니다.
설계 원칙
- 투명성: 기본적으로 프로젝트 서버에 연결하지 않으며 모든 외부 주소를 확인하고 수정하고 끌 수 있습니다.
- 이식성:
.lkcf설정 가져오기를 제공합니다. - 감사 가능한 설정: 설정은 일반 JSON(파일 권한 0600)이므로 git에 넣어 diff와 롤백에 쓸 수 있습니다.
- 단일 파일 배포: 프런트엔드를 내장한 정적 바이너리 하나로 구성되며 Docker, systemd, OpenWrt를 지원합니다.
기술 스택
| 계층 | 선택 |
|---|---|
| 백엔드 | Go, 정적 컴파일, arm / arm64 / mips / riscv 라우터와 NAS용으로 크로스 컴파일 가능 |
| HTTP | 표준 라이브러리 net/http |
| 저장소 | 모듈마다 일반 JSON 파일 하나, 원자적 쓰기 |
| 인증 | bcrypt 비밀번호 + HMAC 서명 세션 토큰, 로그인 실패 제한, TOTP 2단계 인증 |
| 프런트엔드 | Vue 3 + TypeScript + Vite + Element Plus, go:embed로 바이너리에 포함 |
기능 한눈에 보기
동적 DNS, STUN 통과, 포트 포워딩, SSL 인증서, 웹 서비스(리버스 프록시, 접근 제어, 헬스 체크, 캐시와 속도 제한, 접속 통계), WAF 방화벽, Tailscale, frp, Cloudflare 터널, Docker 관리, 웹 터미널, 네트워크 진단, Wake-on-LAN, WebDAV, FTP, 스토리지 마운트, 예약 작업, 알림 센터, 설정 백업, 그리고 2단계 인증, 보안 진입 경로, API 토큰, 명령줄과 MCP를 제공합니다. 자세한 내용은 모듈 개요를 참고하세요.
다음 단계
- 바로 써 보고 싶다면: 빠른 시작
- Lucky를 사용 중이라면: 마이그레이션 가이드
- 개인정보와 보안이 궁금하다면: 보안 모델 및 개인정보 약속