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.plw 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
- W panelu Saplo wejdź w Katalog aplikacji i wybierz Shlink (kategoria "Narzędzia").
- 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).
- 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. - 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.
- Po zakończeniu w katalogu aplikacji na Boxie znajdziesz plik
SHLINK-SETUP.txtz 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.
- Otwórz
SHLINK-SETUP.txt, znajdziesz w nim adres serwera i klucz API. - 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. - Utwórz pierwszy skrócony link w zakładce tworzenia linku, opcjonalnie z własnym krótkim kodem zamiast losowego ciągu znaków.
- 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ą.