docs: Gitea OAuth2 Auth-Sektion und Tech-Stack-Eintrag hinzugefügt
This commit is contained in:
40
README.md
40
README.md
@@ -71,6 +71,7 @@ Go eignet sich hervorragend als Backend-Sprache – die Standardbibliothek ist s
|
|||||||
**Externe Dependencies (minimal):**
|
**Externe Dependencies (minimal):**
|
||||||
- `pgx` – PostgreSQL-Treiber (direktes SQL, kein ORM)
|
- `pgx` – PostgreSQL-Treiber (direktes SQL, kein ORM)
|
||||||
- `godotenv` – `.env`-Datei laden
|
- `godotenv` – `.env`-Datei laden
|
||||||
|
- `golang.org/x/oauth2` – OAuth2-Flow für Gitea-Login
|
||||||
|
|
||||||
**Backend-Aufgaben:**
|
**Backend-Aufgaben:**
|
||||||
- `GET /api/projects` – alle getaggten Repos aus der DB zurückgeben
|
- `GET /api/projects` – alle getaggten Repos aus der DB zurückgeben
|
||||||
@@ -91,6 +92,35 @@ log.Fatal(http.ListenAndServe(":8080", mux))
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 🔐 Auth: **Gitea OAuth2**
|
||||||
|
|
||||||
|
Gitea kann selbst als OAuth2-Provider fungieren – Nutzer loggen sich mit ihrem Gitea-Account im Dashboard ein, genau wie "Login with GitHub".
|
||||||
|
|
||||||
|
### Setup in Gitea:
|
||||||
|
|
||||||
|
1. In Gitea unter **Settings → Applications → OAuth2 Applications** eine neue App registrieren
|
||||||
|
2. `Client ID` und `Client Secret` in die `.env` eintragen
|
||||||
|
3. Redirect URI auf `https://dashboard.example.com/auth/callback` setzen
|
||||||
|
|
||||||
|
### Flow:
|
||||||
|
|
||||||
|
```
|
||||||
|
Nutzer klickt "Login mit Gitea"
|
||||||
|
→ Weiterleitung zur Gitea-Instanz (Authorization Endpoint)
|
||||||
|
→ Nutzer bestätigt Zugriff
|
||||||
|
→ Gitea leitet mit Authorization Code zurück
|
||||||
|
→ Backend tauscht Code gegen Access Token
|
||||||
|
→ Nutzer ist eingeloggt, Gitea-Identität bekannt
|
||||||
|
```
|
||||||
|
|
||||||
|
**Vorteile:**
|
||||||
|
- Kein eigenes Auth-System nötig – Gitea übernimmt Passwörter und Sessions
|
||||||
|
- Nutzeridentität direkt bekannt → Repos und Issues können nutzerbasiert gefiltert werden
|
||||||
|
- Schreibrechte (Issues erstellen/schließen) nur für den jeweiligen Repo-Owner
|
||||||
|
- Implementiert mit `golang.org/x/oauth2` – offizielles Go-Paket, keine Drittanbieter-Lib nötig
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 🗄️ Datenbank: **PostgreSQL**
|
## 🗄️ Datenbank: **PostgreSQL**
|
||||||
|
|
||||||
**Schema-Übersicht:**
|
**Schema-Übersicht:**
|
||||||
@@ -141,18 +171,20 @@ CREATE TABLE webhook_events (
|
|||||||
- [ ] **v0.2** – Webhook-Listener für Echtzeit-Updates
|
- [ ] **v0.2** – Webhook-Listener für Echtzeit-Updates
|
||||||
- [ ] **v0.3** – Issues & Milestones im Dashboard anzeigen
|
- [ ] **v0.3** – Issues & Milestones im Dashboard anzeigen
|
||||||
- [ ] **v0.4** – Issues direkt aus dem Dashboard erstellen/schließen (bi-direktional)
|
- [ ] **v0.4** – Issues direkt aus dem Dashboard erstellen/schließen (bi-direktional)
|
||||||
- [ ] **v0.5** – Verknüpfung mit Freelancer-Dashboard (Repos = Projekte)
|
- [ ] **v0.5** – Gitea OAuth2 Login
|
||||||
- [ ] **v1.0** – Auth, Multi-User, öffentliche Projektsseiten
|
- [ ] **v0.6** – Verknüpfung mit Freelancer-Dashboard (Repos = Projekte)
|
||||||
|
- [ ] **v1.0** – Multi-User, öffentliche Projektsseiten
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🔧 Tech Stack
|
## 🔧 Tech Stack
|
||||||
|
|
||||||
| Schicht | Technologie |
|
| Schicht | Technologie |
|
||||||
|------------|------------------------------|
|
|--------------|--------------------------------|
|
||||||
| Frontend | SvelteKit + TailwindCSS |
|
| Frontend | SvelteKit + TailwindCSS |
|
||||||
| Backend | Go + net/http (Standardlib) |
|
| Backend | Go + net/http (Standardlib) |
|
||||||
| Datenbank | PostgreSQL + pgx |
|
| Datenbank | PostgreSQL + pgx |
|
||||||
|
| Auth | Gitea OAuth2 + golang.org/x/oauth2 |
|
||||||
| API | Gitea REST API v1 |
|
| API | Gitea REST API v1 |
|
||||||
| Deployment | Docker Compose |
|
| Deployment | Docker Compose |
|
||||||
|
|
||||||
@@ -166,7 +198,7 @@ git clone https://gitea.starfour.de/Jannis/gitea-projekt-dashboard
|
|||||||
|
|
||||||
# Umgebungsvariablen setzen
|
# Umgebungsvariablen setzen
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
# GITEA_URL, GITEA_TOKEN, DATABASE_URL, DASHBOARD_TAG eintragen
|
# GITEA_URL, GITEA_TOKEN, GITEA_CLIENT_ID, GITEA_CLIENT_SECRET, DATABASE_URL, DASHBOARD_TAG eintragen
|
||||||
|
|
||||||
# Mit Docker starten
|
# Mit Docker starten
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
|
|||||||
Reference in New Issue
Block a user