docs: add Forgejo Keycloak OIDC integration guide and CLI setup script
Some checks are pending
TheCr3w Docker Build and Deploy Pipeline / build-and-package (push) Waiting to run

This commit is contained in:
TheCr3w Lead Architect 2026-10-31 17:11:39 +01:00
parent 7daee26d3d
commit dfec61e2cd
2 changed files with 112 additions and 0 deletions

86
docs/FORGEJO-KEYCLOAK.md Normal file
View file

@ -0,0 +1,86 @@
# THECR3W-DEV — INTEGRACJA FORGEJO Z KEYCLOAK (OIDC)
## Instancja Keycloak: `https://login.thecr3wnet.com` (Realm: `master`)
## Instancja Forgejo: `https://git.thecr3wnet.com`
---
## 1. Krok 1: Utworzenie Klienta OIDC w Keycloak
Zaloguj się do panelu administracyjnego Keycloak (`https://login.thecr3wnet.com/admin/master/console/`).
Upewnij się, że jesteś w wymaganym realm: **`master`**.
1. Przejdź do: **Clients** -> **Create client**.
2. **General Settings:**
- **Client type:** `OpenID Connect`
- **Client ID:** `forgejo`
- **Name:** `TheCr3w Forgejo Git`
- Kliknij *Next*.
3. **Capability config:**
- **Client authentication:** `ON` (Confidential client)
- **Authorization:** `OFF`
- **Authentication flow:**
- Zaznacz: `Standard flow` (Authorization Code Flow)
- Odznacz: `Direct access grants`, `Implicit flow`
- Kliknij *Next*.
4. **Login settings:**
- **Root URL:** `https://git.thecr3wnet.com`
- **Home URL:** `https://git.thecr3wnet.com/`
- **Valid redirect URIs:**
- `https://git.thecr3wnet.com/user/oauth2/Keycloak/callback`
- `https://git.thecr3wnet.com/user/oauth2/keycloak/callback`
- **Valid post logout redirect URIs:**
- `https://git.thecr3wnet.com/`
- **Web origins:**
- `https://git.thecr3wnet.com`
- Kliknij *Save*.
5. **Pobranie Client Secret:**
- Przejdź do zakładki **Credentials**.
- Skopiuj wartość pola **Client Secret** (będzie potrzebna w Forgejo).
---
## 2. Krok 2: Konfiguracja Źródła Uwierzytelniania w Forgejo
Możesz to skonfigurować na dwa sposoby:
### Sposób A: Jednym poleceniem w terminalu SSH na serwerze (Rekomendowane)
Zastąp `<TWÓJ_CLIENT_SECRET>` wartością skopiowaną z Keycloak:
```bash
docker exec -u 1000 forgejo forgejo admin auth add-oauth \
--name Keycloak \
--provider openidConnect \
--key forgejo \
--secret "<TWÓJ_CLIENT_SECRET>" \
--auto-discovery-url https://login.thecr3wnet.com/realms/master/.well-known/openid-configuration
```
---
### Sposób B: Przez interfejs graficzny Forgejo
1. Zaloguj się na konto administratora w `https://git.thecr3wnet.com`.
2. Kliknij ikonę profilu w prawym górnym rogu -> **Site Administration** (Zarządzanie witryną).
3. Przejdź do zakładki **Authentication Sources** (Źródła uwierzytelniania) -> kliknij **Add Authentication Source**.
4. Wypełnij formularz:
- **Authentication Type:** `OAuth2`
- **Authentication Name:** `Keycloak`
- **OAuth2 Provider:** `OpenID Connect`
- **Client ID (Key):** `forgejo`
- **Client Secret:** Wklej skopiowany `Client Secret` z Keycloak
- **OpenID Connect Auto Discovery URL:**
`https://login.thecr3wnet.com/realms/master/.well-known/openid-configuration`
- Zaznacz opcje:
- `Enable Auto-Registration` (Automatyczne zakładanie kont przy pierwszym logowaniu)
- `Activate Users` (Aktywuj użytkowników automatycznie)
5. Kliknij **Add Authentication Source**.
---
## 3. Krok 3: Logowanie i Weryfikacja
1. Otwórz w oknie incognito: `https://git.thecr3wnet.com/user/login`.
2. Na ekranie logowania pojawi się niebieski przycisk: **Zaloguj przez Keycloak**.
3. Po kliknięciu zostaniesz przekierowany do `https://login.thecr3wnet.com` (realm `master`).
4. Po podaniu loginu i hasła nastąpi automatyczny powrót do Forgejo z zalogowanym użytkownikiem.

View file

@ -0,0 +1,26 @@
#!/usr/bin/env bash
# ==============================================================================
# TheCr3w-dev — Dodanie Keycloak OIDC do Forgejo przez CLI
# ==============================================================================
set -eo pipefail
SECRET="$1"
if [ -z "$SECRET" ]; then
echo "Użycie: ./scripts/setup_forgejo_keycloak.sh <KEYCLOAK_CLIENT_SECRET>"
echo "Pobierz Client Secret z Keycloak: Clients -> forgejo -> Credentials -> Client Secret"
exit 1
fi
echo "Dodawanie Keycloak OIDC do Forgejo..."
docker exec -u 1000 forgejo forgejo admin auth add-oauth \
--name Keycloak \
--provider openidConnect \
--key forgejo \
--secret "$SECRET" \
--auto-discovery-url https://login.thecr3wnet.com/realms/master/.well-known/openid-configuration
echo "✓ Źródło uwierzytelniania Keycloak zostało pomyślnie dodane do Forgejo!"
echo "Możesz teraz logować się na https://git.thecr3wnet.com za pomocą Keycloak."