Kjør din egen pastebin med Stikked 1

Kjør din egen pastebin med Stikked


Hvis du er en utvikler av noe slag, har du sikkert hørt om Pastebin.com, den mest brukte nettapplikasjonen for å lime inn og dele tekstbiter. Pastebin.com er flott, men det er ikke det eneste pastebin-verktøyet der ute.

Faktisk blir det stadig mer vanlig at nettsteder er vert for sine egne pastebins. Det gir deg mer frihet. Det er mange open source pastebin-implementeringer, og Stikked er en av de mer nyttige med sine avanserte funksjoner og strømlinjeformet brukergrensesnitt.

Stikket er bygget med PHP og jQuery og bruker CodeIgniter-rammeverket.

Installerer Stikked

Stikked krever at serveren din kjører:

  • Git
  • Nginx
  • Docker og Docker Compose
  1. For å laste ned den nyeste versjonen av Stikked, besøk Stikked GitHub-siden eller gå til kommandolinjen og kjør:
git clone https://github.com/claudehohl/Stikked.git
  1. Gå til Stikked-mappen:
cd ./Stikked
En terminal som viser git-kloneprosessen for Stikked-depotet.
  1. Åpne «docker-compose.yml»-filen inne ved å bruke din favoritt tekstredigerer.
  2. Rull til «ports:»-variabelen under kategorien «tjenester:» og endre verdien til følgende:
ports:
    - 8080:80/tcp
En terminal som viser portvariabelen for Stikked docker-container.
  1. Rull til kategorien «mysql:» og erstatt underkategorien «command:» med følgende kode:
command: mysqld
En terminal som viser den nye mysql-kommandoen for docker-beholderen.
  1. Åpne hovedkonfigurasjonsfilen for Stikked:
nano ~/Stikked/docker/stikked.php
  1. Gå til linjen som inneholder variabelen $config['base_url'] og erstatte «localhost» med systemets fullt kvalifiserte domenenavn. Lagre og avslutt filen.
En terminal som viser et eksempel på en basis-URL for forekomsten.
  1. Åpne «nginx.conf»-filen inne i Stikked-beholderen:
nano ~/Stikked/docker/nginx.conf
  1. Fjern de tre linjene under «Kun forespørsler til vår vert er tillatt.»
En terminal som fremhever en del av docker Nginx-konfigurasjonen som skal fjernes.
  1. Bygg Docker-beholderen din ved å kjøre følgende kommando:
docker compose up -d

FYI: Lær hvordan du kan være vert for ditt eget Kanban-brett på Linux ved å bruke Docker og Kanboard.

Opprette en SSL Nginx Reverse Proxy

På dette tidspunktet har du nå en Stikked-installasjon som kjører på port 8080. Mens du kan bruke denne som den er, kan den grunnleggende Stikked-beholderen være usikker siden den ikke krypterer tilkoblingen som standard. For å fikse dette, må du opprette en omvendt proxy som kan lytte etter innkommende tilkoblinger som den deretter krypterer gjennom SSL.

  1. Opprett en ny sidekonfigurasjonsfil under «/etc/nginx/sites-available/»
sudo nano /etc/nginx/sites-available/stikked
  1. Lim inn følgende kode i den nye nettstedsfilen. Dette er en enkel omvendt proxy som lytter på innkommende ukrypterte tilkoblinger på port 80 og omdirigerer alle spørringer til 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;
    }
}
En terminal som viser et eksempel på Nginx omvendt proxy-konfigurasjon.
  1. Lag en symbolsk lenke for nettstedsfilen din inne i «/etc/nginx/sites-enabled» og fjern standard nettstedsfilen i den:
sudo ln -s /etc/nginx/sites-available/stikked /etc/nginx/sites-enabled/
  1. Test Nginx-konfigurasjonen for eventuelle feil, og aktiver deretter Nginx-tjenesten systemctl:
sudo nginx -t
sudo systemctl reload nginx.service

Installere et SSL-sertifikat

Med din omvendte proxy oppe og kjører, kan du nå be om et SSL-sertifikat for din Stikked-forekomst. Det enkleste alternativet er å installere certbot snap-pakken fra Electronic Frontier Foundation.

  1. Sørg for at kjernenap-binærfilene dine er oppdatert og kjører:
sudo snap install core
sudo snap refresh core
  1. Installer certbot ved å bruke din Stikked-maskins snap-binær:
sudo snap install certbot --classic
En terminal som viser installasjonsprosessen for certbot.
  1. Test om programmet kjører riktig ved å koble e-postadressen din til certbot:
sudo certbot register --agree-tos -m ramces@email.invalid
  1. Kjør certbot igjen for å lage et SSL-sertifikat for din Stikked-forekomst:
sudo certbot --nginx -d my-stikked-installation.com
  1. Åpne en nettleser og sjekk om Stikked-forekomsten din kjører under SSL.
Et skjermbilde som viser en fungerende Stikked-forekomst.

Godt å vite: Lær hvordan kryptering fungerer over internett ved å utstede ditt eget SSL-sertifikat gjennom OpenSSL.

Styling av din stikkede installasjon

Alle stildataene finnes i katalogen kalt «temaer» under «htdocs»-katalogen i Git-depotet ditt. For kick, ta en titt inne i underkatalogen for å se noen interessante valg.

  1. Gå inn i Stikked Git-depotet og naviger til «htdocs/themes»-katalogen.
