-

Audyt techniczny Drupala w 20 minut. Jak używać narzędzia Druscan?

Zmiana agencji obsługującej system Drupal lub pozyskanie wycen od kilku firm wymaga zazwyczaj udostępnienia szczegółów technicznych projektu. Problem w tym, że baza danych zawiera dane klientów, konfiguracja przechowuje klucze API, a kod customowy zdradza logikę biznesową firmy. W tym artykule pokażę narzędzie open source, które rozwiązuje ten problem. Druscan zbiera wszystkie informacje techniczne potrzebne do analizy, ale jednocześnie chroni wrażliwe dane. Zapraszam do przeczytania wpisu lub obejrzenia odcinka z cyklu Nowoczesny Drupal


W tym artykule:


Wyzwanie: jak wycenić prace w Drupalu bez ujawniania poufnych danych?

Załóżmy, że prowadzisz system oparty na Drupalu i planujesz powierzyć jego obsługę nowej firmie. Możesz również potrzebować wycen od kilku agencji na aktualizację Drupala 8 do najnowszej wersji lub przygotowujesz większą zmianę w projekcie, który do tej pory utrzymywałeś samodzielnie. W każdym z tych scenariuszy konieczne jest przekazanie podstawowych informacji technicznych.

Po wysłaniu zapytań ofertowych szybko pojawia się jednak seria szczegółowych pytań: ile modułów jest zainstalowanych? Czy w projekcie występują moduły customowe? Jak wygląda architektura danych? Ile treści przechowuje system? Aby precyzyjnie na nie odpowiedzieć, zwykle trzeba udostępnić firmom dostęp do bazy danych, repozytorium z kodem lub nawet do serwera.

I tutaj zaczyna się realny problem. Baza danych zawiera często dane osobowe klientów, customowy kod odzwierciedla logikę biznesową, a konfiguracja przechowuje klucze API do zewnętrznych usług. Udostępnianie takich zasobów wielu podmiotom wiąże się z ryzykiem. Nie masz pewności, kto będzie miał do nich dostęp ani jak zostaną zabezpieczone.

Dodatkowo przygotowanie okrojonej wersji bazy lub kodu bywa czasochłonne. Z drugiej strony, bez szczegółów technicznych agencje nie są w stanie przygotować rzetelnej wyceny – mogą znacznie przeszacować koszt lub całkowicie odmówić realizacji estymacji.

W efekcie pojawia się fundamentalne pytanie: jak przekazać niezbędne informacje techniczne, nie ujawniając jednocześnie wrażliwych danych? Odpowiedzią jest Druscan. 

Co to jest Druscan i jak działa?

Druscan to narzędzie open source do audytu technicznego Drupala, które stworzyliśmy w Droptica i udostępniliśmy za darmo jako projekt na GitHubie. Powstało po to, aby umożliwić rzetelną analizę systemu bez konieczności udostępniania firmom zewnętrznym pełnej bazy danych czy kodu źródłowego.

W 2024 roku opracowaliśmy również praktyczny skrypt przeznaczony specjalnie do analizy projektów migrujących z Drupala 7. Jeśli korzystasz jeszcze z tej wersji i rozważasz migrację, w artykule na naszym blogu znajdziesz narzędzie do estymacji kosztów migracji z Drupala 7 do 11. Druscan ma podobne założenia, lecz obejmuje znacznie szerszy zakres danych i funkcji.

Narzędzie gromadzi wszystkie informacje niezbędne do oceny technicznej projektu, jednocześnie nie ujawniając żadnych wrażliwych danych. Dzięki temu pozwala przygotować kompletny obraz systemu potrzebny do wyceny czy analizy, przy pełnym zachowaniu bezpieczeństwa informacji.

Plansza z odcinka Nowoczesny Drupal z informacją o tym, co udostępnia, a co chroni Druscan.


Jakie dane podczas audytu technicznego zbiera Druscan?

