Gestisci il tuo Pastebin con Stikked
Se sei uno sviluppatore di qualsiasi tipo, probabilmente hai sentito parlare di Pastebin.com, l’applicazione web più utilizzata per incollare e condividere frammenti di testo. Pastebin.com è fantastico, ma non è l’unico strumento pastebin là fuori.
In effetti, sta diventando sempre più comune per i siti Web ospitare i propri pastebin. Ti dà più libertà. Esistono molte implementazioni di pastebin open source e Stikked è una delle più utili con le sue funzionalità avanzate e l’interfaccia utente semplificata.
Stikked è costruito con PHP e jQuery e utilizza il framework CodeIgniter.
Installazione di Stikked
Stikked richiede che il tuo server sia in esecuzione:
- Idiota
- Nginx
- Docker e Docker Compose
- Per scaricare l’ultima versione di Stikked, visita la pagina Stikked GitHub o vai alla riga di comando ed esegui:
git clone https://github.com/claudehohl/Stikked.git
- Vai alla cartella Stikked:
cd. /Stikked
- Apri il file “docker-compose.yml” all’interno utilizzando il tuo editor di testo preferito.
- Scorri fino alla variabile “ports:” sotto la categoria “services:” e modifica il suo valore come segue:
ports:
- 8080:80/tcp
- Scorri fino alla categoria “mysql:” e sostituisci la sottocategoria “command:” con il seguente codice:
command: mysqld
- Apri il file di configurazione principale di Stikked:
nano ~/Stikked/docker/stikked.php
- Vai alla riga che contiene la variabile
$config['base_url']
e sostituisci “localhost” con il nome di dominio completo del tuo sistema. Salva ed esci dal file.
- Apri il file “nginx.conf” all’interno del contenitore Stikked:
nano ~/Stikked/docker/nginx.conf
- Rimuovi le tre righe sotto “Sono consentite solo le richieste al nostro host”.
- Crea il tuo contenitore Docker eseguendo il seguente comando:
docker compose up -d
Creazione di un proxy inverso Nginx SSL
A questo punto, ora hai un’installazione Stikked in esecuzione sulla porta 8080. Anche se puoi usarlo così com’è, il contenitore Stikked di base può essere insicuro poiché non crittografa la sua connessione per impostazione predefinita. Per risolvere questo problema, è necessario creare un proxy inverso in grado di ascoltare le connessioni in entrata che poi crittografa tramite SSL.
- Crea un nuovo file di configurazione del sito in “/etc/nginx/sites-available/”
sudo nano /etc/nginx/sites-available/stikked
- Incolla il seguente codice all’interno del tuo nuovo file del sito. Questo è un semplice proxy inverso che ascolta le connessioni non crittografate in entrata sulla porta 80 e reindirizza tutte le query alla porta 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;
}}
- Crea un collegamento simbolico per il file del tuo sito all’interno di “/etc/nginx/sites-enabled” e rimuovi il file del sito predefinito al suo interno:
sudo ln -s /etc/nginx/sites-available/stikked /etc/nginx/sites-enabled/
- Testa la tua configurazione Nginx per eventuali errori, quindi abilita il servizio Nginx tramite
systemctl
:
sudo nginx -tsudo systemctl reload nginx.service
Installazione di un certificato SSL
Con il tuo proxy inverso attivo e funzionante, ora puoi richiedere un certificato SSL per la tua istanza Stikked. L’opzione più semplice è installare il pacchetto snap certbot dalla Electronic Frontier Foundation.
- Assicurati che i file binari dello snap principale siano aggiornati e in esecuzione:
sudo snap install core
sudo snap refresh core
- Installa certbot usando il binario snap della tua macchina Stikked:
sudo snap install certbot --classic
- Verifica se il programma funziona correttamente collegando il tuo indirizzo email a certbot:
sudo certbot register --agree-tos -m ramces@email.invalid
- Esegui di nuovo certbot per creare un certificato SSL per la tua istanza Stikked:
sudo certbot --nginx -d my-stikked-installation.com
- Apri un browser Web e controlla se la tua istanza Stikked è in esecuzione con SSL.
Disegna la tua installazione stikked
Tutti i dati di stile esistono nella directory chiamata “themes” sotto la directory “htdocs” del tuo repository Git. Per i calci, dai un’occhiata all’interno della sottodirectory per vedere alcune scelte interessanti.
- Entra nel repository Stikked Git e vai alla directory “htdocs/themes”.
cd ~/Stikked/htdocs/themes
- La maggior parte delle scelte stilistiche vengono effettuate all’interno di ogni cartella del tema. Ad esempio, il tema geocities trasforma il tuo Stikked in modo che sembri proprio un sito Web negli anni ’90.
- Per modificare l’aspetto della tua istanza, devi prima chiudere il container Docker:
docker compose down
- Apri il file di configurazione principale della tua istanza utilizzando il tuo editor di testo preferito:
nano ~/Stikked/docker/stikked.php
- Scorri verso il basso fino alla riga che contiene la
$config['theme']
variabile e cambia il suo valore in “cleanwhite”.
- Salva il tuo file di configurazione principale e ricarica il tuo contenitore Docker:
docker compose up -d
- Apri un browser web e carica la tua nuova pagina web. Ecco la mia pagina “Crea” dopo aver caricato il tema cleanwhite.
Caratteristiche
Stikked ha una serie di caratteristiche interessanti che lo distinguono dalla massa di altri script pastebin.
Prima di tutto, esegue la gamma quando si tratta di evidenziare la sintassi. Stikked supporta un vasto elenco di linguaggi di programmazione e scripting, da C a Bash. Qualunque cosa tu stia codificando, la tua installazione Stikked ti ha coperto.
La lingua di ogni frammento viene visualizzata in una tabella nella pagina “Recenti”; se il poster non ha specificato una lingua per una pasta, viene etichettato come “testo”. La tabella mostra anche il titolo, il nome dell’autore e l’attualità, insieme a un’icona RSS. Il feed RSS si trova su your-stikked-installation.com/lists/rss.
La pagina “Trending” è quasi identica ma con l’aggiunta di una colonna “hit” e nessun feed RSS. Gli hit sembrano essere calcolati in base alle visite da indirizzi IP univoci.
Quando crei un incolla, hai la possibilità di impostare una data di scadenza, creare un breve URL utilizzando il servizio su bit.ly e/o rendere privato il post. Si noti che una pasta “privata” non è veramente privata; qualsiasi utente che ha l’URL dell’incolla può vederlo, a meno che tu non abbia abilitato l’autenticazione LDAP – in tal caso, ogni utente registrato con l’URL può vederlo. “Privato” significa solo che il post non verrà visualizzato nelle pagine recenti o di tendenza.
Sicurezza a parte, Stikked fornisce alcune utili utility per visualizzare una pasta. Sono particolarmente soddisfatto del codice di incorporamento.
Puoi anche rispondere agli incolla e aggiungere le tue modifiche da un modulo sotto l’incolla originale. L’unico svantaggio di questo è che le risposte non rimandano al post originale; se il tuo pastebin ha molti post diversi e risposte fatte in momenti diversi, è facile perdere traccia della loro struttura. Posso solo sperare che lo sviluppatore a un certo punto introduca risposte in thread.
Un’ultima caratteristica è il controllo dello spam, che Stikked chiama “spamadmin”. Configuralo inserendo le credenziali in “docker/stikked.php” alle righe 79 e 80:
$config['spamadmin_user'] = 'stikked';
$config['spamadmin_pass'] = 'stikked';
Vai su your-stikked-installation.com/spamadmin per accedere. Lì puoi vedere quali paste provengono da quali indirizzi IP, rimuovere le paste e bloccare gli intervalli IP.
API
L’API di Stikked ti consente di incollarlo dai client pastebin. L’URL dell’API da utilizzare nel tuo client è your-stikked-installation.com/api/create.
Un esempio di base consiste nell’utilizzare il comando cURL per caricare un file chiamato “smalltalk.st”, impostando titolo, nome, privacy, lingua e tempo di scadenza in minuti:
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
Questo restituirà l’URL della pasta.
Se desideri un modo semplice per raccogliere e condividere frammenti di testo sul tuo sito web, ti consiglio di provare Stikked.
In quella nota, un modo per ottenere rapidamente alcuni frammenti di testo da condividere è imparare un nuovo linguaggio di programmazione. Scopri come scrivere script Bash consultando la nostra semplice guida per principianti . Puoi anche espandere questa conoscenza leggendo il nostro approfondimento sulle variabili Bash e sui loro usi .
Credito immagine: Christopher Gower tramite Unsplash . Tutte le modifiche e gli screenshot di Ramces Red.
Lascia un commento