Jak postawić Shlink na Saplo (własny skracacz linków ze statystykami)

Shlink to open source skracacz linków bez limitu adresów i bez miesięcznego czynszu za kolejny link. Pokazujemy, jak postawić go na własnym Boxie i zacząć skracać linki przez darmowy klient app.shlink.io.

Grzegorz Kalmus· ·47 wyświetleń

Bitly w płatnym planie potrafi kosztować grubo ponad sto złotych miesięcznie, zanim jeszcze przekroczysz limit skróconych linków, bo rozliczenie zależy od liczby aktywnych adresów i kliknięć. Shlink to open source skracacz linków, ten sam pomysł co Bitly, tylko stawiany na własnym Boxie, jednorazowo, bez limitu adresów i bez comiesięcznej faktury. Poniżej krok po kroku, jak postawić Shlinka na Saplo.

Dlaczego Shlink na własnym Boxie zamiast Bitly

Płatne plany Bitly mają dwie cechy, które szczególnie bolą przy kampaniach marketingowych i długoterminowym śledzeniu linków:

  • limit liczby skróconych linków i kliknięć w miesiącu - darmowy plan wystarcza na pojedynczą kampanię, nie na cały rok pracy agencji,
  • dane o kliknięciach trzymane u zewnętrznej firmy - statystyki ruchu z Twoich kampanii zostają na serwerach Bitly, nie na Twoim.

Shlink to ten sam mechanizm skracania linków i liczenia kliknięć, który stawiasz na własnym Boxie. Zero limitu liczby adresów, dane o kliknięciach zostają na Twojej infrastrukturze, a własna domena skracająca wygląda profesjonalnie zamiast generycznego bit.ly.

Wymagania

Żeby postawić Shlinka na Saplo, potrzebujesz:

  • Boxa z uruchomionym Dockerem (silnik włącza go automatycznie przy instalacji z katalogu, wymagane jest nesting w kontenerze, co Saplo ma domyślnie),
  • minimum 512 MB RAM wolnego na Boxie i 2 GB miejsca na dysku,
  • domeny albo subdomeny *.saploapp.pl w cenie każdego planu, najlepiej krótkiej, bo to ona będzie widoczna w każdym skróconym linku.

Warto od razu rozróżnić, czym Shlink jest, a czym nie jest. Shlink to wyłącznie REST API i serwer przekierowań krótkich linków, bez własnego panelu webowego w przeglądarce. Linkami zarządzasz przez darmowy oficjalny klient app.shlink.io, w którym po instalacji dodajesz swój serwer, albo bezpośrednio przez REST API. Do samej instalacji nie potrzebujesz żadnej zewnętrznej bazy, bo domyślnie Shlink trzyma dane w lokalnym pliku SQLite w wolumenie danych, opcjonalnie możesz wybrać współdzieloną bazę MySQL Saplo, jeśli spodziewasz się dużego ruchu.

Instalacja krok po kroku

  1. W panelu Saplo wejdź w Katalog aplikacji i wybierz Shlink (kategoria "Narzędzia").
  2. Wskaż Box, na którym ma stanąć, oraz domenę albo subdomenę, pod którą będą działać skrócone linki, i wybierz bazę danych: SQLite (domyślnie, zero dodatkowej infrastruktury) albo MySQL (współdzielona baza Saplo, lepsza przy dużym ruchu).
  3. Zatwierdź instalację. Silnik stawia kontener Docker z oficjalnym obrazem shlinkio/shlink, generuje losowy klucz API i wystawia serwer pod wskazaną domeną przez nginx z darmowym SSL.
  4. Silnik czeka, aż Shlink faktycznie odpowie na zapytanie o stan zdrowia, i to dwukrotnie, zanim uzna instalację za zakończoną, bo pierwsze uruchomienie wymaga migracji schematu bazy, która potrafi zająć więcej niż kilka sekund.
  5. Po zakończeniu w katalogu aplikacji na Boxie znajdziesz plik SHLINK-SETUP.txt z adresem serwera i wygenerowanym kluczem API.

Pierwsza konfiguracja

Shlink, tak samo jak Grafana czy MinIO, generuje dane dostępowe automatycznie przy instalacji zamiast prosić o nie w kreatorze, z tą różnicą, że tutaj nie chodzi o hasło do panelu, tylko o klucz API, bo panelu webowego po prostu nie ma.

  1. Otwórz SHLINK-SETUP.txt, znajdziesz w nim adres serwera i klucz API.
  2. Wejdź na app.shlink.io, oficjalny darmowy klient webowy Shlinka, i dodaj swój serwer podając adres oraz klucz API z pliku. Dane serwera zostają wyłącznie w Twojej przeglądarce, Shlink ma wbudowane wsparcie CORS dokładnie pod ten scenariusz.
  3. Utwórz pierwszy skrócony link w zakładce tworzenia linku, opcjonalnie z własnym krótkim kodem zamiast losowego ciągu znaków.
  4. Sprawdź statystyki kliknięć i kod QR dla utworzonego linku, obie funkcje są wbudowane i dostępne od razu po instalacji.

Jeśli wolisz automatyzację zamiast klikania w interfejsie, to samo da się zrobić bezpośrednio przez REST API, na przykład utworzenie skróconego linku jedną komendą:

curl -s -X POST 'https://twoja-domena.saploapp.pl/rest/v3/short-urls' \
  -H "X-Api-Key: TWOJ_KLUCZ_API" -H 'Content-Type: application/json' \
  -d '{"longUrl":"https://saplo.pl"}'

Shlink na Saplo kontra Bitly

Bitly Premium Shlink na Saplo
Koszt rośnie z liczbą linków i kliknięć w miesiącu w cenie planu Saplo, bez limitu adresów
Gdzie są dane infrastruktura Bitly Twój Box
Własna domena skracająca dostępna w wyższych planach dowolna subdomena *.saploapp.pl w cenie
Statystyki kliknięć i kody QR tak tak
Kto administruje Bitly Ty, ale bez ręcznego stawiania serwera

Najczęstsze pytania

Czy Shlink ma panel webowy do logowania jak WordPress albo Ghost? Nie, Shlink to wyłącznie REST API i serwer przekierowań. Linkami zarządzasz przez darmowy oficjalny klient app.shlink.io albo bezpośrednio przez REST API, kluczem API z pliku SHLINK-SETUP.txt.

Czy jest limit liczby skróconych linków? Nie, Shlink nie narzuca żadnego limitu liczby adresów ani kliknięć, jedynym ograniczeniem są zasoby wykupionego Boxa.

Czy mogę zobaczyć, z jakiego kraju kliknięto w link? Domyślnie nie, geolokalizacja odwiedzin wymaga własnego, darmowego klucza od MaxMind, którego nie da się założyć automatycznie w trakcie instalacji. Bez niego Shlink liczy kliknięcia normalnie, tylko bez informacji o kraju odwiedzającego.

Czym różni się SQLite od MySQL przy instalacji? SQLite to plik bazy w wolumenie danych, zero dodatkowej infrastruktury, wystarcza w większości przypadków. MySQL to współdzielona baza Saplo, warta wyboru dopiero przy naprawdę dużym ruchu kliknięć.

Czy dane w Shlinku są automatycznie kopiowane zapasowo? To zależy od wykupionego planu Boxa, backup działa na poziomie całego Boxa, tak samo jak przy innych aplikacjach z katalogu, nie jest to osobna funkcja samego Shlinka.

Jeśli masz pytania przy stawianiu Shlinka na własnym Boxie albo podpinaniu go do klienta app.shlink.io, napisz do nas, pomożemy z pierwszą konfiguracją.