Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision. Läs mer.

Git är ett versionskontrollsystem som används av mjukvaruutvecklare, kodare och mixtrare för att samarbeta och distribuera projekt med öppen källkod. Med Git kan du hantera projekt av vilken storlek som helst, dra in kodändringar och sammanslagningar och tillåta användare att klona dina arkiv till sina egna maskiner. Ekosystemet med öppen källkod körs på Git, och många av projekten på MakeUseOf.com involverar användning av resurser från GitHub. Med Gitea kan du vara värd för dina egna fullt fungerande Git-förråd på en Raspberry Pi i ditt eget hem.

Varför vara värd för din egen Git-tjänst på Raspberry Pi istället för att använda GitHub?

Med 55 miljoner användare, GitHub är det största arkivet för gratis och öppen källkod på jorden, men dess nuvarande ägare, Microsoft, passar inte naturligt för rollen som vårdnadshavare. Tidigare vd: ar för företaget beskrev Linux och General Public License som "en cancer", och de flesta av Microsofts egna produkter är proprietära och stängd källkod.

instagram viewer

Microsofts ägande har också sett GitHub utforska några etiskt tvivelaktiga teknologier – särskilt med GitHub Copilot, ett AI-verktyg för att hjälpa programmerare att generera kod. Copilot utbildades på data från GitHub, vilket möjligen strider mot villkoren i Creative Commons-licenserna som används av kodare.

Genom att använda GitHub skapar utvecklare ännu en choke-punkt där innovation kan kvävas, undermineras och utsättas för oseriösa störningar.

Gitea låter dig ställa in din egen Git-server på Raspberry Pi

Gitea är en gaffel av Gogs och är en community-hanterad lättviktskodvärdlösning skriven i Go och publicerad under MIT-licensen. Den siktar på att ha en mer öppen och snabbare utvecklingsmodell än sin föregångare, och kommer att köras på maskiner med till och med blygsamma resurser, som en Raspberry Pi. Du kommer att kunna arbeta med dina dotfiler, anpassade Ubuntu ISO, Bash-skript och Java- och Python-verktyg utan rädsla för att de kommer att bli föremål för en DMCA-borttagning, användas för att träna skändlig programvara eller på annat sätt vara utom din kontroll.

Hur man installerar Gitea på din Raspberry Pi

Gitea kommer med flera installationsmetoder, men den enklaste är via Docker. Om du inte redan har dessa igång på din Raspberry Pi, installera Docker och Docker Compose nu.

Filerna du lagrar i din Gitea-server kommer potentiellt att ta upp mycket utrymme, så vi föreslår använda extern lagring med din Raspberry Pi, och använder det som plats för din Gitea-installation.

Anslut till din Pi via SSH, navigera sedan till platsen där du vill installera Gitea och skapa en ny katalog och flytta sedan in i den:

mkdir gitea
CD gitea

Skapa en ny fil med nano:

nanodocker-komponera.yml

...och klistra in följande kod i den:

version: "3"

nätverk:
gitea:
extern: falsk

tjänster:
server:
bild: gitea/gitea: senaste
container_name: gitea
miljö:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=db: 3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
omstart: alltid
nätverk:
- Gitea
volymer:
- ./gitea:/data
- /etc/timezone:/etc/timezone: se
- /etc/localtime:/etc/localtime: se
hamnar:
- "3000:3000"
- "222:22"
beror på:
-db

db:
bild: mysql: 8
omstart: alltid
miljö:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
nätverk:
- Gitea
volymer:
- ./mysql:/var/lib/mysql

Ändra tidszonerna till din egen plats och välj ett starkt lösenord för din databas, spara och avsluta sedan nano med Ctrl + O, då Ctrl + X.

Stiga på:

docker-compose up -d

…för att få upp docker-compose i fristående läge. Docker-compose kommer att dra flera bilder för Gitea och Maria DB och ställa in behållare. Beroende på din anslutningshastighet kan detta ta lite tid.

När du återgår till kommandotolken:

docker-compose ps

…ska visa "gitea" och "gitea_db_1" som "upp". Du kan nu besöka den första konfigurationssidan för din Gitea-webbplats på din.pi.local.ip.adress: 3000.

Ändra inget ännu. Om du planerar att komma åt din Gitea-instans över internet måste du göra lite mer förberedelser först.

Få åtkomst till din Gitea-instans över Internet

Du vill kunna skriva in en standard-URL för att kunna nå din Gitea-instans, så du behöver Apache för att hantera proxy. Installera Apache med:

sudo apt Installera apache2

Starta och aktivera nu Apache med följande kommandon:

sudo systemctl Start apache2
sudo systemctl Gör det möjligt apache2

Aktivera Apaches proxymoduler med:

sudo a2enmod proxy
sudo a2enmod proxy_http

Välj ett domännamn eller underdomännamn från en ansedd registrator. Sedan, från din registrars inställningssida, leta reda på "Avancerad DNS"-alternativ och lägg till en ny A spela in. Ställ in Värd fält till "@" och värdefältet till din statiska IP-adress. Ställ in TTL-värdet (Time to Lease) så lågt som möjligt och spara sedan.

Öppna din routeradministratörssida och hitta ett avsnitt med titeln antingen Port Forwarding, Portkartläggning, eller Hamnförvaltning.

Skapa en ny post för HTTP-förfrågningar. Ställ in både den lokala och offentliga hamnen på 80, och den lokala IP-adressen till IP-adressen för din Raspberry Pi.

En andra öppen port krävs för HTTPS-förfrågningar. Ställ in både den lokala och offentliga hamnen på 443, och igen, den lokala IP-adressen till IP-adressen för din Pi.

Slutligen behöver du en port öppen för SSH-förfrågningar till din Git-server. Ställ in både den lokala och offentliga hamnen på 222, och den lokala IP-adressen till IP-adressen för din Pi.

Du kommer att använda Certbot för att få säkerhetscertifikat och nycklar. Lägg till Certbot-förvaret, uppdatera och installera sedan Certbot:

sudo add-apt-repository ppa: certbot/certbot
sudo apt uppdatering
sudo apt-skaffa sig installera python3-certbot-apache

Ändra kataloger och skapa en ny fil med nano:

CD /etc/apache2/sites-available/
nanogitea.conf

I den nya filen, klistra in följande, se till att kopiera in ditt eget domännamn:

<VirtualHost *:80>Servernamn ditt-domännamn.tldProxyPass / http://127.0.0.1:3000/ProxyPassReverse / http://127.0.0.1:3000/ProxyPreserveHost On</VirtualHost>

Spara och avsluta nano med Ctrl + O, då Ctrl + X, och aktivera din nya conf-fil med:

sudoa2ensitegitea.conf

Starta om Apache:

sudo-tjänsten apache2 omstart

Kör Certbot med:

sudo certbot

…och välj ditt domännamn från en lista. Certbot hämtar och installerar certifikat och nycklar. När du kommer tillbaka till prompten, starta om Apache igen:

sudo-tjänsten apache2 omstart

Gitea Instance Setup

Du kan nu besöka din Gitea-instans i en webbläsare med på adressen https://your-domain-name.tld. Du kommer att kunna ställa in databastyp, lösenord och andra variabler i det första avsnittet. Dessa kommer att vara värden som du har angett i din docker-compose-fil och bör redan vara ifyllda, så det finns ingen anledning att ändra dem.

I Allmänna Inställningar, ställ in Sidans Titel till en lämplig, Serverdomän ska vara ditt domännamn och SSH-serverport måste ställas in på 222. Basadressen ska vara ditt domännamn inklusive "HTTPS://".

När du är klar, tryck på den stora blå Installera Gitea knapp. Du kommer att mötas av en stor grön kopp te, och vilket namn och snigel du än gav till instansen. För att skapa din första användare klickar du på registrera uppe till höger på sidan och anger sedan dina uppgifter. Grattis!

För att hindra någon annan från att registrera och vara värd för sina egna arkiv på din Git-server, måste du redigera app.ini fil. Om du ursprungligen skapade din gitea katalogen i / (rot) katalog, ange:

nano /gitea/gitea/gitea/conf/app.ini

Scrolla ner till serviceavsnittet och ställ in DISABLE_REGISTRATION till sant.

Spara och avsluta nano med Ctrl + O, då Ctrl + X, starta sedan om dina behållare:

docker-compose downdocker-compose up -d

Använder Gitea

Om du någonsin har använt GitHub kommer du omedelbart att vara hemma i Gitea. När du har loggat in ser du att det inte finns några tillgängliga förråd. Skapa en genom att klicka på + underteckna till höger på sidan och ge den ett vettigt namn.

Du kan välja att göra förvaret privat genom att markera rutan, eller lämna det öppet för världen att se. Markera rutan för att initiera med en readme-fil och klicka sedan Skapa arkiv för att skapa ditt första arkiv! Du kan göra och genomföra ändringar, ladda upp filer och redigera precis som om det vore GitHub.

Klicka på SSH för att kopiera adressen, och du kommer inte att kunna klona arkiv till din lokala dator, och får ett felmeddelande: "Se till att du har rätt åtkomsträttigheter och att arkivet finns" istället. Du måste lägga till din lokala maskins SSH-nyckel till Gitea först. För att göra detta, kopiera utdata från:

katt ~/.ssh/id_rsa.pub

Klicka på din profilbild i ditt Giteas webbgränssnitt och välj sedan inställningar> SSH/GPG-tangenter. Klicka på Lägg till nyckel, och klistra in nyckeln du just kopierade.

Du kan nu interagera med ditt eget Git-förråd på din egen Git-server på din egen Raspberry Pi!

Använd din Gitea-instans för att skapa fantastiska programvaruprojekt

Git är ett fantastiskt verktyg för att samarbeta i fantastiska projekt, men även utan ett team är det fantastiskt för att organisera ditt eget arbetsflöde och skapa fantastisk programvara eller konfigurationer. Använd den för att hålla reda på dina filer när du lär dig ett nytt programmeringsspråk eller anpassa ditt skrivbordssystem så att det blir det bästa det kan vara.