Sådan opsætter du en privat Git-server på din webhosting

Håndtering af kode og samarbejde med teammedlemmer er afgørende for ethvert udviklingsprojekt. Mens platforme som GitHub og GitLab er populære, kan opsætning af din egen private Git-server på dit webhotel give dig mere kontrol over dine projekter, sikre privatliv og potentielt spare på omkostningerne. Denne vejledning vil guide dig gennem trinene til at konfigurere en privat Git-server på din webhosting.

1. Hvorfor opsætte en privat Git-server?

Før du dykker ned i opsætningen, er det vigtigt at forstå fordelene ved at have din egen Git-server:

  • Fortrolighed: Din kode forbliver helt privat og under din kontrol.
  • Tilpasning: Skræddersy serveren til at opfylde dine specifikke behov og arbejdsgange.
  • Ingen brugerbegrænsninger: Undgå begrænsninger på antallet af private arkiver eller samarbejdspartnere.
  • Omkostningseffektiv: For teams med flere brugere kan selvhosting være mere overkommelig end betalte planer på populære platforme.

2. Forudsætninger

Før du begynder, skal du sikre dig, at du har følgende:

  • En VPS eller dedikeret server: Delt hosting giver typisk ikke den nødvendige adgang og de nødvendige ressourcer til at opsætte en Git-server.
  • SSH-adgang: Du skal bruge SSH-adgang til din server for at installere og konfigurere Git-serveren.
  • Grundlæggende Linuxviden: Kendskab til kommandolinjen og Linux er afgørende.

3. Installation af Git på din server

Først skal du installere Git på din server. Følg disse trin:

  1. Opdater serveren: Run the following command to ensure your server’s package list is up to date:
    sudo apt-get opdatering
  2. Installer Git: Install Git by running:
    sudo apt-get install git
  3. Bekræft installationen: Check that Git has been installed correctly by typing:
    git --version

4. Oprettelse af en Git-bruger

Det er en god praksis at oprette en separat bruger til at administrere dine Git-lagre:

  1. Opret en ny bruger: Run the following command to create a user named ‘git’:
    sudo adduser git
  2. Konfigurer SSH-adgang: Add your SSH key to the new user’s authorized keys to enable secure access:
    sudo mkdir /home/git/.ssh
    sudo touch /home/git/.ssh/authorized_keys
    sudo nano /home/git/.ssh/authorized_keys

    Indsæt din offentlige SSH-nøgle i filen authorized_keys, gem og afslut.

  3. Indstil tilladelser: Adjust permissions for the SSH directory:
    sudo chown -R git:git /home/git/.ssh
    sudo chmod 700 /home/git/.ssh
    sudo chmod 600 /home/git/.ssh/authorized_keys

5. Oprettelse af et lager

Nu kan du oprette dit første Git-lager:

  1. Opret en mappe til repositories: Log in as the ‘git’ user and create a directory for your repositories:
    sudo su - git
    mkdir repos
    cd repos
  2. Initialiser et lager: Create a new Git repository by running:
    git init --bare dit-project.git

    Dette skaber et blottet lager, som er ideelt til fjerndepoter, hvor kode skubbes til og trækkes fra.

6. Kloning og skub til depotet

Med dit lager sat op, kan du nu klone det til din lokale maskine og skubbe kode til det:

  1. Klon depotet: On your local machine, run:
    git klon git@din-server-ip:/home/git/repos/dit-projekt.git
  2. Tilføj filer og forpligt: Add your files to the repository, commit them, and push the changes:
    cd your-project
    echo "# Your Project" >> README.md
    git add .
    git commit -m "Initial commit"
    git push origin master

7. Håndtering af flere lagre

Hvis du planlægger at være vært for flere depoter, kan du blot gentage trinene til oprettelse af lager for hvert projekt:

  • Opret en ny mappe for hvert lager under /home/git/repos/.
  • Initialiser hvert nyt lager med git init --bare your-new-project.git.
  • Få adgang til og administrer hvert lager uafhængigt via SSH.

8. Sikring af din Git-server

Sikkerhed er et kritisk aspekt ved hosting af en privat Git-server. Her er nogle trin til at forbedre sikkerheden:

  • Deaktiver adgangskodegodkendelse: Konfigurer SSH til kun at tillade nøglebaseret godkendelse ved at redigere /etc/ssh/sshd_config og indstille PasswordAuthentication no.
  • Firewall-konfiguration: Brug værktøjer som UFW til kun at tillade nødvendige porte (f.eks. SSH) og blokere andre.
  • Regelmæssige sikkerhedskopier: Implementer regelmæssige sikkerhedskopier af dine lagre for at forhindre tab af data.

9. Opsætning af webgrænseflader (valgfrit)

Hvis du foretrækker en webgrænseflade til styring af dine repositories, kan du installere software som GitWeb eller Gitea:

  • GitWeb: En simpel webgrænseflade til visning af Git-lagre.
  • Gitea: En selvhostet Git-tjeneste, der giver en brugervenlig grænseflade, der ligner GitHub.

Begge muligheder kræver yderligere opsætning og konfiguration, men kan i høj grad forbedre din Git-servers anvendelighed.

Konklusion

Opsætning af en privat Git-server på din webhosting giver fuld kontrol over din kode, tilbyder privatliv og giver mulighed for tilpasning, så den passer til din arbejdsgang. Ved at følge denne guide kan du oprette og administrere dine egne Git-depoter og sikre, at din udviklingsproces forbliver sikker og effektiv.