Uruchom swój własny Pastebin za pomocą Stikked

Uruchom swój własny Pastebin za pomocą Stikked

Jeśli jesteś jakimkolwiek programistą, prawdopodobnie słyszałeś o Pastebin.com, najczęściej używanej aplikacji internetowej do wklejania i udostępniania fragmentów tekstu. Pastebin.com jest świetne, ale nie jest to jedyne dostępne narzędzie Pastebin.

W rzeczywistości strony internetowe coraz częściej udostępniają własne pastebiny. Daje ci to więcej swobody. Istnieje wiele implementacji pastebin typu open source, a Stikked jest jedną z bardziej użytecznych dzięki zaawansowanym funkcjom i usprawnionemu interfejsowi użytkownika.

Stikked jest zbudowany z PHP i jQuery i wykorzystuje framework CodeIgniter.

Instalowanie Stikkeda

Stikked wymaga, aby twój serwer działał:

  • Git
  • Nginx
  • Docker i Docker Compose
  • Aby pobrać najnowszą wersję Stikked, odwiedź stronę Stikked GitHub lub przejdź do wiersza poleceń i uruchom:

git clone https://github.com/claudehohl/Stikked.git

  • Przejdź do folderu Stikked:

cd. /Stikked

Terminal pokazujący proces klonowania git dla repozytorium Stikked.
  • Otwórz plik „docker-compose.yml” w swoim ulubionym edytorze tekstu.
  • Przewiń do zmiennej „porty:” w kategorii „usługi:” i zmień jej wartość na następującą:

ports:
- 8080:80/tcp

Terminal pokazujący zmienną ports dla kontenera dokera Stikked.
  • Przewiń do kategorii „mysql:” i zastąp podkategorię „command:” następującym kodem:

command: mysqld

Terminal pokazujący nowe polecenie mysql dla kontenera dokera.
  • Otwórz główny plik konfiguracyjny Stikked:

nano ~/Stikked/docker/stikked.php

  • Przejdź do wiersza zawierającego zmienną $config['base_url']i zastąp „localhost” w pełni kwalifikowaną nazwą domeny systemu. Zapisz i zamknij plik.
Terminal pokazujący przykładowy podstawowy adres URL instancji.
  • Otwórz plik „nginx.conf” w kontenerze Stikked:

nano ~/Stikked/docker/nginx.conf

  • Usuń trzy wiersze poniżej „Dozwolone są tylko prośby do naszego gospodarza”.
Terminal podświetlający część konfiguracji dokera Nginx do usunięcia.
  • Zbuduj swój kontener Docker, uruchamiając następujące polecenie:

docker compose up -d

Tworzenie odwrotnego proxy SSL Nginx

W tym momencie masz już instalację Stikked działającą na porcie 8080. Chociaż możesz jej używać bez zmian, podstawowy kontener Stikked może być niepewny, ponieważ domyślnie nie szyfruje połączenia. Aby to naprawić, musisz utworzyć odwrotne proxy , które może nasłuchiwać połączeń przychodzących, które następnie szyfruje przez SSL.

  • Utwórz nowy plik konfiguracyjny witryny w „/etc/nginx/sites-available/”

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

  • Wklej następujący kod do nowego pliku witryny. Jest to prosty odwrotny serwer proxy, który nasłuchuje przychodzących niezaszyfrowanych połączeń na porcie 80 i przekierowuje wszystkie zapytania na port 8080.

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;
}}

Terminal pokazujący przykładową konfigurację odwrotnego serwera proxy Nginx.
  • Utwórz dowiązanie symboliczne do pliku witryny w „/etc/nginx/sites-enabled” i usuń znajdujący się w nim domyślny plik witryny:

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

  • Przetestuj konfigurację Nginx pod kątem błędów, a następnie włącz usługę Nginx poprzez systemctl:

sudo nginx -tsudo systemctl reload nginx.service

Instalacja certyfikatu SSL

Po uruchomieniu zwrotnego serwera proxy możesz teraz poprosić o certyfikat SSL dla swojej instancji Stikked. Najłatwiejszą opcją jest instalacja pakietu snap certbot z Electronic Frontier Foundation.

  • Upewnij się, że podstawowe pliki binarne Snap są aktualne i działają:

sudo snap install core
sudo snap refresh core

  • Zainstaluj certbota przy użyciu pliku binarnego snap twojej maszyny Stikked:

sudo snap install certbot --classic

Terminal pokazujący proces instalacji certbota.
  • Sprawdź, czy program działa poprawnie, łącząc swój adres e-mail z certbotem:

sudo certbot register --agree-tos -m ramces@email.invalid

  • Ponownie uruchom certbota, aby utworzyć certyfikat SSL dla swojej instancji Stikked:

sudo certbot --nginx -d my-stikked-installation.com

  • Otwórz przeglądarkę internetową i sprawdź, czy Twoja instancja Stikked działa pod SSL.
Zrzut ekranu przedstawiający działającą instancję Stikked.

Stylizacja Twojej Stikked instalacji

Wszystkie dane stylów znajdują się w katalogu o nazwie „themes” w katalogu „htdocs” w repozytorium Git. Dla zabawy zajrzyj do podkatalogu, aby zobaczyć kilka interesujących opcji.

  • Wejdź do repozytorium Stikked Git i przejdź do katalogu „htdocs/themes”.

cd ~/Stikked/htdocs/themes

  • Większość opcji stylizacji jest dokonywana w każdym folderze motywu. Na przykład motyw geocities przekształci Twój Stikked tak, aby wyglądał jak strona internetowa z lat 90.
