W poprzedniej części ogólnie nakreśliłem zamysł automatyzacji, który miał na celu pomoc w codziennej analizie wygasających domen pod kątem ich atrakcyjności. W drugiej części opiszę nieco szerzej kolejne ciekawe zastosowania n8n do obsługi handlu domenami – automatyczne tworzenie wpisów dns dla sprzedawanych domen, oraz publikację ofert na stronach internetowych – WordPress oraz z autorskim kodem.
1. Automatyczne tworzenie stref DNS i stron dla domen
Każda z wystawionych domen ma automatycznie generowaną stronę – tzw. landing page, gdzie znajduje się informacja o sprzedaży domeny, link do oferty, dane kontaktowe czy też losowe inne domeny z oferty. Widok przykładowej takiej strony poniżej.

Na początku dodawałem te domeny do dns ręcznie, ale szybko to zautomatyzowałem – jak wszystko co można bezpiecznie i prosto zautomatyzować.
Swój serwer mam oparty o oprogramowanie DirectAdmin, które ma dość rozbudowane API – chociaż mam wrażenie, że nieco słabo udokumentowane. Jakkolwiek sprawa jest już z założenia uproszczona i za pomocą funkcji „CMD_API_DOMAIN” będzie można automatycznie dodawać nowe domeny.
Listę domen wystawionych na sprzedaż pobieramy przez pierwszy węzeł http z wykorzystaniem API giełdy domen – funkcja „domain/list”, a równolegle pobieramy listę naszych domen już wcześniej dodanych – z arkusza Google Sheets. Oba wyniki (JSON z giełdy musimy jeszcze rozbić na pojedyncze pozycje węzłem Split Out) przekierowujemy do węzła n8n „Compare Datasets”, które odfiltruje nam domeny, których jeszcze nie mamy dodanych na serwerze.
Domeny te zostaną teraz zapisane w dwóch miejscach:
- Arkuszu zawierającym wszystkie dane sprzedażowe domen wyciągnięte z giełdy: daty dodania, daty wygasania, cen zakupu i giełdowych, łącznego kosztu, daty i ceny sprzedaży, zysku itp. Jest to moja podstawowa baza pomocowa poza giełdą, gdzie na szybko można podsumować swoje domeny, wydatki, zyski oraz aktualne ceny na giełdzie.
- Arkuszu z zapisaną nazwą domeny, datą dodania jej do dns, oraz odpowiedzią z serwera – oczywiście po poprawnym utworzeniu domeny na serwerze przez węzeł http z wykorzystaniem API DirectAdmin. Jest to forma loga działań, aby mieć podgląd gdyby coś nie zadziałało jak powinno.
Zamiast Google Sheets można użyć np. bazy MySQL / PostgreSQL i spiąć to z dodatkowym oprogramowaniem webowym do dalszych analiz, jakkolwiek ilość danych jest stosunkowo niewielka i na potrzeby kilkuset pozycji to w zupełności wystarczy.

Workflow uruchamiany jest automatycznie co godzinę, co w zupełności wystarczy aby na bieżąco tworzyć wpisy dla domen na serwerze. Technicznie to dość proste zadanie – pobranie danych, porównanie i zapisanie w arkuszu. Trochę czasu zajęło ustalenie optymalnych odstępów czasowych dla dodawania domen przez API DirectAdmin – w przypadku kilku domen, zbyt mały odstęp między domenami może zakończyć się błędem informującym, że jeszcze nie zakończyło się tworzenie poprzedniej domeny (serwer dodaje strefę DNS, pliki i katalogi strony oraz wpisy w Apache).
Od strony serwera z kolei automatycznie dla każdej nowo dodanej domeny wgrywany jest z góry założony zestaw plików, które generują powtarzalny „landing page” informujący o tym, że domena jest na sprzedaż. Tutaj odbywa się to automatycznie ponieważ to mój serwer i mam uprawnienia resellera. Gdyby była potrzeba jednak ręcznego wrzucania plików dla każdej domeny to należałoby po prostu dodać jeszcze jeden węzeł FTP, którym można przesłać odpowiednie pliki do katalogu strony.
Osobno przeprowadzam jeszcze uaktualnienie cen i oznaczanie domen jako sprzedanych – w zasadzie przymierzam się aby to połęczyć w jedno, ale jakoś z doświadczenia bardziej ufam mniejszym, dedykowanym zadaniom.
Odpowiedzialny za to workflow na początku rozdziela się na dwie równoległe ścieżki – jedna pobiera listę domen i od razu uaktualnia dane w arkuszu (nowe ceny, daty wygasania itp), druga z kolei pobiera przez węzeł http listę sprzedanych domen i uaktualnia w arkuszu wpisy domen o nowe dane – datę i kwotę sprzedaży.
Kolejna odnoga prowadzi do węzła http gdzie za pomocą API DirectAdmina usuwamy domenę z naszego serwera, po czym dokonujemy aktualizacji rekordu w arkuszu Google Sheets, gdzie jako log czynności zapisujemy datę usunięcia i odpowiedź serwera.
Te zadanie możemy zaplanować na wykonanie np. co 6 godzin – nie jest tu kluczowe natychmiastowe uaktualnienie statusu domen.

