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.gpgErstellen Sie die Repository-Datei für Ihre Docker-Binärdateien:
sudo nano /etc/apt/sources.list.d/docker.listFü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 StableLaden Sie die Repository-Liste Ihres Systems neu, indem Sie ein apt-Update durchführen:
sudo apt update && sudo apt upgradeInstallieren 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 nginxStellen 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 --classicErhalten 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-networkStellen 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:stableErsetzen 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:generateFü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-clientErsetzen 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-ContainerlisteErstellen 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/shlinkFü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 ladenRegistrieren Sie Ihren Server bei der Electronic Frontier Foundation:
sudo certbot register --agree-tos -m IHRE@EMAIL.ADRESSEFordern Sie ein neues Multi-Domain-SSL-Zertifikat für Ihre Shlink-Instanz an:
sudo certbot --nginx -d IHRE-ROOT.DOMAIN -d SUBDOMAIN.IHRE-ROOT.DOMAINBestä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.
Häufig gestellte Fragen
Wie erstellt man kurzlink?
Um einen Kurzlink zu erstellen, müssen Sie die Webseite bitly.com aufrufen. Geben Sie in das Eingabefeld die URL ein, von der Sie eine Kurzversion erzeugen möchten. Klicken Sie dann auf 'Shorten'. Über 'Copy' kopieren Sie die neue, kurze URL in die Zwischenablage.
Was ist der beste Link Shortener?
Unter den beliebtesten URL-Shortener-Anbietern sind Bitly, Ow.ly, Rebrandly, Cuttly und der Google URL-Shortener einige der besten Optionen.
Kann man einen Link kürzen?
Ja, man kann einen Link kürzen. Dies kann einfach und schnell mit einem URL-Shortener geschehen. Durch das Kopieren des langen Links und das Einfügen in den URL-Shortener, kann dieser in einen Kurzlink umgewandelt werden.
Schreibe einen Kommentar