Betreiben Sie Ihren eigenen Pastebin mit Stikked
Wenn Sie ein Entwickler jeglicher Art sind, haben Sie wahrscheinlich von Pastebin.com gehört, der am häufigsten verwendeten Webanwendung zum Einfügen und Teilen von Textausschnitten. Pastebin.com ist großartig, aber es ist nicht das einzige Pastebin-Tool auf dem Markt.
Tatsächlich wird es immer häufiger, dass Websites ihre eigenen Pastebins hosten. Es gibt Ihnen mehr Freiheit. Es gibt viele Open-Source-Pastebin-Implementierungen, und Stikked ist mit seinen erweiterten Funktionen und der optimierten Benutzeroberfläche eine der nützlicheren.
Geklebt ist mit PHP und jQuery erstellt und verwendet das CodeIgniter-Framework.
Stikked installieren
Stikked erfordert, dass Ihr Server läuft:
- Git
- Nginx
- Docker und Docker Compose
- Um die neueste Version von Stikked herunterzuladen, besuchen Sie die Stikked-GitHub-Seite oder gehen Sie zu Ihrer Befehlszeile und führen Sie Folgendes aus:
Git-Klon https://github.com/claudehohl/Stikked.git
- Gehen Sie zum Stikked-Ordner:
- Öffnen Sie die darin enthaltene Datei „docker-compose.yml“ mit Ihrem bevorzugten Texteditor.
- Scrollen Sie zur Variable „ports:“ unter der Kategorie „services:“ und ändern Sie ihren Wert wie folgt:
- Scrollen Sie zur Kategorie „mysql:“ und ersetzen Sie die Unterkategorie „command:“ durch den folgenden Code:
- Öffnen Sie die Hauptkonfigurationsdatei von Stikked:
nano ~/Stikked/docker/stikked.php[enlazatom_show_links]
- Gehen Sie zu der Zeile, die die Variable $config enthält['base_url'] und ersetzen Sie „localhost“ durch den vollständig qualifizierten Domänennamen Ihres Systems. Speichern und beenden Sie die Datei.
- Öffnen Sie die Datei „nginx.conf“ im Stikked-Container:
nano ~/Stikked/docker/nginx.conf
- Entfernen Sie die drei Zeilen unter „Nur Anfragen an unseren Host sind zulässig.“
- Erstellen Sie Ihren Docker-Container, indem Sie den folgenden Befehl ausführen:
Zu Ihrer Information: Erfahren Sie, wie Sie mit Docker und Kanboard Ihr eigenes Kanban-Board unter Linux hosten können.
Erstellen eines SSL-Nginx-Reverse-Proxys
An diesem Punkt läuft nun eine Stikked-Installation auf Port 8080. Sie können diese zwar unverändert verwenden, der grundlegende Stikked-Container kann jedoch unsicher sein, da er seine Verbindung nicht standardmäßig verschlüsselt. Um dieses Problem zu beheben, müssen Sie einen Reverse-Proxy erstellen, der auf eingehende Verbindungen lauscht und diese dann über SSL verschlüsselt.
- Erstellen Sie eine neue Site-Konfigurationsdatei unter „/etc/nginx/sites-available/“
sudo nano /etc/nginx/sites-available/stikked
- Fügen Sie den folgenden Code in Ihre neue Site-Datei ein. Dabei handelt es sich um einen einfachen Reverse-Proxy, der eingehende unverschlüsselte Verbindungen auf Port 80 abhört und alle Anfragen an Port 8080 umleitet.
server { listen 80; Hören [::]:80; root /var/www/html; Servername my-stikked-installation.com; Standort / { Proxy_set_header X-Forwarded-For $remote_addr; Proxy_set_header Host $http_host; Proxy_Pass http://localhost:8080; } }
- Erstellen Sie einen symbolischen Link für Ihre Site-Datei in „/etc/nginx/sites-enabled“ und entfernen Sie die darin enthaltene Standard-Site-Datei:
sudo ln -s /etc/nginx/sites-available/stikked /etc/nginx/sites-enabled/
- Testen Sie Ihre Nginx-Konfiguration auf Fehler und aktivieren Sie dann den Nginx-Dienst über systemctl:
sudo nginx -t sudo systemctl nginx.service neu ladenInstallieren eines SSL-Zertifikats
Wenn Ihr Reverse-Proxy betriebsbereit ist, können Sie jetzt ein SSL-Zertifikat für Ihre Stikked-Instanz anfordern. Die einfachste Möglichkeit besteht darin, das Certbot-Snap-Paket der Electronic Frontier Foundation zu installieren.
- Stellen Sie sicher, dass Ihre Kern-Snap-Binärdateien auf dem neuesten Stand sind und ausgeführt werden:
Sudo Snap Install Core Sudo Snap Refresh Core
- Installieren Sie certbot mit der Snap-Binärdatei Ihres Stikked-Computers:
sudo snap install certbot --classic
- Testen Sie, ob das Programm ordnungsgemäß läuft, indem Sie Ihre E-Mail-Adresse mit certbot verknüpfen:
sudo certbot register --agree-tos -m ramces@email.invalid
- Führen Sie certbot erneut aus, um ein SSL-Zertifikat für Ihre Stikked-Instanz zu erstellen:
sudo certbot --nginx -d my-stikked-installation.com
- Öffnen Sie einen Webbrowser und prüfen Sie, ob Ihre Stikked-Instanz unter SSL läuft.
Gut zu wissen: Erfahren Sie, wie die Verschlüsselung über das Internet funktioniert, indem Sie Ihr eigenes SSL-Zertifikat über OpenSSL ausstellen.
Gestalten Sie Ihre Stikked-Installation
Alle Stildaten befinden sich im Verzeichnis „themes“ im Verzeichnis „htdocs“ Ihres Git-Repositorys. Werfen Sie zur Abwechslung einen Blick in das Unterverzeichnis, um einige interessante Auswahlmöglichkeiten zu sehen.
- Gehen Sie in das Stikked-Git-Repository und navigieren Sie zum Verzeichnis „htdocs/themes“.
cd ~/Stikked/htdocs/themes
- Die meisten Stilentscheidungen werden in jedem Themenordner getroffen. Beispielsweise verwandelt das Geocities-Thema Ihr Stikked so, dass es wie eine Website in den 1990er Jahren aussieht.
- Um das Erscheinungsbild Ihrer Instanz zu ändern, müssen Sie zunächst Ihren Docker-Container herunterfahren:
- Öffnen Sie die Hauptkonfigurationsdatei Ihrer Instanz mit Ihrem bevorzugten Texteditor:
nano ~/Stikked/docker/stikked.php
- Scrollen Sie nach unten zu der Zeile, die die $config enthält['theme'] Variable und ändern Sie ihren Wert in „cleanwhite“.
- Speichern Sie Ihre Hauptkonfigurationsdatei und laden Sie Ihren Docker-Container neu:
- Öffnen Sie einen Webbrowser und laden Sie Ihre neue Webseite. Hier ist meine „Erstellen“-Seite nach dem Laden des Cleanwhite-Themes.
Merkmale
Stikked verfügt über eine Reihe interessanter Funktionen, die es aus der Masse anderer Pastebin-Skripte hervorheben.
Zunächst einmal deckt es alle Möglichkeiten ab, wenn es um die Hervorhebung der Syntax geht. Stikked unterstützt eine riesige Liste von Programmier- und Skriptsprachen, von C bis Bash. Was auch immer Sie programmieren, mit Ihrer Stikked-Installation sind Sie bestens gerüstet.
Die Sprache jedes Snippets wird in einer Tabelle auf der Seite „Zuletzt verwendet“ angezeigt. Wenn das Poster keine Sprache für eine Einfügung angegeben hat, wird es mit „Text“ gekennzeichnet. Die Tabelle zeigt außerdem den Titel, den Namen des Posters und die Aktualität sowie ein RSS-Symbol an. Der RSS-Feed befindet sich unter your-stikked-installation.com/lists/rss.
Die Seite „Trends“ ist nahezu identisch, enthält jedoch zusätzlich eine Spalte „Hits“ und keinen RSS-Feed. Treffer scheinen auf der Grundlage von Besuchen von eindeutigen IP-Adressen berechnet zu werden.
Wenn Sie eine Paste erstellen, haben Sie die Möglichkeit, ein Ablaufdatum festzulegen, eine Kurz-URL mithilfe des Dienstes unter bit.ly zu erstellen und/oder den Beitrag privat zu machen. Beachten Sie, dass ein „privates“ Einfügen nicht wirklich privat ist; Jeder Benutzer, der über die URL der Paste verfügt, kann sie sehen, es sei denn, Sie haben die LDAP-Authentifizierung aktiviert. In diesem Fall kann sie jeder registrierte Benutzer mit der URL sehen. „Privat“ bedeutet nur, dass der Beitrag nicht auf den Seiten „Neueste“ oder „Trends“ angezeigt wird.
Abgesehen von der Sicherheit bietet Stikked einige nette Dienstprogramme zum Anzeigen einer Paste. Ich bin besonders zufrieden mit dem Einbettungscode.
Sie können auch auf Einfügungen antworten und Ihre eigenen Änderungen über ein Formular unterhalb der ursprünglichen Einfügung hinzufügen. Der einzige Nachteil dabei ist, dass die Antworten nicht auf den ursprünglichen Beitrag verweisen. Wenn Ihr Pastebin viele verschiedene Beiträge und Antworten zu unterschiedlichen Zeiten enthält, kann es leicht passieren, dass Sie den Überblick über deren Struktur verlieren. Ich kann nur hoffen, dass der Entwickler irgendwann Thread-Antworten einführt.
Eine letzte Funktion ist die Spam-Kontrolle, die Stikked als „Spamadmin“ bezeichnet. Richten Sie es ein, indem Sie in den Zeilen 79 und 80 Anmeldeinformationen in „docker/stikked.php“ eingeben:
$config['spamadmin_user'] = 'stikked'; $config['spamadmin_pass'] = 'stikked';Gehen Sie zu your-stikked-installation.com/spamadmin, um sich anzumelden. Dort können Sie sehen, welche Einfügungen von welchen IP-Adressen stammen, Einfügungen entfernen und IP-Bereiche blockieren.
API
Mit der API von Stikked können Sie Inhalte von Pastebin-Clients einfügen. Die in Ihrem Client zu verwendende API-URL lautet your-stikked-installation.com/api/create.
Ein einfaches Beispiel ist die Verwendung des cURL-Befehls zum Hochladen einer Datei namens „smalltalk.st“, wobei Titel, Name, Datenschutz, Sprache und Ablaufzeit in Minuten festgelegt werden:
curl -d title='cURL test' -d name='Ramces' -d private=1 -d lang=c -d Expire=45 --data-urlencode text@count.c https://my-stikked-installation .com/api/createDadurch wird die URL der Paste zurückgegeben.
Wenn Sie eine einfache Möglichkeit suchen, Textausschnitte auf Ihrer eigenen Website zu sammeln und zu teilen, empfehle ich Ihnen, Stikked auszuprobieren.
In diesem Sinne besteht eine Möglichkeit, schnell einige Textausschnitte zum Teilen zu erhalten, darin, eine neue Programmiersprache zu lernen. Erfahren Sie, wie Sie Bash-Skripte schreiben können, indem Sie unsere einfache Anleitung für Anfänger durchgehen. Sie können dieses Wissen auch erweitern, indem Sie unseren ausführlichen Einblick in Bash-Variablen und ihre Verwendung lesen.
Schreibe einen Kommentar