GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Gitlab Server mit Docker unter Ubuntu 18.04 LTS

Gitlab CE oder Community Edition ist eine Open-Source-Anwendung, die zum Hosten Ihrer Git-Repositories verwendet wird. Das Selbsthosten Ihrer Git-Repositories gibt Ihnen die vollständige Kontrolle über Ihre Daten und bietet Ihnen und Ihren Teammitgliedern eine benutzerfreundliche Oberfläche.

In diesem Leitfaden behandeln wir, wie Sie Ihr Git-Repository mit dem kostenlosen Angebot von Gitlab, der Community Edition, installieren. Wenn Sie erweiterte Funktionen wie Zusammenführungsgenehmigungen, Roadmaps, Portfoliomanagement, Notfallwiederherstellung, Container-Scanning usw. wünschen, können Sie ein Upgrade auf die Enterprise Edition durchführen.

Voraussetzungen

  • Ein Ubuntu 18.04-basierter Server mit einem Nicht-Root-Sudo-Benutzer.
  • Sie benötigen einen VPS mit mindestens 2 CPU-Kernen und 8 GB RAM gemäß den angegebenen Hardwareanforderungen für Gitlab CE, der 100 Benutzer unterstützt. Auch wenn Sie RAM durch Auslagerungsspeicher ersetzen können, wird dies nicht empfohlen, da die Anwendung dadurch langsamer läuft.

Schritt 1 - Installieren von Abhängigkeiten

Bevor wir Gitlab installieren, müssen wir sicherstellen, dass unser Server über bestimmte Software verfügt, die Gitlab benötigt, um ordnungsgemäß ausgeführt zu werden. Führen Sie die folgenden Befehle aus, um die Abhängigkeiten zu installieren.

$ sudo apt update
$ sudo apt install ca-certificates curl openssh-server ufw apt-transport-https -y

Ein Teil der oben genannten Software ist möglicherweise für Sie vorinstalliert.

Schritt 2 – Ändern Sie den SSH-Port Ihres Systems

Gitlab verwendet Port 22 zum Pushen von Repositories über SSH. Das SSH Ihres Servers läuft auch darauf, was zu Konflikten führt. Es gibt zwei Möglichkeiten, dies zu tun. Sie können entweder den SSH-Port ändern, den Sie für die Verbindung zu Ihrem System verwenden, oder Sie können den Port ändern, den Gitlab für SSH verwendet. In diesem Tutorial werden wir den SSH-Port für den Server selbst ändern.

Dazu müssen wir die Datei /etc/ssh/sshd_config bearbeiten. Öffnen Sie die Datei im Nano-Texteditor.

$ sudo nano /etc/ssh/sshd_config

Suchen Sie die folgende Zeile und ändern Sie 22 bis 6622 und entfernen Sie das # davor. Sie können einen beliebigen Port auswählen.

# Port 22

Drücken Sie Strg + X, um Ihre Datei zu schließen, und drücken Sie Y, um die Änderungen zu speichern.

Starten Sie den SSH-Dienst neu.

$ sudo systemctl restart sshd

Schließen Sie Ihre aktuelle SSH-Sitzung und erstellen Sie eine neue mit dem Port 6622 und verbinden Sie sich erneut mit Ihrem Server.

$ ssh [email protected] -p 6622

Schritt 3 - Firewall konfigurieren

In unserem vorherigen Schritt haben wir ufw (unkomplizierte Firewall) installiert. Bevor wir mit der Installation von Gitlab fortfahren können, müssen wir es konfigurieren.

Aktivieren Sie SSH und den gerade erstellten Port, damit wir nicht ausgesperrt werden.

$ sudo ufw allow OpenSSH
$ sudo ufw allow 6622

Aktivieren Sie die ufw-Firewall.

$ sudo ufw enable

Wir müssen auch http und https aktivieren, damit Gitlab funktioniert.

$ sudo ufw allow http
$ sudo ufw allow https

