So hosten Sie Ihren eigenen bit.ly-Server mit Shlink unter Linux

Shlink ist ein leistungsstarker Self-Host-Link-Shortener-Dienst für Linux. Es bietet ein einfaches, aber effektives Framework, in dem Sie Ihren eigenen Domainnamen als Stammverzeichnis für Ihre verkürzten Links verwenden können. In diesem Artikel erfahren Sie, wie Sie mit Docker und Nginx Ihre eigene Shlink-Instanz unter Ubuntu Linux installieren.

Warum Links mit Shlink kürzen?

Eines der größten Verkaufsargumente von Shlink ist, dass Sie Ihre eigene benutzerdefinierte Domain für Shortlinks verwenden und gleichzeitig selbst hosten können. Dies wiederum bietet Ihnen die Flexibilität eines SaaS-Link-Shortener-Dienstes sowie den Datenschutz, Software auf Ihrem eigenen Computer auszuführen.

Außerdem, Shlink verfügt außerdem über vielfältige Funktionen wie die Möglichkeit, QR-Codes zu erstellen, Linkabfragen automatisch weiterzuleiten und benutzerdefinierte Slugs mit mehreren Segmenten zu erstellen. Dies macht Shlink zu einem praktischen Tool, wenn Sie nach einem Link-Shortener-Dienst unter Linux suchen, mit dem Sie das Aussehen und Verhalten Ihrer Links optimieren können.

Gut zu wissen: Erfahren Sie mehr über Selbsthosting, indem Sie mit SimpleLogin Ihren eigenen E-Mail-Aliase-Server erstellen.

Docker für Shlink beziehen

Annahme: In diesem Artikel wird davon ausgegangen, dass Sie Shlink auf einem Ubuntu 22.04 VPS installieren und derzeit einen Domainnamen besitzen.

Der erste Schritt bei der Bereitstellung von Shlink unter Linux besteht darin, eine Kopie von Docker zu erhalten. Rufen Sie dazu den Signaturschlüssel des Docker-Projekts von der Website ab:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg |  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg

Erstellen Sie die Repository-Datei für Ihre Docker-Binärdateien:

sudo nano /etc/apt/sources.list.d/docker.list

Fügen Sie die folgende Codezeile in Ihre neue Repository-Datei ein:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu Jammy Stable

Laden Sie die Repository-Liste Ihres Systems neu, indem Sie ein apt-Update durchführen:

sudo apt update && sudo apt upgrade

Installieren der Abhängigkeiten für Shlink

Wenn die Docker-Repositorys eingerichtet und ausgeführt sind, können Sie jetzt apt verwenden, um die Abhängigkeiten für Shlink abzurufen:

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx

Stellen Sie sicher, dass das „Kern“-Snap-Paket in Ihrem System verfügbar ist:

Rufen Sie das Snap-Paket „certbot“ von der Electronic Frontier Foundation ab und installieren Sie es:

sudo snap install certbot --classic

Erhalten eines Geolite2-Lizenzschlüssels

Ein weiteres entscheidendes Merkmal von Shlink ist, dass es den allgemeinen Standort des Benutzers verfolgen kann, der auf Ihre Links geklickt hat. Um dies zu verwenden, öffnen Sie die Registrieren Sie sich für die Geolite2-Lizenzierung Seite.

Füllen Sie das Formular mit Ihren Daten aus und drücken Sie dann Weitermachen.

Öffnen Sie Ihren E-Mail-Posteingang und suchen Sie nach der Bestätigungs-E-Mail von MaxMind.

Klicken Sie auf den Link in der E-Mail und geben Sie dann ein Passwort für Ihr neues MaxMind-Konto ein.

Melden Sie sich bei Ihrem MaxMind-Konto an und klicken Sie dann auf Lizenzschlüssel verwalten auf Ihrem Dashboard.

Klicken Neuen Lizenzschlüssel generierendann klick Bestätigen um Ihren Geolite2-Schlüssel zu erstellen.

Kopieren Sie den Geolite2-Lizenzschlüssel in eine Textdatei auf Ihrem Computer und speichern Sie sie.

Shlink beziehen und installieren