Tu jeszcze można ewentualnie wspomnieć o dodatkowym przebiegu, który uaktualnia raz dziennie przez FTP listę domen znajdujących się w sprzedaży – na jej podstawie generowane są linki na „landingach” do losowych innych domen. Nie będę go omawiał szczegółowo, bo to taki element pomocowy, żeby nie ładować obsługi bazy danych do stron domen. Każdy może sobie technicznie to zaprojektować po swojemu, ja korzystam z niego również na serwerze kiedy dokonuję np. zmian w kodzie landingów.
2. Dodawanie nowych ofert na stronie portfolio – KluczoweDomeny.pl
Dodawanie wpisów do WordPressa
Co prawda po dwóch miesiącach od rozpoczęcia przygody z domainingiem porzuciłem pomysł publikowania ofert domen na WordPressie to chyba warto pokrótce wspomnieć o automatyzacji, którą zastosowałem na jego potrzeby. Można to wykorzystać na inne potrzeby – np. dodawania streszczeń dowolnych materiałów automatycznie generowanych przez AI.
Podobnie jak w poprzednim przykładzie najpierw pobieramy listę domen z giełdy oraz z naszej bazy, a następnie porównujemy je i przekazujemy dalej domeny, które są na giełdzie ale jednocześnie w naszej bazie nie są oznaczone jako dodane do WordPressa.
Z giełdy dane są pobierane ponieważ zaciągamy z niej również opis domeny na giełdzie – posłuży on jako treść do utworzenia wpisu dotyczącego domeny. Przetworzeniem tej treści zajmuje się węzeł „Code”, gdzie za pomocą kodu Javascript parsujemy opis z giełdy na tytuł i treść właściwą.
Założeniem jest pobranie pierwszego akapitu, który jest na giełdzie pogrubiony i utworzenie z niego tytułu (to wymaga pogrubiania go przy dodawaniu tam opisów). Możemy również to opracować inaczej – np. dodając jako tytuł samą nazwę domeny. U mnie tytuł to była cała fraza, więc w kodzie wyłapywaliśmy pogrubioną treść. Kolejne linijki kodu generowały między innymi link do giełdy, status domeny itp.
Następnie przez węzeł http przekazujemy za pomocą API wpis na stronę – zapisze się nam jako szkic we wpisach. Potem wystarczy to dla pewności poddać lekkiej edycji i opublikować.
Jako ostatni węzeł uaktualniamy tylko w bazie oznaczenie dla domeny, że ma dodaną publikację na stronie – aby następnym razem pozycja była pomijana. Workflow był uruchamiany również co godzinę, więc w miarę na bieżąco opisy dla nowych domen pojawiały się na stronie.
Aktualna strona z portfolio domen oparta na własnym kodzie
Obecnie rozdzieliłem portfolio od bloga i lista domen wyświetla się na osobnej stronie – pod adresem głównym KluczoweDomeny.pl. Jest to bardzo lekki własny kod, który umożliwia szybkie i łatwe przeglądanie całej oferty wraz z możliwością filtrowania i sortowania danych.

Workflow podobnie jak poprzednio rozpoczyna się od równoległego pobrania listy domen z giełdy, oraz z bazy danych. Tym razem jednak operujemy na bazie MySQL – ponieważ z niej strona pobiera swoje dane. N8n ma na szczęście gotowy węzeł do obsługi baz danych, a dodatkowo pozwala nam połączyć się bezpiecznie z bazą danych przez tunel SSH – bez konieczności otwierania portu bazy na serwerze na zewnątrz. To aktualnie jest standardem w zakresie bezpieczeństwa.
Wynik porównania rozgałęzia się tym razem w dwie strony – jedna przekazuje dane dalej do dodania nowego wpisu, a druga usuwa z bazy domenę, która już nie znajduje się na liście sprzedawanych domen na giełdzie (została sprzedana lub wycofana).
Domeny przeznaczone do dodania na stronę zostają zapętlone węzłem „Loop” – ma to na celu przetwarzanie wsadowe w przypadku wielu domen. Jako pierwszy dane otrzymuje węzeł „Code”, gdzie odpowiedni kod Javascript wyciąga i przetwarza na JSON odpowiednie dane: skrócony opis domeny do publikacji, nazwę domeny, rozszerzenie i link do oferty na giełdzie.
Dalej mamy rozdzielenie przebiegu na dwie ścieżki – w przypadku wykrycia zestawu domen przechodzimy od razu do węzła zapisu w bazie danych, z kolei dla pojedynczych domen odpytujemy jeszcze raz API giełdy o wiek domeny. Niestety ta informacja jest przekazywana osobno dla każdej domeny, a nie od razu na liście domen – można to pominąć, ale że założeniem strony było też pokazanie wieku domeny to konieczne było dorobienie paru węzłów dodatkowo.

Teraz w bazie danych mamy dodane oferty dla każdej domeny – wraz z jej aktualną ceną, skróconym opisem, wiekiem domeny, długością, kategorią i linkiem do oferty na giełdzie. Równolegle nieaktualne domeny są z bazy usuwane więc nie pojawiają się już na stronie.

Podobnie jak pozostałe te zadanie uruchamiam raz na godzinę – to optymalne aby dać czas na utworzenie się stref dns domeny, zmianę delegacji domeny na moje serwery itp. Tak na prawdę można częstotliwość ustawić nawet co kilka godzin – w przypadku domen nie ma presji czasu na umieszczenie oferty na stronie.
Arkadiusz Bednarczyk
ABSerwery.pl / KluczoweDomeny.pl