Narzędzie wykonuje automatyczny audyt techniczny systemu Drupal i gromadzi szczegółowe informacje z ponad dwudziestu obszarów. Poniżej przedstawiam przykładowe elementy analizy.

Lista modułów

Druscan pobiera pełną listę modułów zainstalowanych w systemie, rozróżniając moduły z rdzenia Drupala, moduły contrib oraz moduły customowe. Dla każdego z nich zapisuje wersję, status aktywacji oraz informacje o zastosowanych patchach.

W przypadku modułów customowych raport uwzględnia m.in. liczbę linii kodu i zdefiniowane routingi. W kolejnych aktualizacjach narzędzie będzie rozszerzane o dodatkowe metryki — nadal bez ujawniania treści kodu.

Architektura treści

Druscan analizuje również architekturę treści w systemie: typy treści, liczbę pól, taksonomie, media, użytkowników i role. Sprawdza również konfigurację widoków (viewsów) – czy są to strony, bloki i jakie mają typy. Dodatkowo weryfikuje workflow oraz uprawnienia (permissions), co pozwala lepiej zrozumieć logikę zarządzania treściami.

Metryki wydajności

Narzędzie ocenia kluczowe parametry związane z wydajnością, bada zgodność z WCAG oraz analizuje błędy zapisane w dzienniku zdarzeń (dblog). Sprawdza również, czy w projekcie istnieją testy automatyczne, co może być istotnym wskaźnikiem jakości i dojrzałości kodu. 

Integracje zewnętrzne

Druscan identyfikuje integracje Drupala z usługami zewnętrznymi m.in. poprzez analizę modułów odpowiedzialnych za komunikację z API czy innymi systemami. Zebrane dane są zapisywane w raportach w formatach JSON i HTML, dzięki czemu można je łatwo przeglądać lub wykorzystać w dalszej analizie.

Jakich danych z audytu technicznego Druscan NIE ujawnia?

Równie ważne jak to, jakie informacje Druscan zbiera, jest zrozumienie, czego w raporcie celowo nie ma. Narzędzie zostało zaprojektowane tak, aby chronić wszystkie wrażliwe dane znajdujące się w systemie na Drupalu. 

Brak treści z bazy danych

Druscan nie pobiera ani nie zapisuje żadnych treści znajdujących się w bazie danych. W raportach nie pojawią się artykuły, opisy produktów, dane użytkowników ani inne informacje przechowywane w tabelach Drupala. Narzędzie nie kopiuje żadnej zawartości tekstowej ani danych biznesowych.

Brak kodu modułów customowych

Raport nie zawiera treści kodu modułów customowych. Druscan udostępnia jedynie ogólne metryki, takie jak liczba linii kodu czy informacja o istnieniu modułu, bez ujawniania logiki biznesowej. Kod pozostaje w pełni chroniony.

Brak kluczy API

Druscan nie zbiera kluczy API ani żadnych elementów konfiguracji, które mogłyby umożliwić nieautoryzowany dostęp do zewnętrznych systemów. Wrażliwe ustawienia pozostają wyłącznie w Twoim środowisku.

Brak plików i mediów

Audyt nie obejmuje plików multimedialnych ani dokumentów przechowywanych w systemie. W raporcie nie znajdziesz listy zdjęć, załączników czy innych zasobów. Wszystkie prywatne pliki pozostają poza zakresem analizy.

Jakie są wymagania techniczne i jak zainstalować narzędzie Druscan?

Druscan działa w środowisku opartym na DDEV, dlatego system Drupal, który ma zostać poddany audytowi technicznemu, powinien być uruchomiony właśnie za jego pomocą. DDEV to lokalne narzędzie deweloperskie, co oznacza, że cały proces analizy odbywa się na Twoim komputerze. Żadne dane nie są wysyłane na zewnętrzne serwery.