Überprüfen Sie den Status der Firewall.

$ sudo ufw status

Sie sollten eine Ausgabe wie die folgende sehen.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
6622                       ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
6622 (v6)                  ALLOW       Anywhere (v6)      
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)             

Schritt 4 – Docker installieren

Fügen Sie Dockers GPG-Schlüssel zu Ihrem System hinzu.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Überprüfen Sie den Fingerabdruck des heruntergeladenen Schlüssels.

$ sudo apt-key fingerprint 0EBFCD88

Sie sollten eine Ausgabe wie die folgende sehen.

pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <[email protected]>
sub   rsa4096 2017-02-22 [S]

Fügen Sie das Docker-Repository hinzu.

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Aktualisieren Sie Ihre Paketdatenbank.

$ sudo apt update

Installieren Sie Docker-CE. CE ist die Community Edition von Docker.

$ sudo apt install docker-ce -y

Docker sollte jetzt installiert sein. Prüfen Sie, ob es läuft.

$ sudo systemctl status docker

Die Ausgabe sollte ungefähr so ​​aussehen.

? docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-10-11 21:10:31 UTC; 32s ago
     Docs: https://docs.docker.com
 Main PID: 19128 (dockerd)
    Tasks: 12
   CGroup: /system.slice/docker.service
           ??19128 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Drücken Sie zum Beenden q.

Fügen Sie Ihr eingeschränktes Linux-Benutzerkonto zur Docker-Gruppe hinzu, damit Sie Docker ohne sudo ausführen können.

sudo usermod -aG docker $USER

$USER Die Variable wählt den aktuell angemeldeten Benutzer aus und fügt ihn der Docker-Gruppe hinzu. Ersetzen Sie $USER mit dem tatsächlichen Benutzernamen, wenn Sie derzeit nicht mit diesem Benutzer angemeldet sind.

Wechseln Sie zu dem gerade hinzugefügten Benutzer. Auch wenn Sie bereits angemeldet waren, müssen Sie noch einmal dorthin wechseln, um die Berechtigungen neu zu laden.

$ su - ${USER}

Überprüfen Sie, ob alles einwandfrei läuft, indem Sie das integrierte „Hello World“-Programm ausführen.

$ docker run hello-world

Sie sollten die folgende Ausgabe sehen, die Ihnen mitteilt, dass Docker installiert ist und ordnungsgemäß funktioniert.

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

Schritt 5 – Docker Compose installieren

Es ist möglich, diesen Schritt zu überspringen und fortzufahren, aber die Installation von Docker Compose macht die Ausführung von Gitlab viel einfacher, insbesondere wenn Sie es auf mehr als einem Server ausführen möchten.

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Zum Zeitpunkt der Erstellung dieses Tutorials ist 1.24.1 die aktuelle stabile Version von Docker Compose. Sie können auf der Github-Seite nach der neuesten Release-Version suchen.

Wenden Sie ausführbare Berechtigungen auf die Docker-Compose-Binärdatei an.

$ sudo chmod +x /usr/local/bin/docker-compose

Befehlsvervollständigung zu Docker Compose hinzufügen.

$ sudo curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

Überprüfen Sie, ob Ihre Installation erfolgreich war.

$ docker-compose --version

Es wird die folgende Ausgabe ausgeben.

docker-compose version 1.24.1, build 4667896b

Schritt 6 – Gitlab installieren

Laden Sie das Docker-Image von Gitlab von Dockerhub herunter. Dieses Image enthält alles, was Sie zum Ausführen von Docker benötigen – nginx, PostgreSQL, Redis usw. Führen Sie den folgenden Befehl aus, um das Image herunterzuladen.

$ docker pull gitlab/gitlab-ee:latest

