Drift/Gitea
Gitea er en tjeneste vi bruker for å oppbevare og dele kode. Du kan bruke den som et alternativ til GitHub eller IDI GitLaben. Den kjører på Maskiner/bekkalokk og er tilgjengelig på https://git.pvv.ntnu.no
Bruk
For generell bruk, se https://docs.gitea.com/category/usage
På loginsiden kan du logge inn med vanlig PVV-brukernavn og passord
Lag og klon et nytt repo
1. Trykk på "New Repository" i menyen i øvre høyre hjørne
2. Fyll inn feltene du føler er nødvendig. De 2 viktigste er:
* "Repository Name" - navnet på repoet * "Visibility Level" - om repoet skal være offentlig eller privat
3. Følg instruksjonene for å klone repoet, ev. spør noen i drift om hjelp.
Bruk av CI
Se https://docs.gitea.com/usage/actions/quickstart#use-actions
Historie
Tidlig 2023 ble både TRAC og Gogs tatt ned, og byttet ut med Gitea. De fleste repoer ble migrert (med unntak av noen vi ikke fant kildekode for i datamappene), og det ble satt opp prosjektgrupper for repo-er som tidligere var samarbeidsprosjekter. Repo-er hvor vi så at det hovedsakelig var én person som jobbet, ble omgjort til brukerens personlige repo.
Drifts-detaljer
Kildekode
https://git.pvv.ntnu.no/Drift/pvv-nixos-config/src/branch/main/hosts/bekkalokk/services/gitea
Web-endepunkt
Selve nettsiden blir hostet gjennom en nginx som revers-proxy på Maskiner/bekkalokk, som de fleste andre tjenester. Nginx håndterer TLS og sertifikater, og sender dermed ukryptert HTTP trafikk til gitea gjennom en UNIX socket.
SSH
Gitea kjører en intern SSH server.
Dette gjør det litt enklere å håndtere tilganger og sandboxing på NixOS,
men resulterer også i at SSH-serveren på kjøre på en annen port enn den vanlige SSH serveren,
og for tiden (arpil 2024) kjører den på port 2222
.
Dette kan gi litt rare URIs for upstreams, som ssh://gitea@git.pvv.ntnu.no:2222/bruker/prosjekt.git
Bruker-sync skript
Ettersom Gitea kjører på nixos, og vi ikke har fått satt opp et ordentlig bruker-sync system enda (april 2024), så har vi et python-skript som er schedulet som en systemd-timer (et cron alternativ). Dette skriptet henter passwd fila på Maskiner/Microbel, parser alle linjer, og lager og modifiser gitea-brukere gjennom gitea's REST API.
CI
På Maskiner/bekkalokk er det satt opp 3 instanser av gitea-act-runner. Disse bruker podman til å lage docker-lignende containere for å kjøre pipelines i en sandbox.