Instalacja i uruchomienie skanowania są bardzo proste. W katalogu z Druscanem należy utworzyć symlink wskazujący na katalog projektu Drupala, a następnie uruchomić skrypt audytujący. Cały proces trwa zazwyczaj około 15–20 minut, w zależności od złożoności analizowanej strony, a efektem jest kompletny raport techniczny.

Plansza z odcinka Nowoczesny Drupal przedstawiająca informację o tym, jak działa Druscan.


Dwa tryby pracy Druscana: podstawowy i zaawansowany z AI

Druscan oferuje dwa tryby działania, dzięki czemu można dopasować sposób pracy do specyfiki projektu.

Tryb podstawowy – skrypt shellowy

W podstawowym wariancie Druscan uruchamia się jako skrypt shellowy, który zbiera surowe dane techniczne o systemie. Możesz je później samodzielnie przeanalizować lub przekazać agencjom przygotowującym wycenę. Ten tryb nie wymaga żadnych dodatkowych narzędzi poza DDEV.

Aby go uruchomić, należy wywołać komendę z dwoma parametrami: 

  • nazwą katalogu projektu,
  • adresem URL strony (lokalnym lub produkcyjnym). 

Adres URL służy między innymi do przeprowadzenia testów szybkości ładowania strony (PageSpeed) oraz analizy zgodności z WCAG.

Tryb zaawansowany – analiza i rekomendacje z użyciem AI

Drugi tryb wykorzystuje narzędzie Cursor, przeznaczone do pracy z kodem przy wsparciu AI. W tym wariancie Cursor najpierw uruchamia standardowy skrypt zbierający dane, a następnie na podstawie wygenerowanych plików tworzy analizę i listę rekomendacji wraz z szacunkami czasowymi dla poszczególnych zadań.

Sekcja raportu audytu technicznego z gotowymi działaniami do podjęcia, wygenerowana przez AI z użyciem Cursora.


Aby skorzystać z tego trybu, należy wcześniej przygotować konfigurację w katalogu .cursor, definiując odpowiednią komendę z promptem. Po zapisaniu konfiguracji audyt można uruchomić, wpisując ukośnik (/) i wybierając przygotowaną komendę z listy dostępnych opcji.

Jak wygląda raport z audytu technicznego generowany przez Druscan?

Jak już wspomniałem wyżej, Druscan analizuje system w ponad dwudziestu obszarach. Wygenerowany raport prezentuje te dane w dwóch formatach:

  • JSON – przydatny do dalszej automatycznej analizy lub pracy narzędzi AI,
  • HTML – przejrzysty raport, który można wygodnie przeglądać w przeglądarce.

Po uruchomieniu audytu w katalogu Audit Reports tworzony jest nowy folder oznaczony datą. W miarę działania narzędzia trafiają do niego kolejne pliki JSON, każdy odpowiadający innemu obszarowi analizy, m.in. informacji o bazie danych, liście modułów czy dostępnych aktualizacjach.

Strona główna raportu

Pierwsza strona raportu HTML pełni funkcję wprowadzającą. Zawiera opis działania narzędzia, ale nie prezentuje jeszcze danych specyficznych dla analizowanej instalacji.

Pierwszy ekran raportu Druscan z podstawowymi informacjami o narzędziu do audytu technicznego Drupala.


Informacje o systemie na Drupalu

W tej sekcji raport zaczyna przedstawiać konkretne dane techniczne o systemie na Drupalu, m.in.:

  • liczbę aktywnych modułów,
  • wersje modułów i zastosowane patche,
  • ogólny przegląd konfiguracji systemu.
Sekcja raportu Druscan przedstawiająca podstawowe informacje o analizowanym systemie na Drupalu.


Dostępne aktualizacje

W sekcji Updates Check widać, które moduły mają dostępne aktualizacje, w tym:

  • aktualizacje funkcjonalne (np. Field Group 3.6 → 4.0),
  • większe zmiany wersji (np. Flag 4.0 → 5.0),
  • ewentualne aktualizacje bezpieczeństwa, wyraźnie oznaczone na czerwono.

