{"id":37231132,"url":"https://github.com/soulteary/stargate","last_synced_at":"2026-02-11T06:10:16.874Z","repository":{"id":332089745,"uuid":"1132588183","full_name":"soulteary/stargate","owner":"soulteary","description":"A minimal ForwardAuth gateway for Traefik and Nginx that handles login sessions and request access control. / 面向 Traefik 和 Nginx 的极简 ForwardAuth 鉴权网关，负责会话与访问控制。","archived":false,"fork":false,"pushed_at":"2026-02-05T00:39:26.000Z","size":1403,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-05T13:11:50.256Z","etag":null,"topics":["auth","authentication","authorization","enjoy-with-stargate","forwardauth","gateway","nginx","reverse-proxy","security","sso","traefik"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soulteary.png","metadata":{"files":{"readme":"README.deDE.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-12T07:09:52.000Z","updated_at":"2026-02-05T00:39:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/soulteary/stargate","commit_stats":null,"previous_names":["soulteary/stargate"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/soulteary/stargate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soulteary%2Fstargate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soulteary%2Fstargate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soulteary%2Fstargate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soulteary%2Fstargate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soulteary","download_url":"https://codeload.github.com/soulteary/stargate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soulteary%2Fstargate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29327997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T03:52:29.695Z","status":"ssl_error","status_checked_at":"2026-02-11T03:52:23.094Z","response_time":97,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auth","authentication","authorization","enjoy-with-stargate","forwardauth","gateway","nginx","reverse-proxy","security","sso","traefik"],"created_at":"2026-01-15T03:41:51.247Z","updated_at":"2026-02-11T06:10:16.855Z","avatar_url":"https://github.com/soulteary.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Stargate - Forward Auth Service\n\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)\n[![Go Version](https://img.shields.io/badge/go-1.25+-blue.svg)](https://golang.org)\n[![codecov](https://codecov.io/gh/soulteary/stargate/branch/main/graph/badge.svg)](https://codecov.io/gh/soulteary/stargate)\n[![Go Report Card](https://goreportcard.com/badge/github.com/soulteary/stargate)](https://goreportcard.com/report/github.com/soulteary/stargate)\n\n\u003e **🚀 Ihr Gateway zu sicheren Microservices**\n\n![Stargate](.github/assets/banner.jpg)\n\nStargate ist ein produktionsreifer, leichtgewichtiger Forward Auth Service, der als **einzelner Authentifizierungspunkt** für Ihre gesamte Infrastruktur konzipiert wurde. Mit Go entwickelt und für Leistung optimiert, integriert sich Stargate nahtlos mit Traefik und anderen Reverse-Proxies, um Ihre Backend-Services zu schützen—**ohne eine einzige Zeile Authentifizierungscode in Ihren Anwendungen zu schreiben**.\n\n## 🌐 Mehrsprachige Dokumentation\n\n- [English](README.md) | [中文](README.zhCN.md) | [Français](README.frFR.md) | [Italiano](README.itIT.md) | [日本語](README.jaJP.md) | [Deutsch](README.deDE.md) | [한국어](README.koKR.md)\n\n![Vorschau](.github/assets/preview.png)\n\n### 🎯 Warum Stargate?\n\nMüde davon, Authentifizierungslogik in jedem Service zu implementieren? Stargate löst dies, indem es die Authentifizierung am Edge zentralisiert und Ihnen ermöglicht:\n\n- ✅ **Mehrere Services schützen** mit einer einzigen Authentifizierungsschicht\n- ✅ **Code-Komplexität reduzieren** durch Entfernen der Auth-Logik aus Ihren Anwendungen\n- ✅ **In Minuten bereitstellen** mit Docker und einfacher Konfiguration\n- ✅ **Mühelos skalieren** mit minimalem Ressourcen-Footprint\n- ✅ **Sicherheit aufrechterhalten** mit mehreren Verschlüsselungsalgorithmen und sicherer Sitzungsverwaltung\n\n### 💼 Anwendungsfälle\n\nStargate ist perfekt für:\n\n- **Microservices-Architektur**: Mehrere Backend-Services schützen, ohne Anwendungscode zu ändern\n- **Multi-Domain-Anwendungen**: Authentifizierungssitzungen über verschiedene Domains und Subdomains teilen\n- **Interne Tools \u0026 Dashboards**: Schnell Authentifizierung zu internen Services und Admin-Panels hinzufügen\n- **API-Gateway-Integration**: Mit Traefik, Nginx oder anderen Reverse-Proxies als einheitliche Auth-Schicht verwenden\n- **Entwicklung \u0026 Testing**: Einfache passwortbasierte Authentifizierung für Entwicklungsumgebungen\n- **Unternehmensauthentifizierung**: Integration mit Warden (Benutzer-Whitelist) und Herald (OTP/Verifizierungscodes) für produktionsreife Authentifizierung\n\n## ✨ Funktionen\n\n### 🔐 Unternehmensgrade Sicherheit\n\n- **Mehrere Passwort-Verschlüsselungsalgorithmen**: Wählen Sie aus Plaintext (Test), bcrypt, MD5, SHA512 und mehr\n- **Sichere Sitzungsverwaltung**: Cookie-basierte Sitzungen mit anpassbarer Domain und Ablaufzeit\n- **Flexible Authentifizierung**: Unterstützung für passwortbasierte und sitzungsbasierte Authentifizierung\n- **OTP/Verifizierungscode-Unterstützung**: Integration mit Herald-Service für SMS/Email-Verifizierungscodes\n- **Benutzer-Whitelist-Verwaltung**: Integration mit Warden-Service für Benutzerzugriffskontrolle\n\n### 🌐 Erweiterte Fähigkeiten\n\n- **Cross-Domain-Sitzungsteilung**: Nahtlos Authentifizierungssitzungen über verschiedene Domains/Subdomains teilen\n- **Mehrsprachige Unterstützung**: Integrierte englische und chinesische Benutzeroberflächen, leicht erweiterbar für weitere Sprachen\n- **Anpassbare Benutzeroberfläche**: Branden Sie Ihre Login-Seite mit benutzerdefinierten Titeln und Fußzeilentexten\n\n### 🚀 Leistung \u0026 Zuverlässigkeit\n\n- **Leichtgewichtig \u0026 Schnell**: Auf Go und Fiber-Framework aufgebaut für außergewöhnliche Leistung\n- **Minimaler Ressourcenverbrauch**: Geringer Speicher-Footprint, perfekt für containerisierte Umgebungen\n- **Produktionsbereit**: Erprobte Architektur, die für Zuverlässigkeit entwickelt wurde\n\n### 📦 Entwicklererfahrung\n\n- **Docker First**: Vollständiges Docker-Image und docker-compose-Konfiguration sofort einsatzbereit\n- **Traefik Native**: Zero-Konfiguration Traefik Forward Auth Middleware-Integration\n- **Einfache Konfiguration**: Umgebungsvariablen-basierte Konfiguration, keine komplexen Dateien erforderlich\n\n## 📋 Inhaltsverzeichnis\n\n- [Schnellstart](#-schnellstart)\n- [Dokumentation](#-dokumentation)\n- [Grundkonfiguration](#-grundkonfiguration)\n- [Optionale Service-Integration](#-optionale-service-integration)\n- [Produktions-Checkliste](#-produktions-checkliste)\n- [Lizenz](#-lizenz)\n\n## 🚀 Schnellstart\n\nStargate in **weniger als 2 Minuten** zum Laufen bringen!\n\n### Verwendung von Docker Compose (Empfohlen)\n\n**Schritt 1:** Repository klonen\n```bash\ngit clone \u003crepository-url\u003e\ncd stargate\n```\n\n**Schritt 2:** Authentifizierung konfigurieren (`docker-compose.yml` bearbeiten)\n\n**Option A: Passwort-Authentifizierung (Einfach)**\n```yaml\nservices:\n  stargate:\n    environment:\n      - AUTH_HOST=auth.example.com\n      - PASSWORDS=plaintext:yourpassword1|yourpassword2\n```\n\n**Option B: Warden + Herald OTP-Authentifizierung (Produktion)**\n```yaml\nservices:\n  stargate:\n    environment:\n      - AUTH_HOST=auth.example.com\n      - WARDEN_ENABLED=true\n      - WARDEN_URL=http://warden:8080\n      - WARDEN_API_KEY=your-warden-api-key\n      - HERALD_ENABLED=true\n      - HERALD_URL=http://herald:8080\n      - HERALD_HMAC_SECRET=your-herald-hmac-secret\n```\n\n**Schritt 3:** Service starten\n```bash\ndocker-compose up -d\n```\n\n**Das war's!** Ihr Authentifizierungsservice läuft jetzt. 🎉\n\n### Lokale Entwicklung\n\nFür die lokale Entwicklung stellen Sie sicher, dass Go 1.25+ installiert ist, dann:\n\n```bash\nchmod +x start-local.sh\n./start-local.sh\n```\n\nZugriff auf die Login-Seite unter `http://localhost:8080/_login?callback=localhost`\n\n## 📚 Dokumentation\n\nUmfassende Dokumentation ist verfügbar, um Ihnen zu helfen, das Beste aus Stargate herauszuholen:\n\n### Kern-Dokumente\n\n- 📐 **[Architekturdokument](docs/deDE/ARCHITECTURE.md)** - Tiefere Einblicke in technische Architektur und Designentscheidungen\n- 🔌 **[API-Dokument](docs/deDE/API.md)** - Vollständige API-Endpunkt-Referenz mit Beispielen\n- ⚙️ **[Konfigurationsreferenz](docs/deDE/CONFIG.md)** - Detaillierte Konfigurationsoptionen und Best Practices\n- 🚀 **[Bereitstellungsanleitung](docs/deDE/DEPLOYMENT.md)** - Produktionsbereitstellungsstrategien und Empfehlungen\n\n### Schnellreferenz\n\n- **API-Endpunkte**: `GET /_auth` (Auth-Prüfung), `GET /_login` (Login-Seite), `POST /_login` (Login), `GET /_logout` (Logout), `GET /_session_exchange` (Cross-Domain), `GET /health` (Gesundheitsprüfung)\n- **Bereitstellung**: Docker Compose wird für den Schnellstart empfohlen. Siehe [DEPLOYMENT.md](docs/deDE/DEPLOYMENT.md) für die Produktionsbereitstellung.\n- **Entwicklung**: Für entwicklungsbezogene Dokumentation siehe [ARCHITECTURE.md](docs/deDE/ARCHITECTURE.md)\n\n## ⚙️ Grundkonfiguration\n\nStargate verwendet Umgebungsvariablen für die Konfiguration. Hier sind die häufigsten Einstellungen:\n\n### Erforderliche Konfiguration\n\n- **`AUTH_HOST`**: Hostname des Authentifizierungsservices (z.B. `auth.example.com`)\n- **`PASSWORDS`**: Passwort-Konfiguration, Format: `algorithm:password1|password2|password3`\n\n### Häufige Konfigurationsbeispiele\n\n```bash\n# Einfache Passwort-Authentifizierung\nAUTH_HOST=auth.example.com\nPASSWORDS=plaintext:test123|admin456\n\n# BCrypt-Hash verwenden\nPASSWORDS=bcrypt:$2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy\n\n# Cross-Domain-Sitzungsteilung\nCOOKIE_DOMAIN=.example.com\n\n# Login-Seite anpassen\nLOGIN_PAGE_TITLE=Mein Auth-Service\nLANGUAGE=de  # oder 'en'\n```\n\n**Unterstützte Passwort-Algorithmen:** `plaintext` (nur Test), `bcrypt`, `md5`, `sha512`\n\n**Für vollständige Konfigurationsreferenz siehe: [docs/deDE/CONFIG.md](docs/deDE/CONFIG.md)**\n\n## 🔗 Optionale Service-Integration\n\nStargate kann vollständig unabhängig verwendet werden oder optional mit den folgenden Services integriert werden:\n\n### Warden-Integration (Benutzer-Whitelist)\n\nBietet Benutzer-Whitelist-Verwaltung und Benutzerinformationen. Wenn aktiviert, fragt Stargate Warden ab, um zu überprüfen, ob ein Benutzer in der erlaubten Liste ist.\n\n```bash\nWARDEN_ENABLED=true\nWARDEN_URL=http://warden:8080\nWARDEN_API_KEY=your-api-key\n```\n\n### Herald-Integration (OTP/Verifizierungscodes)\n\nBietet OTP/Verifizierungscode-Services. Wenn aktiviert, ruft Stargate Herald auf, um Verifizierungscodes (SMS/Email) zu erstellen, zu senden und zu überprüfen.\n\n```bash\nHERALD_ENABLED=true\nHERALD_URL=http://herald:8080\nHERALD_HMAC_SECRET=your-hmac-secret  # Produktion\n# oder\nHERALD_API_KEY=your-api-key  # Entwicklung\n```\n\n**Hinweis:** Beide Integrationen sind optional. Stargate kann unabhängig mit Passwort-Authentifizierung verwendet werden.\n\n**Vollständige Integrationsanleitung siehe: [docs/deDE/ARCHITECTURE.md](docs/deDE/ARCHITECTURE.md)**\n\n## ⚠️ Produktions-Checkliste\n\nVor dem Bereitstellen in der Produktion:\n\n- ✅ Verwenden Sie starke Passwort-Algorithmen (`bcrypt` oder `sha512`, vermeiden Sie `plaintext`)\n- ✅ Aktivieren Sie HTTPS über Traefik oder Ihren Reverse-Proxy\n- ✅ Setzen Sie `COOKIE_DOMAIN` für ordnungsgemäße Sitzungsverwaltung über Subdomains\n- ✅ Für erweiterte Funktionen optional Warden + Herald für OTP-Authentifizierung integrieren\n- ✅ Verwenden Sie HMAC-Signaturen oder mTLS für Stargate ↔ Herald/Warden-Kommunikation\n- ✅ Richten Sie angemessene Protokollierung und Überwachung ein\n- ✅ Halten Sie Stargate auf dem neuesten Stand\n\n## 🎯 Designprinzipien\n\nStargate ist für die unabhängige Verwendung konzipiert:\n\n- **Eigenständige Nutzung**: Stargate kann unabhängig mit Passwort-Authentifizierungsmodus ausgeführt werden, ohne externe Abhängigkeiten\n- **Optionale Integration**: Kann optional mit Warden (Benutzer-Whitelist) und Herald (OTP/Verifizierungscodes) integriert werden\n- **Hohe Leistung**: Der forwardAuth-Hauptpfad überprüft nur die Sitzung und gewährleistet schnelle Antwortzeiten\n- **Flexibilität**: Unterstützt mehrere Authentifizierungsmodi, wählen Sie je nach Bedarf\n\n## 📝 Lizenz\n\nDieses Projekt ist unter der Apache License 2.0 lizenziert. Siehe die [LICENSE](LICENSE)-Datei für Details.\n\n## 🤝 Beitragen\n\nWir begrüßen Beiträge! Ob es sich handelt um:\n- 🐛 Fehlerberichte\n- 💡 Funktionsvorschläge\n- 📝 Dokumentationsverbesserungen\n- 🔧 Code-Beiträge\n\nBitte zögern Sie nicht, ein Issue zu öffnen oder einen Pull Request einzureichen.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoulteary%2Fstargate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoulteary%2Fstargate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoulteary%2Fstargate/lists"}