Obwohl es in diesem Tutorial um die Installation der Community Edition geht, werden wir uns das Enterprise Edition-Image von Gitlab holen. Dies liegt daran, dass sich die Enterprise Edition genau wie die Community Edition verhält, es sei denn, Sie aktualisieren darauf, indem Sie Ihre Lizenz eingeben. Das Upgrade einer Community Edition-Installation auf die Enterprise Edition bringt weitere Komplikationen mit sich.

Es dauert eine Weile, bis das Bild vollständig heruntergeladen ist. Wenn der Job abgeschlossen ist, können Sie den folgenden Befehl ausführen, um alle Bilder zu überprüfen, die sich derzeit auf Ihrem System befinden.

$ docker images

Die Ausgabe sollte ungefähr so ​​aussehen.

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-ee    latest              4bacb2356d28        4 days ago          1.87GB
hello-world         latest              fce289e99eb9        9 months ago        1.84kB

Schritt 7 – Gitlab ausführen

Wir können den Gitlab-Container an dieser Stelle sofort ausführen, indem wir alle Optionen in einem einzigen Befehl angeben, aber das würde bedeuten, dass Sie jedes Mal, wenn Sie den Container ausführen müssen, diese Variablen angeben müssen. Docker Compose vereinfacht diesen Vorgang, da Sie die Konfiguration in einer .yml-Datei speichern können, die dann zum Ausführen und Starten des Containers verwendet wird.

Erstellen Sie eine docker-compose.yml.

$ nano docker-compose.yml

Fügen Sie den folgenden Code ein.

web:
  image: 'gitlab/gitlab-ee:latest'
  container_name: 'gitlab-howtoforge-tutorial'
  restart: always
  hostname: 'gitlab.example.com'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'https://gitlab.example.com'
      gitlab_rails['smtp_enable'] = true
	  gitlab_rails['smtp_address'] = "smtp.gmail.com"
      gitlab_rails['smtp_port'] = 587
      gitlab_rails['smtp_user_name'] = "[email protected]"
      gitlab_rails['smtp_password'] = "app-password"
      gitlab_rails['smtp_domain'] = "smtp.gmail.com"
      gitlab_rails['smtp_authentication'] = "login"
      gitlab_rails['smtp_enable_starttls_auto'] = true
      gitlab_rails['smtp_tls'] = false
      gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
      # Add any other gitlab.rb configuration here, each on its own line
  ports:
    - '80:80'
    - '443:443'
    - '22:22'
    - '587:587'
  volumes:
    - '/srv/gitlab/config:/etc/gitlab'
    - '/srv/gitlab/logs:/var/log/gitlab'
    - '/srv/gitlab/data:/var/opt/gitlab'