Jeśli wszystkie moduły są aktualne pod kątem bezpieczeństwa, pojawia się czytelny zielony komunikat.

Sekcja raportu Druscan po audycie technicznym pokazująca, które moduły wymagają aktualizacji.

 

Struktura danych (Entity Structure)

W sekcji Entity Structure Druscan prezentuje szczegółowe informacje o typach treści w systemie: ile typów istnieje oraz ile elementów zostało utworzonych w każdym z nich. Przykładowo raport może pokazywać 12 artykułów i 39 dokumentów wraz z dodatkową informacją, ile z nich dodano w ciągu ostatniego roku.

Ta metryka jest wyjątkowo przydatna, ponieważ w wielu projektach znajdują się typy treści stworzone kiedyś na potrzeby testów lub pojedynczych funkcji, które z czasem przestają być wykorzystywane. Jeśli Druscan wykryje, że w danym typie treści od wielu miesięcy nie pojawiły się żadne nowe elementy ani edycje, można uznać go za nieaktywny i pominąć podczas dalszej analizy systemu. To pozwala szybciej ocenić realną strukturę treści oraz uporządkować elementy, które nie są już potrzebne.

Część Entity Structure w raporcie Druscan prezentująca szczegółowe informacje o typach treści w systemie na Drupalu.


Automatyczne diagramy

Raport generuje interaktywne diagramy przedstawiające strukturę systemu. Można je powiększać i przesuwać. Do najważniejszych należą:

  • pełna hierarchia menu głównego,
  • strukturę wybranych elementów konfiguracji.
Interaktywne diagramy w raporcie Druscan obrazujące strukturę systemu po audycie technicznym Drupala.


Logi z bazy danych

W tej sekcji znajdziesz błędy zapisane w dblogu wraz z informacją, których modułów dotyczą. To szybki sposób, aby określić stabilność systemu i potencjalne problemy wymagające uwagi.

Ekran raportu Druscan po audycie technicznym prezentujący błędy w logach z bazy danych.

 

Sekcja AI (opcjonalnie)

Jeśli audyt został uruchomiony w trybie AI, raport zawiera dodatkową sekcję z rekomendacjami. Obejmuje ona:

  • listę najważniejszych rzeczy do poprawy,
  • zalecenia dotyczące optymalizacji,
  • pozytywne aspekty instalacji,
  • action items z priorytetami oraz szacunkami czasowymi.

Jak zawsze w przypadku narzędzi AI, rekomendacje warto zweryfikować przez doświadczonego specjalistę Drupala.

Demo: jak działa audyt techniczny z Druscanem na realnym projekcie?

Aby pokazać działanie Druscana w praktyce, przygotowałam analizę dwóch instalacji uruchomionych lokalnie: Drupal CMS w wersji 1.2.5 oraz Open Intranet, czyli startera Droptica do budowy intranetów firmowych.

Struktura projektu Druscan

Repozytorium Druscana na GitHubie ma prostą, przejrzystą strukturę. Zawiera:

  • katalog scripts z plikami wykonującymi poszczególne kroki audytu,
  • katalog template z szablonami elementów raportu,
  • główny skrypt uruchamiający cały proces (plik audit.sh),
  • listę sprawdzeń, na bazie których generowany jest raport.

Narzędzie można łatwo dostosować do własnych potrzeb, np. dodać kolejne elementy analizy lub zmodyfikować istniejące.

Widok projektu Druscan na GitHubie, dostępny za darmo do pobrania przez użytkowników.


Przygotowanie środowiska

Aby uruchomić audyt, instalacje Drupala dodaje się jako symlinki w katalogu Drupal Sites. Każdy symlink wskazuje bezpośrednio na katalog web danej strony.

W opisywanym przykładzie są to dwa projekty:

  • cms-drupal
  • open-intranet

Dzięki temu Druscan „widzi” wiele instalacji jednocześnie i można je analizować niezależnie.

Widok narzędzia Druscan uruchomionego w aplikacji Cursor z katalogami strony do audytu technicznego.


Uruchomienie audytu w trybie podstawowym

Skanowanie rozpoczyna się od wywołania skryptu:

audit.sh <nazwa_katalogu> <adres_URL>

Po starcie w katalogu Audit Reports tworzony jest nowy folder z datą, w którym stopniowo pojawiają się pliki JSON zawierające kolejne dane:

  • najpierw informacje o bazie danych i wersji Drupala (wynik drush status),
  • następnie pełna lista modułów,
  • później dostępne aktualizacje,
  • oraz kolejne elementy konfiguracji i metryk.

Plik z modułami bywa najobszerniejszy, ponieważ zawiera szczegółowe informacje o każdym z nich.

Do tego trybu nie jest potrzebny Cursor. Skrypt można uruchomić lokalnie. 

Okno z uruchomionym audytem technicznym Drupala z użyciem skryptu Druscan i narzędzia DDEV.

 

Uruchomienie w trybie Cursor z AI

Drugi tryb korzysta z narzędzia Cursor, w którym definiuje się komendę wywołującą audyt oraz prompt opisujący sposób analizy. Po wpisaniu ukośnika (/) i wybraniu przygotowanej komendy Cursor:

  1. Uruchamia standardowy skrypt Druscana.
  2. Czeka na wygenerowanie plików JSON.
  3. Analizuje je przy użyciu AI.
  4. Generuje podsumowanie i rekomendacje.

W przypadku instalacji Open Intranet cały proces trwał około 17 minut, po czym powstała kompletna analiza wraz z listą usprawnień.

Wyniki przeprowadzonych audytów technicznych 

Poniżej przedstawiam przykładowe wyniki audytów wykonanych za pomocą Druscana dla dwóch różnych instalacji Drupala.

Dla systemu Open Intranet

Raport dla Open Intranet pokazał:

  • 149 aktywnych modułów, wraz z wersjami i patchami,
    dostępne aktualizacje, np. Field Group (3.6 → 4.0) i Flag (4.0 → 5.0),
  • brak aktualizacji bezpieczeństwa (zielony komunikat w raporcie).

W sekcji Entity Structure widocznych było:

  • 12 artykułów,
  • 39 dokumentów,
  • informacja, ile z nich powstało w ostatnim roku — co pomaga ocenić, które typy treści są realnie wykorzystywane.

Raport wygenerował także czytelne diagramy, m.in. pełne menu główne, które można powiększać i przesuwać. W logach znaleziono 17 błędów, w tym jeden związany z modułem EDSA, co wymaga dalszej diagnozy.

Ekran z wyświetlonym systemem Open Intranet gotowym do audytu technicznego z użyciem narzędzia Druscan.


Dla systemu Drupal CMS

Drugi raport — dla Drupal CMS — został wykonany w trybie podstawowym, bez analizy AI.
Najważniejsze informacje:

  • dostępna aktualizacja modułu EDSA (2 → 3),
  • system wykorzystuje 110 modułów,
  • brak modułów customowych,
  • typy treści: blog, case study, event, news — wraz z liczbą elementów,
  • 19 aktywnych viewsów,
  • 0 błędów w dblogu, co świadczy o stabilności instalacji.

Test Lighthouse dla tej instalacji pokazał wynik 100/100, co potwierdza wysoką optymalizację wydajnościową. Raport wskazał jedynie drobne kwestie związane z WCAG.

Ekran z systemem Drupal CMS przygotowanym na potrzeby audytu technicznego z użyciem narzędzia Druscan.

 

Jakie dodatkowe zastosowania ma Druscan?

Choć na początku artykułu wspomniałem, że Druscan bardzo dobrze pomaga z przygotowaniem wycen lub zmianą dostawcy, zakres jego zastosowań jest znacznie szerszy. Narzędzie sprawdza się w wielu codziennych scenariuszach pracy z Drupalem.

Onboarding nowych osób w zespole

Druscan pozwala szybko zrozumieć strukturę systemu, gdy do projektu dołącza nowy developer. Zamiast przeglądać kod od podstaw, otrzymuje on jeden zbiorczy raport zawierający informacje o modułach, typach treści, konfiguracji i architekturze. Taki raport świetnie sprawdza się także w sytuacji, gdy projekt przechodzi pomiędzy zespołami. Ułatwia przekazanie wiedzy i skraca czas wdrożenia.

Audyty cykliczne

Nasze narzędzie do audytów technicznych może być używane regularnie, np. co pół roku, aby monitorować zmiany w systemie. Porównanie kolejnych raportów pozwala szybko zauważyć:

  • nowe lub usunięte moduły,
  • rosnący dług techniczny,
  • pojawiające się błędy,
    zmiany w strukturze treści lub konfiguracji.

To praktyczny sposób na śledzenie ewolucji projektu i identyfikację miejsc wymagających uwagi.

Wsparcie dokumentacji technicznej

Dokumentacja techniczna często się dezaktualizuje, szczególnie w szybko rozwijających się projektach. Druscan rozwiązuje ten problem, generując zawsze aktualny, automatyczny snapshot architektury systemu.

Choć nie zastąpi pełnej dokumentacji strony na Drupalu, stanowi jej doskonałe uzupełnienie, zwłaszcza gdy potrzebujesz:

  • listy używanych modułów,
  • przeglądu konfiguracji,
  • struktury danych i typów treści.

Automatycznie tworzone raporty są zawsze zgodne ze stanem faktycznym systemu.

Ocena długu technicznego

Raport Druscana pomaga łatwo określić poziom długu technicznego projektu. Pokazuje m.in.:

  • liczbę modułów wymagających aktualizacji,
  • przestarzałe komponenty,
  • błędy występujące w logach.

Dzięki temu można lepiej zaplanować budżet i harmonogram prac utrzymaniowych.

Weryfikacja jakości pracy agencji

Druscan bywa także pomocny, gdy chcesz ocenić jakość pracy agencji pracującej nad Twoją stroną. Raport pozwala sprawdzić:

  • czy system jest regularnie aktualizowany,
  • czy liczba błędów w logach nie rośnie,
  • czy struktura systemu pozostaje spójna i logiczna.

To obiektywny obraz stanu technicznego projektu. Raport z audytu jest szczególnie wartościowy przed odnowieniem umowy, zmianą dostawcy lub rozpoczęciem większego zakresu prac.

Audyt techniczny Drupala z Druscanem - podsumowanie

Druscan przyda się nie tylko w procesie zmiany agencji. To uniwersalne narzędzie do audytu techicznego i tworzenia dokumentacji projektów na Drupalu. Pozwala rozwiązać fundamentalny problem w branży – jak dzielić się informacjami o stronie czy systemie bez ryzyka wycieku wrażliwych danych.

Narzędzie jest dostępne z jasną instrukcją instalacji. Jeśli masz pytania, możesz je zadać pod filmem na kanale Nowoczesny Drupal lub zgłosić błędy, propozycje ulepszeń czy nowe funkcjonalności bezpośrednio na GitHubie

Więcej informacji o naszym narzędziu, przykładowe sekcje z raportu oraz link do pobrania znajdziesz na stronie o Druscanie.


Ten artykuł powstał na bazie materiału wideo. Zapraszamy do subskrybowania kanału Nowoczesny Drupal. Nasi eksperci prezentują rozwiązania lub gotowe narzędzia, które pomogą Ci wykorzystać pełen potencjał Drupala.

-