RedirectCMS to system zarządzania skróconymi linkami z panelem administracyjnym, zaawansowaną analityką, obsługą kampanii afiliacyjnych i modułem CMS. Napisany w czystym PHP — bez zbędnych frameworków, łatwy w instalacji na dowolnym hostingu z PHP i MySQL.
- Tworzenie skróconych linków z własnym slugiem lub automatycznie generowanym
- Opóźnienie przekierowania (konfigurowalne globalnie i per-link)
- Planowanie publikacji i automatyczne wygasanie linków
- Kosz z możliwością przywrócenia usuniętych linków
- Generowanie kodów QR dla każdego linku
- UTM Builder — kreator parametrów kampanii UTM
- Niestandardowe pola linku (cena, ocena, kod rabatowy i inne)
- Obrazek OG i meta description dla SEO
- Kategorie z kolorami i ikonami
- Tagi — wielokrotne tagowanie linków
- Kampanie — grupowanie linków z łącznymi statystykami
- Programy afiliacyjne — etykiety z kolorami dla sieci partnerskich
- Strony CMS — statyczne strony HTML z edytorem WYSIWYG (Trix)
- Kliknięcia dzisiaj / 7 / 30 / 90 dni z trendem
- Unikalni użytkownicy (po IP)
- Rozkład według godzin — wykres szczytowych pór ruchu
- Źródła ruchu (referers) z procentami
- Przeglądarki i typy urządzeń
- Geolokalizacja kliknięć (kraj, region, miasto) via ip-api.com
- Filtrowanie botów i crawlerów
- Cache globalnych statystyk dla wydajności
- Eksport danych statystycznych
- Import linków z pliku CSV (separator
;) z podglądem przed importem - Aktualizacja istniejących linków przez import
- Eksport linków wraz z tagami i kategoriami
- Uwierzytelnianie dwuskładnikowe TOTP (2FA) — zgodne z Google Authenticator, Authy, 1Password
- 10 jednorazowych kodów zapasowych
- Rate limiting logowania
- Audit Log — rejestruje wszystkie akcje (CREATE / UPDATE / DELETE / LOGIN / SETTINGS)
- Logi systemowe i logi błędów SMTP
- Anonimizacja adresów IP w bazie danych
- System szablonów oparty o
theme.json(paleta kolorów, rozmiary miniatur, obsługiwane widgety) - CSS custom properties (
--theme-*) dla motywów - Logo i favicon
- Konfigurowalny sidebar z widgetami (popularne linki, losowe linki, chmura tagów)
- Strona kontaktowa z formularzem i rate limitingiem
- Backup — tworzenie i przywracanie kopii zapasowych bazy danych (ZIP z SQL), automatyczny backup przez cron
- Sprawdzanie linków — automatyczna weryfikacja dostępności adresów URL (kody HTTP 404, 500 itp.)
- Menedżer plików — przeglądanie i zarządzanie plikami w katalogu
uploads/ - Optymalizacja obrazów — obsługa GD, ImageMagick (WebP, progresywne JPEG) i narzędzi CLI (jpegoptim, pngquant, optipng)
- Cache Geo — zarządzanie cache geolokalizacji, automatyczne czyszczenie wpisów starszych niż 30 dni
- System powiadomień — centrum alertów o błędach cron, martwych linkach, problemach SMTP (poziomy: Info / Ostrzeżenie / Błąd / Krytyczny)
- Zadania Cron — zarządzanie harmonogramem przez panel (tryb HTTP i CLI), logi wykonań
- Zasoby — monitoring użycia dysku i bazy danych z limitami
| Komponent | Wersja minimalna |
|---|---|
| PHP | 8.1+ |
| MySQL / MariaDB | 5.7+ / 10.2+ |
| Serwer WWW | Apache (mod_rewrite) lub Nginx |
| Rozszerzenia PHP | PDO, pdo_mysql, json, mbstring, curl |
| Uprawnienia zapisu | config/, logs/, uploads/, storage/ |
- Wgraj pliki aplikacji na serwer
- Utwórz pustą bazę danych MySQL/MariaDB
- Otwórz kreator instalacji w przeglądarce:
https://twoja-domena.pl/install/install.php - Postępuj zgodnie z instrukcjami — instalator skonfiguruje bazę danych i wygeneruje plik
config/config.php
# 1. Skopiuj przykładową konfigurację
cp config/example_config.php config/config.php
# 2. Uzupełnij dane dostępowe w config/config.php (host, dbname, user, pass, encryption_key)
# 3. Zaimportuj schemat bazy danych
mysql -u użytkownik -p nazwa_bazy < install/db_schema.sql
# 4. Nadaj uprawnienia do zapisu
chmod 755 uploads/ storage/ logs/ config/# WAŻNE: usuń katalog instalatora po zakończeniu
rm -rf install/Zaloguj się do panelu administracyjnego:
https://twoja-domena.pl/admin/
Domyślny login: admin — hasło wyświetlane na końcu procesu instalacji.
Aby zadania automatyczne działały poprawnie, dodaj wpis do crontab serwera.
Tryb HTTP (curl):
*/5 * * * * curl -s "https://twoja-domena.pl/cron_runner.php?token=TWOJ_TOKEN" > /dev/null 2>&1Tryb CLI (PHP):
*/5 * * * * php /ścieżka/do/aplikacji/cron_runner.php > /dev/null 2>&1Token generowany jest automatycznie w panelu: Konfiguracja → Cron.
| Zadanie | Interwał | Opis |
|---|---|---|
clean_geo_cache |
24h | Usuwa wpisy geolokalizacji starsze niż 30 dni |
refresh_global_stats |
30 min | Odświeża cache globalnych statystyk |
auto_backup |
24h | Automatyczna kopia zapasowa bazy danych |
check_broken_links |
Konfigurowalny | Weryfikacja dostępności adresów URL |
Plik config/config.php (nie jest wersjonowany w git):
return [
'db' => [
'host' => 'localhost',
'dbname' => 'redirect_cms',
'user' => 'root',
'pass' => 'silne_haslo',
],
'app' => [
'env' => 'production', // 'development' wyświetla błędy; 'production' loguje je
],
'session' => [
'secure' => true, // true gdy używasz HTTPS
],
// Klucz szyfrowania dla haseł SMTP (64-znakowy hex)
// Generowanie: php -r "echo bin2hex(openssl_random_pseudo_bytes(32));"
'encryption_key' => 'WYGENERUJ_WLASNY_KLUCZ',
];Plik CSV musi używać separatora ;. Wymagane kolumny: slug, target_url.
slug;target_url;title;description;category;affiliate_program;tags
promo2024;https://example.com/promo;Promocja 2024;Opis promocji;Oferty;Amazon;rabat,latoRedirectCMS/
├── admin/ # Panel administracyjny (widoki)
├── assets/ # CSS i JavaScript
├── config/ # Konfiguracja (config.php nie jest w git)
├── docs/ # Dokumentacja HTML
├── install/ # Instalator i schemat SQL
├── logs/ # Logi aplikacji
├── scripts/ # Skrypty CLI (clean_geo_cache, refresh_stats)
├── src/ # Klasy PHP (logika biznesowa)
├── storage/ # Pliki tymczasowe
├── templates/ # Szablony motywów
├── uploads/ # Przesłane pliki (obrazy, QR, miniatury)
├── views/ # Widoki publiczne (home, redirect, 404)
├── cron_runner.php # Punkt wejścia dla zadań cron
└── index.php # Router główny
RedirectCMS jest oprogramowaniem komercyjnym objętym Umową Licencyjną Użytkownika Końcowego (EULA).
Kod źródłowy jest publicznie dostępny wyłącznie w celach poglądowych. Pobranie, instalacja lub uruchomienie Oprogramowania wymaga nabycia licencji.
Dozwolone (po zakupie licencji):
- instalacja i uruchamianie na własnym serwerze pod jedną domeną
- tworzenie kopii zapasowych
- modyfikacje wyłącznie na własny użytek (bez prawa do dystrybucji)
Zabronione:
- używanie bez ważnego klucza licencyjnego
- redystrybucja, odsprzedaż, sublicencjonowanie
- udostępnianie jako SaaS bez odrębnej umowy
- usuwanie lub obchodzenie mechanizmu weryfikacji licencji
- używanie pod więcej niż jedną domeną bez dodatkowych licencji
Pełna treść licencji: LICENSE · redirectcms.pl/license
Zakup licencji: redirectcms.pl
© 2025–2026 Krzysztof Janiczek · Wszelkie prawa zastrzeżone