Mal sehen, was jede der oben genannten Optionen bedeutet.

  • Bild bezieht sich auf den Speicherort des Docker-Images von Gitlab auf Dockerhub.
  • Containername ermöglicht es Ihnen, ein Label auf Ihren Docker-Container anzuwenden, um ihn beim Verweisen auf den Container in einem Docker-Netzwerk zu verwenden.
  • Hostname definiert den internen Hostnamen des Containers oder in unserem Fall die URL, unter der Ihr Gitlab installiert wird.
  • Neustart gibt eine Neustartrichtlinie für den Container an. Wir haben es auf immer eingestellt was bedeutet, dass ein Container automatisch neu gestartet wird, wenn er beendet wird.
  • Umgebung liefert die Variable GITLAB_OMNIBUS_CONFIG Damit können Sie jede Gitlab-Konfigurationseinstellung eingeben. In diesem Fall haben wir die externe URL angegeben, die Gitlab verwenden soll.
  • Lautstärke definiert die Verzeichnisse, die auf dem Server bereitgestellt werden, um persistente Daten zu speichern. Die drei Volumes/Verzeichnisse speichern Anwendungsdaten, Protokolldateien und Konfigurationsdateien. Der Wert links vom Semikolon ist das lokale Verzeichnis auf dem Server, und der Wert rechts ist das Verzeichnis innerhalb des Containers.
  • veröffentlichen weist den Container an, Ports oder eine Reihe von Ports für den Host zu veröffentlichen. Da Gitlab die Ports 22(SSH), 80(HTTP), 443(HTTPS) und 587(SMPT - MSA) benötigt, haben wir diese hier angegeben. Wenn Sie möchten, dass Gitlab einen nicht standardmäßigen Port auf Ihrem Server verwendet (wahrscheinlich weil er nicht verfügbar ist), würden Sie zuerst den Host-Port und dann den Container-Port angeben. Da Ihr Server beispielsweise bereits den SSH(22)-Port verwendet, können Sie Gitlab anweisen, SSH über einen anderen Port zu verwenden, sagen wir 3333. Dann würden Sie 22:22 ändern in der obigen Datei zu 3333:22 . Sie müssen außerdem die Zeile gitlab_rails['gitlab_shell_ssh_port'] =3333 unter GITLAB_OMNIBUS_CONFIG hinzufügen oben.
  • externe_url bezieht sich auf die Domäne, in der Ihr Gitlab installiert wird. Wir haben https gewählt, das automatisch das Let's Encrypt SSL-Zertifikat für uns installiert.
  • Wir haben auch eine zusätzliche Konfiguration hinzugefügt, um Gitlab für die Verwendung von Gmail zum Senden von E-Mails zu konfigurieren. Sie können jeden SMTP-Maildienst eines Drittanbieters verwenden. Gitlab-Dokumente haben eine detaillierte Anleitung zur Konfiguration verschiedener SMTP-Dienste damit bereitgestellt.

Stellen Sie sicher, dass Sie sich im selben Verzeichnis wie docker-compose.yml befinden. Führen Sie den folgenden Befehl aus, um Gitlab zu starten.

$ docker-compose up -d

Sie werden etwa Folgendes sehen.

Creating gitlab-howtoforge-tutorial ... done

Es dauert noch einige Minuten, bis Sie über den Browser auf Gitlab zugreifen können. Über den folgenden Befehl erfahren Sie mehr über den Startvorgang.

$ docker logs -f gitlab-howtoforge-tutorial

Um den Protokollüberwachungsprozess zu beenden, drücken Sie Strg + C.

Laden Sie die Gitlab-Site in Ihrem Browser. Wenn Sie versuchen, es zu kurz nach dem Start des Containers zu laden, erhalten Sie den Fehler 502. Warten Sie in diesem Fall noch ein paar Minuten und versuchen Sie es erneut.

Wenn alles in Ordnung ist, sehen Sie die folgende Seite in Ihrem Browser.

Schritt 8 – Gitlab konfigurieren

Geben Sie ein Kennwort für das Administratorkennwort von Gitlab an. Als nächstes werden Sie zum Anmeldebildschirm weitergeleitet. Verwenden Sie root als den Benutzernamen und das Passwort, das Sie gerade zum Anmelden gewählt haben.

SMTP konfigurieren

Wir müssen die SMTP-Einstellungen aktivieren, bevor wir

Gitlab-Profil konfigurieren

Klicken Sie auf das Benutzersymbol in der oberen rechten Ecke, um das Dropdown-Menü aufzurufen und Einstellungen auszuwählen.

Sie werden zu Ihrer Profileinstellungsseite weitergeleitet. Geben Sie hier Ihren Namen und Ihre E-Mail-Adresse ein. Sie müssen Ihre E-Mail-Adresse bestätigen, damit sie aktualisiert werden kann. Sie können hier auch weitere Informationen über sich selbst hinzufügen, wenn Sie möchten.

Klicken Sie auf Profileinstellungen aktualisieren wenn Sie fertig sind.

Benutzernamen ändern

Als nächstes müssen wir unseren Benutzernamen von root ändern zu etwas anderem als root ist ein ziemlich häufiger erratbarer Benutzername. Klicken Sie auf Konto in der linken Seitenleiste.

