NetSendo
Platform Updates

NetSendo v2.5.2: lokalne czcionki i logo dla prywatności

NetSendo Team5 min czytania

Wybrałeś platformę marketingową self-hosted, żeby mieć kontrolę nad danymi. Ale nawet aplikacja na własnym serwerze może przekazywać drobne informacje na zewnątrz. Za każdym razem, gdy strona pobiera czcionkę, logo albo skrypt z innej domeny, przeglądarka odwiedzającego wysyła temu hostowi swój adres IP i user agent. Dzieje się to po cichu, przy każdym wyświetleniu strony.

NetSendo v2.5.2 likwiduje te luki. Panel administracyjny, strona logowania, portal partnerów afiliacyjnych i publiczne strony webinarów ładują teraz własne zasoby z Twojej instalacji. Wygląd się nie zmienia. Jedyna różnica jest taka, że mniej podmiotów zewnętrznych dostaje informacje o Twoich odwiedzających.

TL;DR: NetSendo v2.5.2 dołącza do instalacji logo, favicon i czcionki Figtree/Inter, więc nie są już pobierane z gregciupek.com i fonts.bunny.net. Strony webinarów zamiast Tailwind Play CDN używają skompilowanego arkusza stylów (~6 KB po kompresji gzip). Nowy test automatyczny pilnuje, żeby zewnętrzne zasoby nie wróciły, a gradienty na stronie oglądania webinaru zostały naprawione.

🚀 Co nowego w v2.5.2

🖼️

Lokalne zasoby marki

Logo i favicon znajdują się w public/images/brand.

🔤

Wbudowane czcionki

Figtree i Inter są budowane przez Vite z pakietów @fontsource.

🎥

Webinary bez CDN

Skompilowany arkusz stylów zastępuje cdn.tailwindcss.com.

🧪

Test regresji

Testy nie przejdą, jeśli zewnętrzne zasoby wrócą.

Logo, favicon i czcionki serwowane z Twojej instalacji

Przed tym wydaniem każda strona panelu, strona logowania i portal partnerów afiliacyjnych pobierały logo i favicon NetSendo z gregciupek.com. Czcionki Figtree i Inter pochodziły z fonts.bunny.net. To tak, jakby każdy gość musiał wpisać się do księgi w dwóch innych budynkach, zanim wszedł do Twojego.

Co się zmieniło:

  • Grafiki marki znajdują się teraz w public/images/brand, a logo n8n w public/images/integrations.
  • Czcionki są budowane przez Vite z pakietów @fontsource/figtree i @fontsource/inter (licencja SIL Open Font License).
  • Obraz udostępniania (og:image, twitter:image) wskazuje na Twoją instalację.

Publiczne strony webinarów bez Tailwind Play CDN

Pięć publicznych stron webinarów (rejestracja, strona po rejestracji, podziękowanie, oglądanie i powtórka) ładowało cdn.tailwindcss.com przy każdej wizycie. Oznaczało to zapytanie do zewnętrznego hosta z przeglądarek Twoich subskrybentów. Do tego był to skrypt, którego Tailwind nie wspiera w środowisku produkcyjnym.

Te strony korzystają teraz z arkusza stylów kompilowanego razem z aplikacją, resources/css/webinar.css, który po kompresji gzip waży około 6 KB. Strony oglądania i powtórki nie ładują już też pakietu JavaScript panelu. Nigdy go nie używały, a jedynie powodował tam błąd w konsoli.

ℹ️ Uwaga: Treści dodane przez właściciela webinaru nadal ładują się z wybranego przez niego źródła. Dotyczy to osadzeń YouTube, Vimeo i Calendly oraz czcionki Google wybranej w kreatorze stron. Przeniesiono tylko własne zasoby NetSendo.

Test, który nie wpuszcza zewnętrznych zasobów

Nowy plik tests/Feature/NoThirdPartyAssetsTest.php sprawdza trzy rzeczy:

  • Strona logowania, panel i pięć stron webinarów ładują skrypty, style, ikony i obrazy wyłącznie z Twojej instalacji.
  • Dawne hosty nie występują już nigdzie w źródłach frontendu.
  • Każdy wpis @vite(), którego wymaga widok, jest faktycznie zbudowany.

Naprawiono: gradienty webinarów

Ekrany odliczania, „jeszcze się nie rozpoczął” i „sesja zakończona” na stronie oglądania znów mają szaro-indygowo-fioletowy gradient. Przed poprawką ściemniały do czerni przy krawędziach, bo arkusz stylów panelu i Tailwind CDN wzajemnie znosiły swoje kolory gradientu.

💼 Korzyści i przypadki użycia

  • ✅ Mniej podmiotów zewnętrznych otrzymuje adresy IP Twoich użytkowników
  • ✅ Brak zależności od zewnętrznych hostów czcionek i CDN w trakcie działania
  • ✅ Lżejsze strony webinarów bez nieużywanego JavaScriptu
  • ✅ Ten sam wygląd, bez zmian w interfejsie i bez ponownego szkolenia
🛒

E-commerce: webinary premierowe

