Gitea
Anleitung
https://docs.gitea.com/installation/install-with-docker
https://integrations.goauthentik.io/integrations/services/gitea/
https://docs.gitea.com/administration/config-cheat-sheet
docker-compose.yml
version: "3"
services:
server:
image: docker.gitea.com/gitea:1.24.2
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=<openssl rand -hex 24>
restart: unless-stopped
networks:
- gitea
volumes:
- app:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3046:3000"
- "222:22"
depends_on:
- db
db:
image: docker.io/library/postgres:14
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=<openssl rand -hex 24>
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- db:/var/lib/postgresql/data
networks:
gitea:
external: false
volumes:
app:
db:
SSH einrichten
Im meiner docker-compose.yml oben ist port 22 im Container auf Port 222 vom Host gemappt. Daher muss noch im Container in der app.ini der SSH-Port angepasst werden:
[server]
...
SSH_PORT = 222
SSH_LISTEN_PORT = 222
...
Danach den Gitea-Container neustarten und in einem Repo unter Code > SSH die Adresse checken, ob der Port übernommen wurde:
Nicht vergessen, den Port in der Firewall zu öffnen, in meinem Fall Hetzner, ansonsten auch in der ufw
Um den eigenen SSH-Key verwenden zu können, muss der Public-Key natürlich noch in Gitea eingepflegt werden unter
Profilbild > Einstellungen > SSH / GPG-Schlüssel > Schlüssel hinzufügen > .pub-Key einfügen und benennen
ssh testen mit
ssh -p 222 -i /home/BENUTZER/.ssh/id_MEINNAME_ed25519 git@git.DEINEDOMAIN.de
wenn successfully authenticated, testen mit git clone:
Falls ein anderer ssh-key angegeben werden muss, kann dies in der ~/.ssh/config eingestellt werden (Datei anlegen, falls nicht vorhanden):
~ ❯ cat /home/eike/.ssh/config
Host git.MEINEDOMAIN.de
HostName git.MEINEDOMAIN.de
Port 222
User git
IdentityFile ~/.ssh/id_MEINNAME_ed25519
OIDC-Settings in Authentik
Anwendungen > Provider > gitea
Anwendungen > Anwendungen > Gitea
Customization > Eigenschaften > Scope Mapping
gitea scope für gruppen gituser, gitadmin und gitrestricted
gitea_claims = {}
if request.user.ak_groups.filter(name="gituser").exists():
gitea_claims["gitea"]= "user"
if request.user.ak_groups.filter(name="gitadmin").exists():
gitea_claims["gitea"]= "admin"
if request.user.ak_groups.filter(name="gitrestricted").exists():
gitea_claims["gitea"]= "restricted"
return gitea_claims
Verzeichnis > Gruppen
OIDC-Settings in Gitea
Administration > Identität & Zugriff > Authentifizierungsquellen > Neu:
groß- und kleinbuchstaben beachten, alles so nennen wie in anleitung (auch scope, gruppen, claims, slug bei provider usw)












No Comments