Ändern Sie den Benutzer in einen beliebigen Benutzernamen, den Sie behalten möchten. Klicken Sie auf Benutzernamen aktualisieren beenden. Für mehr Sicherheit sollten Sie hier auch die Zwei-Faktor-Authentifizierung aktivieren.

Öffentliche Anmeldungen einschränken

Standardmäßig erlauben Gitlab-Installationen jedem, sich anzumelden. Wer das nicht möchte, sollte es deaktivieren. Klicken Sie auf das Schraubenschlüssel-Symbol in der oberen Leiste, um auf den Verwaltungsbereich zuzugreifen.

Um die Einstellungen anzupassen, klicken Sie auf Einstellungen in der linken Seitenleiste.

Scrollen Sie hier nach unten zu den Anmeldebeschränkungen und klicken Sie auf Erweitern Taste. Deaktivieren Sie Anmeldung aktiviert ein und klicken Sie auf Änderungen speichern wenn fertig.

Sie können weiterhin neue Benutzer über die Admin-Oberfläche hinzufügen.

SSH-Schlüssel hinzufügen

Der letzte Schritt ist das Hinzufügen unseres SSH-Schlüssels. Wenn Sie einen SSH-Schlüssel haben, können Sie den folgenden Befehl überspringen. Wenn Sie keine haben, können Sie mit dem folgenden Befehl eine erstellen.

$ ssh-keygen

Dieser Befehl ist für Mac OS, Linux und Git Bash/WSL unter Windows gleich. Akzeptieren Sie die Standardeinstellungen und lassen Sie das Feld für die Passphrase leer.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/gitlab
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in gitlab.
Your public key has been saved in gitlab.pub.
The key fingerprint is:
SHA256:6dNGAPyd8JAkHAikYOW2PsFjGlzBBpwy4XQ9RQgVwK8 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|+*OB=*O=..       |
|B+o+o+oo+        |
|oo.+. ...= .     |
|. + ..  .o+      |
| o *.   S .      |
|  =Eo  . o       |
| . o    o o      |
|    .    o       |
|                 |
+----[SHA256]-----+

Ihren öffentlichen Schlüssel können Sie sich mit folgendem Befehl anzeigen lassen

$ cat ~/.ssh/gitlab.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUf64YH7uJimFWVJSy/mgYiLRqBxVB6JJMTxZZ96DwExoINhWVRhQAgMgExBWGpUCpWXhLcNuIM+EfFRtCq+YYyLC+GlHsNdnLgecGgop72p8BEi8UckgCiCSuMrWCMAOFh5NKs2YHpF7bOUjXQRVvGujLuV1UBof7SXQ/za7e3aybNiH3KpA6oWSSmpqnOt8rZT54IjLnVFUSLx7ZxWDVW1bO29mI8NjWwzZGLAtNIkJQEOqVo8nhVkroFHvBTrZnUsmr5oFOWG++LPqED9EUSPTpO8PNnogYT3xsVncBMMAEt0pPE7ATmstQc161SEtqAUa98Qb0RRKqCKcKStOp [email protected]

Gehen Sie zurück zum Einstellungsbereich Ihres Profils und greifen Sie über die Seitenleiste auf SSH-Schlüssel zu.

Fügen Sie den SSH-Schlüssel in das dafür vorgesehene Feld ein und klicken Sie auf Schlüssel hinzufügen um fortzufahren.

Jetzt können Sie Ihre Repositories erstellen und übernehmen, ohne Ihre Gitlab-Anmeldeinformationen angeben zu müssen.

Schritt 9 – Erstellen Sie Ihr erstes Projekt

Jedes Repository in Gitlab gehört zu einem Projekt. Ein Projekt umfasst ein Repository, Issue-Tracker, Merge-Anfragen, Wiki, Continuous Integration und Continuous Delivery (CI/CD)-Pipelines und viele andere Funktionen.