Sklep prowadzi demonstracje na żywo, żeby rozgrzać kupujących przed premierą. Teraz strony rejestracji i powtórki:

  • Ładują style NetSendo z Twojej domeny, bez zapytań do Tailwind CDN
  • Ułatwiają opisanie w polityce prywatności, z którymi hostami łączy się przeglądarka odwiedzającego
  • Ładują się szybciej dzięki małemu, skompilowanemu arkuszowi stylów
🚀

SaaS: webinary onboardingowe

Jeśli wdrażasz nowych użytkowników przez cykliczne webinary, strona oglądania nie ładuje już nieużywanego pakietu i nie zgłasza błędu w konsoli. Ekrany odliczania znów też wyglądają starannie.

🏢

Agencje: portale klientów i partnerów

Agencje, które dają klientom dostęp do panelu albo prowadzą programy afiliacyjne przez portal partnerów, mogą teraz zapewnić klientów, że czcionki, logo i favicon NetSendo ładują się z serwera agencji. Klienci pytający o przetwarzanie danych dostaną prostszą odpowiedź.

🛠️ Krok po kroku: aktualizacja i weryfikacja

  1. Najpierw kopia zapasowa

    Przed aktualizacją zrób kopię bazy danych i zmodyfikowanych plików. To dobra praktyka przy każdym wydaniu.

  2. Pobierz v2.5.2

    Zaktualizuj instalację tak jak zwykle. Użytkownicy Dockera mogą pobrać nowy obraz i zrestartować stos. Przy instalacjach ze źródeł przełącz się na tag v2.5.2. Kroki dla Twojej konfiguracji znajdziesz w dokumentacji.

  3. Przebuduj zasoby frontendu (instalacje ze źródeł)

    To wydanie dodaje nowe pakiety npm i nowy wpis Vite (webinar.css), więc zainstaluj zależności ponownie i przebuduj zasoby:

    npm install
    npm run build
  4. Wyczyść cache

    Wyczyść cache aplikacji i widoków oraz cache reverse proxy lub CDN, żeby przeglądarki dostały nowy HTML.

  5. Sprawdź w DevTools

    Otwórz panel i publiczną stronę webinaru z włączoną zakładką Network. Wszystkie zasoby NetSendo powinny pochodzić z Twojej domeny. Nie powinno być zapytań do gregciupek.com, fonts.bunny.net ani cdn.tailwindcss.com.

  6. Uruchom test (opcjonalnie)

    Programiści mogą uruchomić nowy test bezpośrednio:

    php artisan test --filter=NoThirdPartyAssetsTest
⚠️ Częsty problem: Jeśli po aktualizacji strona webinaru wyświetla się bez stylów albo pojawia się błąd manifestu Vite, zasoby prawdopodobnie nie zostały przebudowane. Uruchom ponownie npm run build i sprawdź, czy katalog public/build został wdrożony.

🎯 Porady ekspertów

🎯 Porady ekspertów

1
Zaostrz Content Security Policy

Panel nie potrzebuje już zewnętrznych hostów czcionek ani obrazów, więc możesz tam ograniczyć font-src, img-src i style-src do 'self'. Na stronach webinarów nadal zezwól na dostawców osadzeń i Google Fonts, jeśli używasz ich w kreatorze stron.

2
Ustaw długie nagłówki cache

Vite generuje nazwy plików z odciskiem (fingerprint). Serwuj zasoby z /build z długimi nagłówkami cache typu immutable, żeby powracający odwiedzający od razu ładowali czcionki i style.

3
Przejrzyj osadzenia dodane przez właściciela

Treści dodane przez właściciela nadal łączą się z innymi hostami. Jeśli prywatność jest priorytetem, wybierz w kreatorze czcionki systemowe zamiast Google Fonts i uwzględnij osadzenia YouTube, Vimeo i Calendly w polityce prywatności.

4
Trzymaj test w CI

Jeśli utrzymujesz fork albo własne motywy, uruchamiaj NoThirdPartyAssetsTest w pipeline CI. Wychwyci linki do CDN, które wróciły przy okazji modyfikacji.

5
Sprawdź podglądy udostępnień

og:image wskazuje teraz na Twoją instalację. Upewnij się, że domena jest publicznie dostępna przez HTTPS, żeby platformy społecznościowe mogły pobrać obraz podglądu.

✅ Podsumowanie

NetSendo v2.5.2 to niewielkie wydanie, które nadaje self-hostingowi więcej sensu. Logo, favicon i czcionki pochodzą teraz z Twojego serwera. Strony webinarów nie używają już niewspieranego skryptu CDN, a nowy test automatyczny pilnuje, żeby tak zostało. Wygląd pozostaje ten sam, a zewnętrznych zależności jest mniej.

Gotowy na aktualizację?

Pobierz v2.5.2 i zatrzymaj dane odwiedzających na własnym serwerze:

Sprawdź, co łączy się z NetSendo, na stronie integracji, a jeśli cenisz narzędzia stawiające na prywatność, daj nam gwiazdkę na GitHubie ⭐

#privacy#self-hosted#webinars#performance#release-notes#security
Udostępnij