Um Shlink zu installieren, müssen Sie zunächst ein virtuelles Docker-Netzwerk erstellen. Dies dient als privates Netzwerk der App, über das sie mit den anderen Containern kommunizieren kann, die Sie bereitstellen:

sudo docker network create -d Bridge \ --subnet=10.0.0.0/24 \ --gateway=10.0.0.1 \ shlink-network

Stellen Sie eine PostgreSQL-Datenbank bereit und verknüpfen Sie sie mit Ihrem neuen virtuellen Docker-Netzwerk:

sudo docker run -d \ --name shlink-db \ -e POSTGRES_PASSWORD=!REPLACE_ME!  \ -e POSTGRES_USER=postgres \ -e POSTGRES_DB=shlink \ -p 127.0.0.1:5432:5432 \ --restart Always \ --network="shlink-network" \ postgres:12.1

Ändern Sie den Wert der Umgebungsvariablen „POSTGRES_PASSWORD“ durch eine zufällige Textzeichenfolge.

Notiz: Sie können diese zufällige Textzeichenfolge erstellen, indem Sie „/dev/urandom“ verwenden: cat /dev/urandom | tr -dc 'A-Za-z0-9' | falten -w 32 | Kopf -n 1

Fügen Sie den folgenden Befehl in eine neue Terminalsitzung ein:

sudo docker run -d \ --name shlink-stable \ -p 8081:8080 \ -e DEFAULT_DOMAIN=IHRE-ROOT.DOMAIN \ -e IS_HTTPS_ENABLED=true \ -e GEOLITE_LICENSE_KEY=!REPLACE_ME!  \ -e DB_DRIVER=postgres \ -e DB_USER=postgres \ -e DB_PASSWORD=!REPLACE_ME!  \ -e DB_HOST=shlink-db \ --network="shlink-network" \ shlinkio/shlink:stable

Ersetzen Sie den Wert der Variablen DEFAULT_DOMAIN durch Ihren Domänennamen.

Notiz: Stellen Sie sicher, dass Ihre Domain über einen A-Eintrag verfügt, der auf die IP-Adresse Ihres Computers verweist.

Ändern Sie den Wert der Variablen „GEOLITE_LICENSE_KEY“ mit Ihrem persönlichen Lizenzschlüssel.

Ersetzen Sie die Variable „DB_PASSWORD“ durch Ihr PostgreSQL-Datenbankkennwort.

Drücken Sie die Eingabetaste, um Ihre Shlink-Instanz zu starten.

Installieren und Verknüpfen Ihrer Shlink-Schnittstelle

Rufen Sie einen API-Schlüssel aus Ihrem Shlink-Container ab und kopieren Sie ihn dann in Ihre Zwischenablage:

sudo docker exec -it shlink-stable shlink api-key:generate

Fügen Sie den folgenden Befehl in eine neue Terminalsitzung ein:

sudo docker run -d \ --name shlink-client \ -p 8080:8080 \ -e SHLINK_SERVER_URL=https://YOUR-ROOT.DOMAIN \ -e SHLINK_SERVER_API_KEY=!REPLACE-ME!  \ --network="shlink-network" shlinkio/shlink-web-client

Ersetzen Sie „SHLINK_SERVER_URL“ durch den Wert aus Ihrer Variable „DEFAULT_DOMAIN“ im Backend-Container.

Fügen Sie Ihren API-Schlüssel als Wert für „SHLINK_SERVER_API_KEY“ ein.

Drücken Sie die Eingabetaste, um Ihre Shlink-Frontend-Oberfläche zu starten.

Bestätigen Sie, dass Ihre Datenbank, Ihr Shlink-Backend und Ihr Shlink-Frontend ordnungsgemäß funktionieren, indem Sie alle derzeit aktiven Container im System auflisten:

Sudo-Docker-Containerliste

Erstellen eines SSL-Reverse-Proxys mit Nginx

An diesem Punkt läuft nun eine funktionierende Shlink-Software-Suite auf Ihrem Server. Um darauf zuzugreifen, müssen Sie jedoch noch einen SSL-Web-Proxy erstellen, der Ihre beiden Container an verschiedene Domänen delegiert.

Erstellen Sie zunächst einen neuen A-Eintrag für die Frontend-Schnittstelle Ihres Shlinks. In meinem Fall setze ich den A-Eintrag meines Frontends auf „admin“.

