Betreiben Sie Ihren eigenen Pastebin mit Stikked

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.

Stikked 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 clone https://github.com/claudehohl/Stikked.git

  • Gehen Sie zum Stikked-Ordner:

cd. /Stikked

Ein Terminal, das den Git-Klonvorgang für das Stikked-Repository zeigt.
  • Öffnen Sie die darin enthaltene Datei „docker-compose.yml“ mit Ihrem bevorzugten Texteditor.
  • Scrollen Sie zur Variablen „ports:“ unter der Kategorie „services:“ und ändern Sie ihren Wert wie folgt:

ports:
- 8080:80/tcp

Ein Terminal, das die Ports-Variable für den Stikked-Docker-Container anzeigt.
  • Scrollen Sie zur Kategorie „mysql:“ und ersetzen Sie die Unterkategorie „command:“ durch den folgenden Code:

command: mysqld

Ein Terminal, das den neuen MySQL-Befehl für den Docker-Container anzeigt.
  • Öffnen Sie die Hauptkonfigurationsdatei von Stikked:

nano ~/Stikked/docker/stikked.php

  • Gehen Sie zu der Zeile, die die Variable enthält, $config['base_url']und ersetzen Sie „localhost“ durch den vollständig qualifizierten Domänennamen Ihres Systems. Speichern und beenden Sie die Datei.
Ein Terminal, das eine beispielhafte Basis-URL für die Instanz anzeigt.
  • Öffnen Sie die Datei „nginx.conf“ im Stikked-Container:

nano ~/Stikked/docker/nginx.conf

  • Entfernen Sie die drei Zeilen unter „Nur Anfragen an unseren Gastgeber sind zulässig.“
Ein Terminal markiert einen Teil der Docker-Nginx-Konfiguration, der entfernt werden soll.
  • Erstellen Sie Ihren Docker-Container, indem Sie den folgenden Befehl ausführen:

docker compose up -d

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;
listen [::]:80;

root /var/www/html;
server_name my-stikked-installation.com;


location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:8080;
}}

Ein Terminal, das eine beispielhafte Nginx-Reverse-Proxy-Konfiguration zeigt.
  • 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 -tsudo systemctl reload nginx.service

Installieren 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

Ein Terminal, das den Installationsprozess für Certbot zeigt.
  • 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.
Ein Screenshot, der eine funktionierende Stikked-Instanz zeigt.

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.
Ein Screenshot, der ein Retro-Theme für Stikked zeigt.
  • Um das Erscheinungsbild Ihrer Instanz zu ändern, müssen Sie zunächst Ihren Docker-Container herunterfahren:

docker compose down

  • Ö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['theme']Variable enthält, und ändern Sie ihren Wert in „cleanwhite“.
Ein Terminal, das die Designvariable für die aktuelle Instanz anzeigt.
  • Speichern Sie Ihre Hauptkonfigurationsdatei und laden Sie Ihren Docker-Container neu:

docker compose up -d

  • Öffnen Sie einen Webbrowser und laden Sie Ihre neue Webseite. Hier ist meine „Erstellen“-Seite nach dem Laden des Cleanwhite-Themes.
Ein Screenshot, der zeigt, wie Stikked mit einem Cleanwhite-Thema ausgeführt wird.

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.

Ein Screenshot, der die Syntaxhervorhebungsfunktionen von Stikked zeigt.

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.

Ein Screenshot, der einen reinen RSS-Feed für die Stikked-Instanz zeigt.

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.

Ein Screenshot, der die Liste der Trendeinfügungen in der aktuellen Instanz zeigt.

Wenn Sie eine Paste erstellen, haben Sie die Möglichkeit, ein Ablaufdatum festzulegen, eine Kurz-URL mithilfe des Dienstes 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 die URL der Paste hat, 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 lediglich, dass der Beitrag nicht auf den Seiten „Neueste“ oder „Trends“ angezeigt wird.

Ein Screenshot, der eine private Einfügung zeigt.

Abgesehen von der Sicherheit bietet Stikked einige nette Dienstprogramme zum Anzeigen einer Paste. Ich bin besonders zufrieden mit dem Einbettungscode.

Ein Screenshot, der ein Beispiel eines Einbettungs-Snippets für die aktuelle Einfügung zeigt.

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.

Ein Screenshot, der das Spamadmin-Kontrollfeld für Stikked zeigt.

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/create

Dadurch wird die URL der Paste zurückgegeben.

Ein Screenshot, der eine Beispielpaste zeigt, die mit der Stikked-API erstellt wurde.

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 .

Bildnachweis: Christopher Gower über Unsplash . Alle Änderungen und Screenshots von Ramces Red.

Schreibe einen Kommentar

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