Zrzut ekranu przedstawiający motyw retro dla Stikked.
  • Aby zmodyfikować wygląd swojej instancji, musisz najpierw zamknąć kontener Docker:

docker compose down

  • Otwórz główny plik konfiguracyjny swojej instancji za pomocą swojego ulubionego edytora tekstu:

nano ~/Stikked/docker/stikked.php

  • Przewiń w dół do linii zawierającej zmienną $config['theme']i zmień jej wartość na „cleanwhite”.
Terminal pokazujący zmienną motywu dla bieżącej instancji.
  • Zapisz główny plik konfiguracyjny i ponownie załaduj kontener Dockera:

docker compose up -d

  • Otwórz przeglądarkę internetową i załaduj nową stronę internetową. Oto moja strona „Utwórz” po załadowaniu motywu cleanwhite.
Zrzut ekranu przedstawiający Stikked z motywem cleanwhite.

Cechy

Stikked posiada szereg ciekawych funkcji, które wyróżniają go spośród tłumu innych skryptów pastebin.

Po pierwsze, działa w całej gamie, jeśli chodzi o podświetlanie składni. Stikked obsługuje ogromną listę języków programowania i skryptów, od C do Bash. Niezależnie od tego, w czym kodujesz, Twoja instalacja Stikked zapewni Ci ochronę.

Zrzut ekranu przedstawiający funkcje podświetlania składni Stikked.

Język każdego fragmentu jest wyświetlany w tabeli na stronie „Ostatnie”; jeśli plakat nie określił języka dla wklejania, jest on oznaczony jako „tekst”. W tabeli wyświetlany jest również tytuł, nazwisko autora i data ostatniej publikacji, a także ikona RSS. Kanał RSS znajduje się pod adresem your-stikked-installation.com/lists/rss.

Zrzut ekranu przedstawiający sam kanał RSS dla instancji Stikked.

Strona „Na czasie” jest prawie identyczna, ale z dodatkiem kolumny „trafienia” i bez kanału RSS. Działania wydają się być obliczane na podstawie odwiedzin z unikalnych adresów IP.

Zrzut ekranu przedstawiający listę popularnych wklejeń w bieżącym wystąpieniu.

Podczas tworzenia wklejki masz możliwość ustawienia daty wygaśnięcia, utworzenia krótkiego adresu URL za pomocą usługi bit.ly i/lub ustawienia posta jako prywatnego. Zauważ, że „prywatna” pasta nie jest naprawdę prywatna; każdy użytkownik, który ma adres URL wklejenia, może go zobaczyć, chyba że włączyłeś uwierzytelnianie LDAP – w takim przypadku każdy zarejestrowany użytkownik z adresem URL może go zobaczyć. „Prywatny” oznacza tylko, że post nie pojawi się na stronach Ostatnie ani Najpopularniejsze.

Zrzut ekranu przedstawiający prywatną wklejkę.

Poza bezpieczeństwem, Stikked zapewnia kilka fajnych narzędzi do przeglądania pasty. Jestem szczególnie zadowolony z kodu osadzania.

Zrzut ekranu przedstawiający przykładowy fragment kodu osadzania dla bieżącego wklejenia.

Możesz także odpowiadać na wklejenia i dodawać własne zmiany z formularza pod oryginalnym wklejaniem. Jedynym minusem jest to, że odpowiedzi nie prowadzą do oryginalnego posta; jeśli Twój pastebin zawiera wiele różnych postów i odpowiedzi napisanych w różnym czasie, łatwo zgubić ich strukturę. Mogę tylko mieć nadzieję, że deweloper w pewnym momencie wprowadzi odpowiedzi z wątkami.

Ostatnią funkcją jest kontrola spamu, którą Stikked określa jako „spamadmin”. Skonfiguruj go, wprowadzając poświadczenia w „docker/stikked.php” w liniach 79 i 80:

$config['spamadmin_user'] = 'stikked';
$config['spamadmin_pass'] = 'stikked';

Przejdź do your-stikked-installation.com/spamadmin, aby się zalogować. Tam możesz zobaczyć, które pasty pochodzą z jakich adresów IP, usuwać pasty i blokować zakresy adresów IP.

Zrzut ekranu przedstawiający panel kontrolny spamadmin dla Stikked.

API

API Stikked pozwala na wklejanie do niego z klientów Pastebin. Adres URL interfejsu API do użycia w kliencie to your-stikked-installation.com/api/create.

Podstawowym przykładem jest użycie polecenia cURL do przesłania pliku o nazwie „smalltalk.st”, ustawiając tytuł, nazwę, prywatność, język i czas wygaśnięcia w minutach:

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

Spowoduje to zwrócenie adresu URL wklejenia.

Zrzut ekranu przedstawiający przykładową pastę wykonaną za pomocą Stikked API.

Jeśli chcesz w łatwy sposób zbierać i udostępniać fragmenty tekstu na własnej stronie internetowej, polecam wypróbować Stikked.

W związku z tym jednym ze sposobów szybkiego udostępniania fragmentów tekstu jest nauka nowego języka programowania. Dowiedz się, jak pisać skrypty Bash, korzystając z naszego prostego przewodnika dla początkujących . Możesz także poszerzyć tę wiedzę, czytając nasze szczegółowe informacje na temat zmiennych Bash i ich zastosowań .

Źródło obrazu: Christopher Gower za pośrednictwem Unsplash . Wszystkie przeróbki i zrzuty ekranu autorstwa Ramces Red.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *