プロジェクト概要
Gately は、オープンソースで監査可能なネットワークゲートウェイツールキットです。自宅ネットワーク、NAS、クラウドホスト、各種サーバーで利用できます。DDNS、STUN 穿孔、ポート転送、リバースプロキシ、証明書、WAF などの主要機能を約 32 MB の単一ファイルに統合し、Lucky の設定もワンクリックでインポートできます。
なぜ Gately を作ったのか
ネットワーク境界で動き、DNS の API キーや証明書の秘密鍵を預かるソフトウェアには透明性が求められます。Gately は完全なオープンソースで、ユーザーとコミュニティがソースコードと設定を直接確認し、何をしているのかを自分の目で確かめられます。Gately は次のことを約束します。
- ソースコードは Apache-2.0 で公開し、コミュニティのレビューを受け付けます
- デフォルトではプロジェクト側のサーバーに接続せず、端末情報も送信しません。外部ログインには自分の OAuth アプリを使い、中継サービスは経由しません
- 外部へのアドレス(公開 IP の照会先、STUN サーバーなど)はすべて確認・変更・無効化できます
- 設定は平文の JSON で、そのまま git に入れて監査やロールバックができます
設計原則
- 透明性:デフォルトではプロジェクト側のサーバーに接続せず、外部へのアドレスはすべて確認・変更・無効化できます。
- 移行しやすさ:
.lkcf設定のインポートに対応しています。 - 監査可能な設定:設定は平文の JSON(ファイルのパーミッションは 0600)で、そのまま git に入れて diff やロールバックができます。
- 単一ファイルでデプロイ:フロントエンドを内蔵した静的バイナリ 1 つで、Docker、systemd、OpenWrt に対応します。
技術スタック
| レイヤー | 採用技術 |
|---|---|
| バックエンド | Go、静的ビルド。arm / arm64 / mips / riscv のルーターや NAS 向けにクロスコンパイル可能 |
| HTTP | 標準ライブラリ net/http |
| ストレージ | モジュールごとに 1 つの平文 JSON ファイル、アトミックに書き込み |
| 認証 | bcrypt パスワード + HMAC 署名付きセッショントークン、ログイン失敗のレート制限、TOTP 2 段階認証 |
| フロントエンド | Vue 3 + TypeScript + Vite + Element Plus、go:embed でバイナリに同梱 |
機能一覧
ダイナミック DNS、STUN 穿孔、ポート転送、SSL 証明書、Web サービス(リバースプロキシ、アクセス制御、ヘルスチェック、キャッシュとレート制限、アクセス統計)、WAF ファイアウォール、Tailscale、frp、Cloudflare トンネル、Docker 管理、Web ターミナル、ネットワーク診断、Wake-on-LAN、WebDAV、FTP、ストレージマウント、スケジュールタスク、通知センター、設定バックアップ、さらに2 段階認証、セキュアエントリー、API トークン、コマンドラインと MCP を備えています。詳しくは モジュール一覧 を参照してください。
次のステップ
- すぐに試したい:クイックスタート
- Lucky を使っている:移行ガイド
- プライバシーとセキュリティが気になる:セキュリティモデルとプライバシーの約束