cd ~/Stikked/htdocs/themes
  1. De fleste av stylingvalgene er gjort i hver temamappe. Geocity-temaet forvandler for eksempel din Stikked til å se ut akkurat som en nettside på 1990-tallet.
Et skjermbilde som viser et retro-tema for Stikked.
  1. For å endre instansens utseende, må du først slå av Docker-beholderen:
docker compose down
  1. Åpne forekomstens hovedkonfigurasjonsfil ved å bruke din favoritt tekstredigerer:
nano ~/Stikked/docker/stikked.php
  1. Rull ned til linjen som inneholder $config['theme'] variabel og endre verdien til «cleanwhite».
En terminal som viser temavariabelen for gjeldende forekomst.
  1. Lagre hovedkonfigurasjonsfilen din og last Docker-beholderen på nytt:
docker compose up -d
  1. Åpne en nettleser og last inn den nye nettsiden din. Her er min «Opprett»-side etter å ha lastet cleanwhite-temaet.
Et skjermbilde som viser Stikked som løper med et rent hvitt tema.

Egenskaper

Stikked har en rekke interessante funksjoner som gjør at den skiller seg ut fra mengden av andre pastebin-skript.

For det første kjører den spekteret når det gjelder syntaksutheving. Stikked støtter en enorm liste over programmerings- og skriptspråk, fra C til Bash. Uansett hva du koder inn, har Stikked-installasjonen deg dekket.

Et skjermbilde som viser syntaksfremhevingsfunksjonene til Stikked.

Språket til hver kodebit vises i en tabell på «Nylig»-siden; hvis plakaten ikke spesifiserte et språk for en lime, er den merket med «tekst». Tabellen viser også tittelen, plakatens navn og siste nytt, sammen med et RSS-ikon. RSS-feeden ligger på your-stikked-installation.com/lists/rss.

Et skjermbilde som viser en bare RSS-feed for Stikked-forekomsten.

«Trending»-siden er nesten identisk, men med tillegg av en «treff»-kolonne og ingen RSS-feed. Treff ser ut til å bli beregnet basert på besøk fra unike IP-adresser.

Et skjermbilde som viser listen over populære pastaer i gjeldende forekomst.

Når du oppretter en lim, har du muligheten til å angi en utløpsdato, lage en kort URL ved å bruke tjenesten på bit.ly, og/eller gjøre innlegget privat. Merk at en «privat» pasta ikke er virkelig privat; enhver bruker som har innlimingens URL kan se den, med mindre du har aktivert LDAP-autentisering – i så fall kan alle registrerte brukere med URL se den. «Privat» betyr bare at innlegget ikke vises på sidene for nylig eller på vei opp.

Et skjermbilde som viser en privat lim.

Bortsett fra sikkerhet, gir Stikked noen pene verktøy for å se en lim. Jeg er spesielt fornøyd med innebygde koden.

Et skjermbilde som viser et eksempel på en innbyggingskodebit for gjeldende lim.

Du kan også svare på lim og legge til dine egne redigeringer fra et skjema under den opprinnelige limen. Den eneste ulempen med dette er at svar ikke lenker tilbake til det opprinnelige innlegget; hvis pastebinen din har mange forskjellige innlegg og svar laget til forskjellige tider, er det lett å miste oversikten over strukturen deres. Jeg kan bare håpe at utvikleren på et tidspunkt vil introdusere trådede svar.

En siste funksjon er spam-kontroll, som Stikked refererer til som «spamadmin.» Sett det opp ved å skrive inn legitimasjon i «docker/stikked.php» på linje 79 og 80:

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

Gå til your-stikked-installation.com/spamadmin for å logge inn. Der kan du se hvilke pastaer som kom fra hvilke IP-adresser, fjerne pastaer og blokkere IP-områder.

Et skjermbilde som viser spamadmin kontrollpanel for Stikked.

API

Stikkeds API lar deg lime inn i den fra pastebin-klienter. API-URLen som skal brukes i klienten din er your-stikked-installation.com/api/create.

Et grunnleggende eksempel er å bruke cURL-kommandoen til å laste opp en fil som heter «smalltalk.st», og angi tittel, navn, personvern, språk og utløpstid i minutter:

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

Dette vil returnere URL-en til limen.

Et skjermbilde som viser et eksempel på lim laget med Stikked API.

Ønsker du en enkel måte å samle og dele tekstbiter på din egen nettside, anbefaler jeg deg å prøve Stikked.

På den måten er en måte å raskt få noen tekstbiter å dele ved å lære et nytt programmeringsspråk. Lær hvordan du kan skrive Bash-manus ved å gå gjennom vår enkle guide for nybegynnere. Du kan også utvide denne kunnskapen ved å lese gjennom vårt dypdykk om Bash-variabler og deres bruk.

Støtt vårt arbeid ❤️

Hvis du likte denne artikkelen, vurder å gi en tips for å hjelpe oss med å fortsette å publisere kvalitetsinnhold.

Sikker betaling med PayPal
Moyens I/O Staff har motivert deg, gitt deg råd om teknologi, personlig utvikling, livsstil og strategier som vil hjelpe deg.