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
- 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
- Przewiń do kategorii „mysql:” i zastąp podkategorię „command:” następującym kodem:
command: mysqld
- 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.
- 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”.
- 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;
}}
- 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
- 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.
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.
- 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”.
- 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.
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ę.
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.
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.
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.
Poza bezpieczeństwem, Stikked zapewnia kilka fajnych narzędzi do przeglądania pasty. Jestem szczególnie zadowolony z kodu osadzania.
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.
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.
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