Installer Gitea på en Raspberry Pi for at oprette dit eget kodelager

Installer Gitea på en Raspberry Pi for at oprette dit eget kodelager
Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

Git er et versionskontrolsystem, der bruges af softwareudviklere, kodere og tinkerer til at samarbejde om og distribuere open source-projekter. Ved at bruge Git kan du håndtere projekter af enhver størrelse, trække kodeændringer og flette ind, og tillade brugere at klone dine repositories på deres egne maskiner. Open source-økosystemet kører på Git, og mange af projekterne på MakeUseOf.com involverer brug af ressourcer fra GitHub. Med Gitea kan du være vært for dine egne fuldt funktionelle Git-depoter på en Raspberry Pi i dit eget hjem.





MAKEUSE AF DAGENS VIDEO

Hvorfor hoste din egen Git-tjeneste på Raspberry Pi i stedet for at bruge GitHub?

  En GitHub-lagerside, der viser en liste over filer fra React's source code

Med 55 millioner brugere, GitHub er det største lager af gratis og open source-software på jorden, men dens nuværende ejer, Microsoft, er ikke en naturlig egnet til rollen som depot. Tidligere administrerende direktører for virksomheden beskrev Linux og General Public License som 'en cancer', og de fleste af Microsofts egne produkter er proprietære og lukkede kilder.





Microsofts ejerskab har også set GitHub udforske nogle etisk tvivlsomme teknologier - især med GitHub Copilot, et AI-værktøj til at hjælpe programmører med at generere kode. Copilot blev trænet på data fra GitHub, hvilket er en mulig overtrædelse af vilkårene i Creative Commons-licenserne, der anvendes af kodere.





Ved at bruge GitHub skaber udviklere endnu et kvælningspunkt, hvor innovation kan kvæles, undermineres og udsættes for useriøs interferens.

Gitea lader dig opsætte din egen Git-server på Raspberry Pi

Gitea er en forgrening af Gogs, og er en fællesskabsstyret letvægtskodehostingløsning skrevet i Go og udgivet under MIT-licensen. Det sigter mod at have en mere åben og hurtigere udviklingsmodel end sin forgænger og vil køre på maskiner med selv beskedne ressourcer, såsom en Raspberry Pi. Du vil være i stand til at arbejde på dine dotfiler, brugerdefinerede Ubuntu ISO'er , Bash-scripts og Java- og Python-værktøjer uden frygt for, at de vil blive genstand for en DMCA-fjernelse, blive brugt til at træne ondsindet software eller på anden måde være uden for din kontrol.



Sådan installeres Gitea på din Raspberry Pi

Gitea kommer med flere installationsmetoder, men den nemmeste er via Docker. Hvis du ikke allerede har disse kørende på din Raspberry Pi, installere Docker og Docker Compose nu.

De filer, du gemmer på din Gitea-server, vil potentielt fylde meget, så vi foreslår bruge eksternt lager med din Raspberry Pi , og bruge det som placering for din Gitea-installation.





Opret forbindelse til din Pi via SSH , naviger derefter til den placering, hvor du vil installere Gitea, og opret en ny mappe, og flyt derefter ind i den:

 mkdir gitea 
cd gitea

Opret en ny fil med nano:





 nano docker-compose.yml

...og indsæt følgende kode i den:

 version: "3" 

networks:
  gitea:
    external: false

services:
  server:
    image: gitea/gitea:latest
    container_name: gitea
    environment:
      - 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
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:gb
      - /etc/localtime:/etc/localtime:gb
    ports:
      - "3000:3000"
      - "222:22"
    depends_on:
      - db

  db:
    image: mysql:8
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=gitea
      - MYSQL_DATABASE=gitea
    networks:
      - gitea
    volumes:
      - ./mysql:/var/lib/mysql

Skift tidszonerne til din egen lokalitet og vælg en stærk adgangskode til din database, gem og afslut derefter nano med Ctrl + O , derefter Ctrl + X.

Gå ind:

 docker-compose up -d 

…for at få docker-compose frem i løsrevet tilstand. Docker-compose vil trække flere billeder til Gitea og Maria DB og opsætte containere. Afhængigt af din forbindelseshastighed kan dette tage noget tid.

  docker-compose ps viser gitea og gitea_db_1 som op

Når du vender tilbage til kommandoprompten:

 docker-compose ps

…skal vise 'gitea' og 'gitea_db_1' som 'op'. Du kan nu besøge den indledende konfigurationsside for din Gitea-side på din.pi.lokale.ip.adresse:3000 .

Ændre ikke noget endnu. Hvis du planlægger at få adgang til din Gitea-instans over internettet, skal du gøre lidt mere forberedelse først.

Få adgang til din Gitea-instans over internettet

Du vil være i stand til at indtaste en standard-URL for at kunne nå din Gitea-instans, så du skal bruge Apache til at håndtere proxy. Installer Apache med:

 sudo apt install apache2

Start og aktiver nu Apache med følgende kommandoer:

 sudo systemctl start apache2 
sudo systemctl enable apache2

Aktiver Apaches proxy-moduler med:

 sudo a2enmod proxy 
sudo a2enmod proxy_http

Vælg et domænenavn eller et underdomænenavn fra en velrenommeret registrator. Find derefter indstillingerne 'Avanceret DNS' fra din registrators indstillingsside og tilføj en ny EN optage. Indstil Vært felt til ' @' og værdifeltet til din statiske IP-adresse. Indstil TTL-værdien (Time to Lease) så lav som muligt, og gem derefter.

Åbn din routeradministratorside, og find et afsnit med titlen enten Portvideresendelse , Havnekortlægning , eller Havneledelse.

Opret en ny post for HTTP-anmodninger. Indstil både den lokale og offentlige havn til 80 , og den lokale IP-adresse til IP-adressen på din Raspberry Pi.

Der kræves en anden åben port til HTTPS-anmodninger. Indstil både den lokale og offentlige havn til 443 , og igen den lokale IP-adresse til IP-adressen på din Pi.

Endelig har du brug for en port åben for SSH-anmodninger til din Git-server. Indstil både den lokale og offentlige havn til 222 , og den lokale IP-adresse til IP-adressen på din Pi.

Du vil bruge Certbot til at få sikkerhedscertifikater og nøgler. Tilføj Certbot-lageret, opdater og installer Certbot:

 sudo add-apt-repository ppa:certbot/certbot 
sudo apt update
sudo apt-get install python3-certbot-apache

Skift mapper, og opret en ny fil med nano:

 cd /etc/apache2/sites-available/ 
nano gitea.conf

Indsæt følgende i den nye fil, og sørg for at kopiere dit eget domænenavn:

 <VirtualHost *:80>ServerName your-domain-name.tldProxyPass / http://127.0.0.1:3000/ProxyPassReverse / http:/127.0.0.1:3000/ProxyPreserveHost On</VirtualHost>

Gem og afslut nano med Ctrl + O , derefter Ctrl + x , og aktiver din nye conf-fil med:

 sudo a2ensite gitea.conf

Genstart Apache:

 sudo service apache2 restart

Kør Certbot med:

 sudo certbot

…og vælg dit domænenavn fra en liste. Certbot henter og installerer certifikater og nøgler. Når du vender tilbage til prompten, genstart Apache igen:

 sudo service apache2 restart

Gitea Instance Setup

Du kan nu besøge din Gitea-instans i en browser med på adressen https://your-domain-name.tld . Du vil være i stand til at indstille databasetypen, adgangskoden og andre variabler i den første sektion. Disse vil være værdier, du har angivet i din docker-compose-fil, og burde allerede være udfyldt, så der er ingen grund til at ændre dem.

I Generelle indstillinger , Indstil webstedets titel til en passende, Serverdomæne skal være dit domænenavn og SSH-serverport skal indstilles til 222 . Basis-URL'en skal være dit domænenavn inklusive 'HTTPS://'.

Når du er færdig, skal du trykke på den store blå Installer Gitea knap. Du vil blive mødt af en stor grøn kop te, og uanset hvilket navn og snegl du gav til instansen. For at oprette din første bruger, klik på registrer øverst til højre på siden, og indtast derefter dine oplysninger. Tillykke!

For at forhindre andre i at registrere og hoste deres egne depoter på din Git-server, skal du redigere app. ini fil. Hvis du oprindeligt oprettede din guide mappe i / (rod) bibliotek, indtast:

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

Rul ned til serviceafsnittet og indstil DISABLE_REGISTRATION til sandt.

  gitea diable registrering indstillet til sand

Gem og afslut nano med Ctrl + O , derefter Ctrl + X, genstart derefter dine containere:

 docker-compose downdocker-compose up -d

Brug af Gitea

Hvis du nogensinde har brugt GitHub, vil du med det samme være hjemme i Gitea. Når du har logget ind, vil du se, at der ikke er nogen tilgængelige lagre. Opret en ved at klikke på + skriv under til højre på siden, og giv den et fornuftigt navn.

  gitea indledende lageroprettelse

Du kan vælge at gøre depotet privat ved at markere afkrydsningsfeltet eller lade det være åbent, så verden kan se det. Marker afkrydsningsfeltet for at initialisere med en readme-fil, og klik derefter Opret repository for at oprette dit første lager! Du kan foretage og foretage ændringer, uploade filer og redigere, ligesom om det var GitHub.

Klik på SSH for at kopiere adressen, og du vil ikke være i stand til at klone lagre til din lokale maskine, idet du modtager en fejlmeddelelse: 'Sørg venligst for, at du har de korrekte adgangsrettigheder, og at lageret eksisterer' i stedet for. Du skal først tilføje din lokale maskines SSH-nøgle til Gitea. For at gøre dette skal du kopiere outputtet fra:

 cat ~/.ssh/id_rsa.pub

Klik på dit profilbillede i din Gitea-webgrænseflade, og vælg derefter indstillinger > SSH/GPG-taster . Klik på Tilføj nøgle , og indsæt den nøgle, du lige har kopieret.

  tilføj ssh-nøgle til gitea

Du kan nu interagere med dit eget Git-lager på din egen Git-server på din egen Raspberry Pi!

hvordan man gør min router hurtigere

Brug din Gitea-instans til at skabe fantastiske softwareprojekter

Git er et fantastisk værktøj til at samarbejde om fantastiske projekter, men selv uden et team er det fantastisk til at organisere din egen arbejdsgang og skabe fabelagtig software eller konfigurationer. Brug det til at hjælpe med at holde styr på dine filer, mens du lærer et nyt programmeringssprog eller tilpasse dit desktopsystem til at være det bedste, det kan være.