Um Ihr erstes Repository zu erstellen, klicken Sie auf Projekt erstellen .

Sie werden zur Seite „Neues Projekt“ weitergeleitet. Geben Sie den Projektnamen ein. Sie können den Projekt-Slug in etwas anderes ändern. Geben Sie eine Beschreibung des Projekts ein, wenn Sie möchten, und ändern Sie die Sichtbarkeit des Projekts nach Ihren Wünschen. Sie können Ihr Repository mit einer README-Datei initialisieren. Wenn Sie fertig sind, klicken Sie auf Projekt erstellen .

Sie werden mit nur einer einzigen leeren README.md-Datei zu Ihrer Repository-Seite weitergeleitet.

Jetzt, da unser Repository aktiv ist, versuchen wir, ein Änderungsprotokoll über die Befehlszeile hinzuzufügen.

Geben Sie die folgenden Befehle auf Ihrem Computer ein, um eine CHANGELOG-Datei zu erstellen und sie zurück in Ihr Repository zu verschieben. Stellen Sie sicher, dass Sie Git auf Ihrem Computer installiert haben.

Klonen Sie das Repository. Sie können entweder mit SSH oder HTTPS klonen.

Mit SSH klonen.

$ git clone [email protected]:user/howtoforge-test.git

oder mit HTTPS klonen.

$ git clone https://gitlab.example.com/user/howtoforge-test.git

Geben Sie die restlichen Befehle zum Erstellen ein und drücken Sie CHANGELOG.

$ cd howtoforge-test
$ touch CHANGELOG  # Or create the file in your editor and enter a project description
$ git add CHANGELOG
$ git commit -m "add Changelog"
$ git push -u origin master

Schritt 10 – Gitlab-Container verwalten

Führen Sie den folgenden Befehl aus, um alle laufenden Container anzuzeigen.

$ docker-ps

Führen Sie den folgenden Befehl aus, um Ihren Gitlab-Container zu stoppen.

$ docker stop gitlab-howtoforge-tutorial

Verwenden Sie den folgenden Befehl, um Ihren Container erneut zu starten.

$ docker start gitlab-howtoforge-tutorial

Falls Sie Ihren Container entfernen möchten, können Sie dies mit dem folgenden Befehl tun.

$ docker container rm gitlab-howtoforge-tutorial

Schritt 11 – Aktualisieren Sie Gitlab

Wenn Sie Gitlab auf die neueste Version aktualisieren möchten, müssen Sie den vorhandenen Container stoppen und entfernen, das neueste Image ziehen und dann den Container neu erstellen.

$ docker stop gitlab-howtoforge-tutorial
$ docker rm gitlab-howtoforge-tutorial
$ docker pull gitlab/gitlab-ee:latest
$ docker-compose up -d

Und bevor Sie fragen, Ihre Daten sind auch dann sicher, wenn Sie den Container entfernen.

Damit ist unser Tutorial zum Einrichten von Gitlab auf einem Ubuntu 18.04-Server mit Docker abgeschlossen. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.


Ubuntu
  1. So installieren Sie Docker unter Ubuntu 16.04

  2. So installieren Sie RabbitMQ Server auf Ubuntu 18.04 &16.04 LTS

  3. So installieren Sie Gitlab Server auf Ubuntu 18.04 &16.04 LTS

  4. So installieren Sie Xrdp-Server auf Ubuntu 20.04 LTS

  5. So installieren Sie Docker unter Ubuntu 20.04 LTS

So installieren Sie Docker auf Ubuntu 18.04 LTS-Server

So installieren Sie Gitlab auf Ubuntu 20.04 LTS

So installieren Sie WordPress mit Docker unter Ubuntu 16.04 LTS

So installieren Sie Docker unter Ubuntu 20.04 LTS

So installieren Sie den FTP-Server unter Ubuntu 20.04 LTS

So installieren Sie Wiki.js unter Ubuntu 20.04 LTS