Programista nie odpowiada – co robić? Lista kontrolna przejęcia strony
Programista lub agencja przestali odpowiadać? Ta lista pokazuje, co zabezpieczyć najpierw: domenę, hosting, dostępy, kopie zapasowe, licencje i pocztę.
W skrócie: Jeśli Państwa programista lub agencja przestali odpowiadać, najpierw trzeba ustalić, do kogo należy domena i na kogo zawarta jest umowa hostingowa. Potem zabezpieczamy dostępy, pełną kopię zapasową i licencje. Dopóki domena i hosting są na Państwa firmę, da się rozwiązać prawie wszystko – także bez dawnego programisty.
Regularnie przejmuję strony i aplikacje, których twórca „zniknął”. Czasem zmienił zawód, czasem agencja przestała istnieć, czasem po prostu nikt nie odpisuje. Schemat jest prawie zawsze ten sam: dopóki wszystko działa, nikt tego nie zauważa. Dopiero gdy pojawia się błąd, hosting zmienia wersję PHP albo przychodzi faktura, okazuje się, że nikt nie ma dostępów.
Dlaczego to zdarza się tak często
Wiele stron oddano „pod klucz”. Programista zarejestrował domenę u swojego dostawcy, wykupił hosting na swoim koncie klienta i kupił licencje wtyczek na swój adres e-mail. Dla Państwa było to wygodne. Teraz oznacza, że ważne elementy strony zależą od osoby, z którą nie ma kontaktu.
Lista kontrolna: co trzeba ustalić
1. Domena: kto jest właścicielem, a kto rejestratorem?
Domena jest najważniejsza. Warto rozróżnić dwie rzeczy:
- Właściciel domeny (niem. Domaininhaber): osoba lub firma, do której domena prawnie należy. Najlepiej, żeby to była Państwa firma.
- Rejestrator / dostawca (niem. Registrar, Provider): firma, przez którą domena jest zarządzana, np. Państwa hosting.
Dla domen .de publiczne wyszukiwanie Whois w DENIC ze względu na ochronę danych nie pokazuje już danych właściciela. Często widać tam jednak, który dostawca obsługuje serwery nazw. Jako właściciel mogą Państwo zażądać informacji u dostawcy lub w DENIC. Proszę też sprawdzić stare faktury: jeśli opłaty za domenę szły bezpośrednio do hostingu, domena najpewniej jest na Państwa koncie klienta.
Do późniejszego przeniesienia domeny potrzebny jest kod AuthInfo (też Auth-Code lub kod transferu). Wydaje go aktualny dostawca właścicielowi domeny.
2. Umowa hostingowa
Na kogo jest umowa? Czy mają Państwo własne dane logowania do panelu klienta? Jeśli hosting jest na agencję, umowa może wygasnąć, gdy agencja przestanie płacić – a wtedy strona znika. Warto zapytać hostingodawcę, co dzieje się z danymi po wypowiedzeniu umowy.
3. Dostępy techniczne
Proszę spisać, co Państwo mają, a czego brakuje:
- FTP lub SFTP
- SSH, jeśli jest dostępny
- baza danych (dane logowania, często przez phpMyAdmin)
- konto administratora CMS, np. WordPress lub TYPO3
- zarządzanie DNS
- Google Search Console, Analytics, ewentualnie Cloudflare
Mając dostęp do panelu klienta hostingu, zwykle można samodzielnie ustawić nowe hasła do FTP i bazy danych. W WordPressie dane do bazy znajdują się w pliku wp-config.php:
define( 'DB_NAME', 'nazwa_bazy' );
define( 'DB_USER', 'uzytkownik' );
define( 'DB_PASSWORD', '...' );
define( 'DB_HOST', 'localhost' );
4. Kod źródłowy i repozytorium
Przy oprogramowaniu pisanym na zamówienie kluczowy jest kod źródłowy. Czy leży w repozytorium na GitHubie, GitLabie albo Bitbuckecie? Na czyim koncie? Jeśli na serwerze są tylko gotowe pliki, to lepsze niż nic, ale brakuje historii zmian. Przy plikach zaszyfrowanych (np. ionCube) bez oryginalnego kodu nikt nie będzie mógł sensownie pracować dalej.
5. Kopie zapasowe
Czy istnieją backupy i gdzie są przechowywane? Proszę nie zakładać, że „hosting to robi”. Najlepiej od razu wykonać własną, pełną kopię: wszystkie pliki plus eksport bazy danych. Z dostępem SSH wygląda to na przykład tak:
tar -czf backup-strony.tar.gz /sciezka/do/strony
mysqldump -u uzytkownik -p nazwa_bazy > baza.sql
Bez SSH można użyć funkcji kopii zapasowej w panelu hostingu albo pobrać pliki przez FTP i wyeksportować bazę przez phpMyAdmin.
6. Licencje wtyczek i motywów
Płatne wtyczki i motywy, np. page buildery, formularze czy wtyczki do tłumaczeń, potrzebują ważnej licencji, żeby dostawać aktualizacje. Często kupiono je na konto agencji. Gdy licencja wygaśnie, nie będzie aktualizacji bezpieczeństwa. Proszę sprawdzić w panelu WordPressa, które wtyczki wymagają licencji, i w razie wątpliwości kupić własne.
7. Poczta e-mail
Firmowa poczta często działa na tym samym hostingu lub tej samej domenie. Proszę sprawdzić, gdzie są skrzynki i kto zarządza rekordami MX w DNS. Nieostrożna zmiana przy domenie może inaczej unieruchomić także pocztę.
Co zabezpieczyć w pierwszej kolejności
- Domenę – bez niej cała reszta traci wartość.
- Pełną kopię zapasową plików i bazy, zapisaną lokalnie u Państwa.
- Własny dostęp administratora do hostingu i CMS.
- Zmianę haseł, gdy tylko mają Państwo dostęp – a po zakończeniu współpracy także wyłączenie kont dawnego programisty.
- Licencje i repozytorium.
Jak rozmawiać z dawnym programistą lub agencją
Najlepiej rzeczowo. Wielu programistów nie działa w złej wierze – są przeciążeni albo po prostu zapomnieli o projekcie. W praktyce pomaga:
- Krótki e-mail z konkretną listą: transfer domeny lub kod AuthInfo, dostęp do hostingu, repozytorium, licencje.
- Rozsądny termin, np. 14 dni.
- Propozycja zapłaty za czas poświęcony na przekazanie. To rozwiązuje zaskakująco wiele blokad.
- Dokumentowanie wszystkich prób kontaktu z datą.
Jeśli korespondencja z agencją idzie po niemiecku, warto pisać krótko i jednoznacznie, np. z prośbą o „Herausgabe der Zugangsdaten und des AuthInfo-Codes”.
Kiedy potrzebny jest prawnik
Nie jestem prawnikiem i nie udzielam tu porad prawnych. Z praktyki mogę jednak powiedzieć, w jakich sytuacjach moi klienci korzystali z pomocy prawnej:
- Domena jest zarejestrowana na programistę, a on nie chce jej oddać.
- Programista odmawia wydania dostępów lub kodu, np. z powodu niezapłaconych faktur.
- Nie wiadomo, jakie prawa do korzystania z kodu (niem. Nutzungsrechte) mają Państwo – to zależy od umowy.
- Agencja jest niewypłacalna; wtedy właściwym adresatem jest często syndyk (Insolvenzverwalter).
Na rozmowę z prawnikiem warto przygotować umowę, oferty, faktury i korespondencję.
Częste błędy
- Budowa nowej strony, zanim domena jest zabezpieczona. Nowa strona nic nie da, jeśli domena nie należy do Państwa.
- Eksperymenty na działającym systemie bez kopii zapasowej.
- Wypowiedzenie hostingu, zanim wszystkie dane zostaną zabezpieczone.
- Wysyłanie haseł zwykłym e-mailem. Lepiej użyć menedżera haseł.
Czego potrzebuje nowy programista do przejęcia
- dostępu do panelu klienta hostingu albo przynajmniej FTP/SFTP i bazy danych
- konta administratora w CMS
- dostępu do zarządzania DNS
- repozytorium lub pełnej kopii plików
- listy licencji i usług zewnętrznych (płatności, newsletter, interfejsy)
- istniejącej dokumentacji, nawet niepełnej
Mając te elementy, najpierw robię przegląd: jakie wersje działają, jaka wersja PHP, gdzie są ryzyka. Dopiero potem cokolwiek zmieniam.
Profesjonalna pomoc przy przejęciu
Jeśli nie wiedzą Państwo, od czego zacząć, mogę przejść tę listę razem z Państwem i zająć się stroną techniczną: zabezpieczeniem, inwentaryzacją i dalszym utrzymaniem. Więcej na stronie przejęcie oprogramowania. Jeśli system jest przestarzały, na stronie modernizacja starego systemu opisuję, jak krok po kroku doprowadzić go do aktualnego stanu.