Erstellen Sie die Site-Konfigurationsdatei für Ihre Shlink-Instanz mit Ihrem bevorzugten Texteditor:

sudo nano /etc/nginx/sites-available/shlink

Fügen Sie den folgenden Codeblock in Ihre Konfigurationsdatei ein:

server { server_name YOUR-ROOT.DOMAIN;  Standort / { Proxy_pass http://127.0.0.1:8081;  Proxy_http_version 1.1;  Proxy_set_header Upgrade $http_upgrade;  Proxy_set_header Verbindung „upgrade“;  Proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  Proxy_set_header Host $host;  } } server { server_name SUBDOMAIN.YOUR-ROOT.DOMAIN;  Standort / { Proxy_pass http://127.0.0.1:8080;  Proxy_http_version 1.1;  Proxy_set_header Upgrade $http_upgrade;  Proxy_set_header Verbindung „upgrade“;  Proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  Proxy_set_header Host $host;  } }

Ersetzen Sie die Variable „YOUR-ROOT.DOMAIN“ durch Ihre Root-Domain und die Variable „SUBDOMAIN.YOUR-ROOT.DOMAIN“ durch die Subdomain für Ihre Frontend-Schnittstelle.

Speichern Sie Ihre Konfigurationsdatei und aktivieren Sie dann Ihre Web-App in Nginx:

sudo ln -s /etc/nginx/sites-available/shlink /etc/nginx/sites-enabled/

Laden Sie Ihren Nginx-Daemon neu, um Ihre neuen Einstellungen zu übernehmen:

sudo systemctl nginx neu laden

Registrieren Sie Ihren Server bei der Electronic Frontier Foundation:

sudo certbot register --agree-tos -m IHRE@EMAIL.ADRESSE

Fordern Sie ein neues Multi-Domain-SSL-Zertifikat für Ihre Shlink-Instanz an:

sudo certbot --nginx -d IHRE-ROOT.DOMAIN -d SUBDOMAIN.IHRE-ROOT.DOMAIN

Bestätigen Sie, dass Ihr Shlink-Server ordnungsgemäß funktioniert, indem Sie zur Admin-Konsole Ihrer Instanz navigieren. In meinem Fall ist es „https://admin.helloserver.top“.

Gut zu wissen: Erfahren Sie mehr über Webverschlüsselung, indem Sie Ihre eigenen SSL-Zertifikate mit OpenSSL erstellen.

Erstellen Sie Ihren ersten Link mit Shlink

Um Ihre neue Instanz zu verwenden, klicken Sie auf Shlink Menüpunkt auf der Landingpage.

Fügen Sie Ihre lange URL ein Zu kürzende URL Textfeld unter dem Erstellen Sie eine kurze URL Kategorie.

Geben Sie einige Metadaten für Ihren Kurzlink ein und klicken Sie dann Speichern um Ihren Link zu erstellen.

Öffnen Sie Ihre neue Kurz-URL in einem neuen Browser-Tab und klicken Sie dann auf Besuche Klicken Sie auf die Schaltfläche auf Ihrem Shlink-Dashboard, um zu testen, ob es ordnungsgemäß funktioniert.

Die Installation und Bereitstellung Ihres eigenen Linkverkürzungsdienstes ist nur der erste Schritt zur Wiederherstellung Ihrer Online-Privatsphäre. Erfahren Sie, wie Linux Ihnen dabei helfen kann, Ihre Privatsphäre weiter zurückzugewinnen, indem Sie mit Tor Ihre eigene anonyme Website in Ubuntu hosten.

Carlos Muza über Unsplash Und Shlink.io-Entwickler. Alle Änderungen und Screenshots von Ramces Red.

Index
  1. Warum Links mit Shlink kürzen?
  2. Docker für Shlink beziehen
    1. Installieren der Abhängigkeiten für Shlink
    2. Erhalten eines Geolite2-Lizenzschlüssels
  3. Shlink beziehen und installieren
    1. Installieren und Verknüpfen Ihrer Shlink-Schnittstelle
  4. Erstellen eines SSL-Reverse-Proxys mit Nginx
  5. Erstellen Sie Ihren ersten Link mit Shlink

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Go up