VulCode

Moduły WHMCS dla Proxmoxa, Pterodactyla i własnych paneli

WHMCS prowadzi klientów, faktury i terminy płatności. Moduł provisioningu sprawia, że po opłaceniu zamówienia VPS albo serwer gry powstaje sam, a po zaległości zostaje zawieszony. Piszemy takie moduły i hooki, a gdy WHMCS przestaje wystarczać, mówimy o naszym panelu Flaem.

Firmy hostingowe
Moduł vcproxmox w panelu integracji: funkcje modułu z momentem, w którym uruchamia je WHMCS, wywołania Proxmox VE, pakiety z ustawieniami configoption i zabezpieczenia

Jak działa moduł provisioningu

Moduł to plik PHP w katalogu /modules/servers/ z funkcjami, które WHMCS wywołuje w określonych momentach życia usługi.

Kiedy WHMCS uruchamia funkcję

  • Opłacone zamówienie

    Albo założenie usługi przez obsługę.

  • Zaległa faktura

    Zadanie cron WHMCS przy zaległości.

  • Zapłata zaległości

    Klient opłaca zaległą fakturę.

  • Długa zaległość

    Cron, jeśli usuwanie jest włączone.

Funkcja modułu w /modules/servers/

  • CreateAccount

    Zakłada usługę w panelu albo hypervisorze. Pakiet przekazuje modułowi ustawienia configoption1 do configoption24, np. węzeł i szablon.

    Po: Opłacone zamówienie

  • SuspendAccount

    Zawiesza usługę w panelu albo hypervisorze.

    Po: Zaległa faktura

  • UnsuspendAccount

    Przywraca zawieszoną usługę.

    Po: Zapłata zaległości

  • TerminateAccount

    Usuwa usługę z panelu albo hypervisora.

    Po: Długa zaległość

Co ustawia WHMCS po success

  • Active i e-mail powitalny

    Klient dostaje e-mail z danymi usługi.

    Po: CreateAccount

  • Suspended

    Status ustawia WHMCS, nie moduł.

    Po: SuspendAccount

  • Active

    Usługa wraca do działania.

    Po: UnsuspendAccount

  • Terminated

    Usługa kończy się w WHMCS.

    Po: TerminateAccount

CreateAccount dla Proxmoxa

Jedno wywołanie CreateAccount w dzienniku modułu: parametry od WHMCS, zapytanie do Proxmox VE i to, co wraca do WHMCS. Sekret tokenu nie trafia do logu.

Dziennik modułu vcproxmox: wpis CreateAccount z parametrami od WHMCS, klonowaniem szablonu w Proxmox VE, identyfikatorem zadania UPID i zadaniem dokańczającym
  1. Węzeł i szablon z pakietu

    Węzeł i szablon z ustawień pakietu. VMID wynika z ID usługi, więc ponowienie nie założy drugiej maszyny.

  2. Sekret poza logiem

    Zapis w Module Log, z sekretem tokenu usuniętym z treści. Token API Proxmoxa: użytkownik z ID tokenu w polu użytkownika serwera, sekret w polu hasła.

  3. success, a reszta w tle

    Identyfikator zadania czeka na dokończenie: konfigurację, hasło i start maszyny.

Proxmox i Pterodactyl od strony modułu

Dwa najczęstsze cele modułów WHMCS u firm hostingowych.

CreateAccount

Klient opłacił zamówienie i usługa ma powstać sama.

Proxmox VE
VPS i kontenery LXC
  1. POST .../qemu/{vmid}/clone klonuje szablon maszyny
  2. Proxmox oddaje identyfikator zadania UPID, klonowanie trwa w tle
  3. Zadanie dokańczające czeka na koniec, potem konfiguracja i start
Pterodactyl
serwery gier
  1. POST /api/application/servers z external_id zamówienia
  2. Serwer od razu jest w panelu
  3. Instalację według egga robi Wings
Wniosek: inne wywołanie w każdym panelu

Przy Proxmoxie moduł potrzebuje zadania, które dokończy pracę po klonowaniu. W Pterodactylu wystarcza jedno wywołanie.

Ponowienie po awarii

Ta sama funkcja rusza drugi raz, np. po zerwanym połączeniu.

Proxmox VE
VPS i kontenery LXC
  1. VMID wynika z ID usługi
  2. Ponowione klonowanie dostaje ten sam VMID
  3. Druga maszyna nie powstanie
Pterodactyl
serwery gier
  1. Pole external_id wiąże serwer z zamówieniem
  2. Ponowienie najpierw szuka serwera po external_id
  3. Istniejący serwer wraca zamiast drugiego
Wniosek: inne wywołanie w każdym panelu

Ochronę przed duplikatem daje w Proxmoxie stały VMID, a w Pterodactylu pole external_id.

SuspendAccount i UnsuspendAccount

Faktura jest zaległa, a potem klient ją opłaca.

Proxmox VE
VPS i kontenery LXC
  1. Cron WHMCS przy zaległości wywołuje SuspendAccount
  2. POST .../status/stop albo suspend
  3. Po zapłacie POST .../status/start
Pterodactyl
serwery gier
  1. Cron WHMCS przy zaległości wywołuje SuspendAccount
  2. POST /servers/{id}/suspend
  3. Po zapłacie POST /servers/{id}/unsuspend
Wniosek: inne wywołanie w każdym panelu

W Proxmoxie moduł zatrzymuje albo usypia maszynę, w Pterodactylu woła zawieszenie serwera. Status Suspended w obu przypadkach ustawia WHMCS.

Uwierzytelnienie modułu

Proxmox VE: token API z własnymi uprawnieniami i datą ważności. Pterodactyl: klucz aplikacyjny Bearer.

"Według ustaleń" oznacza szczegół, którego nie potwierdziliśmy w publicznej dokumentacji.

Od zapłaty do działającego VPS-a

Przebieg z modułem dla Proxmoxa: historia usługi w panelu klienta i to, co w tym czasie robią WHMCS, moduł i Proxmox VE.

Usługa vps-1342 w panelu klienta na telefonie: adres IP, dane dostępu wysłane e-mailem, przyciski zasilania i historia od opłaconej faktury do wysłania danych dostępu
  1. Faktura opłacona

    • KlientWHMCSopłaca zamówienie
    • WHMCSModułCreateAccount z parametrami pakietu
  2. Maszyna z szablonu

    • ModułProxmox VEklonowanie szablonu maszynytoken API w nagłówku
    • Proxmox VEModułidentyfikator zadania UPID
    • ModułWHMCSsuccessstatus Active
  3. Start i dane dostępu

    • ModułProxmox VEpo zakończeniu zadania: konfiguracja i start
    • WHMCSKliente-mail powitalny i dane dostępu

Długie operacje

Proxmox zwraca identyfikator zadania, a samo klonowanie trwa w tle. Moduł zapisuje go, a dokończenie robi zadanie, które sprawdza status.

Przyciski w panelu klienta

Start, stop i restart maszyny jako własne funkcje modułu, widoczne przy usłudze w panelu klienta WHMCS.

Najczęstsze pytania o WHMCS

Odpowiedzi o gotowych modułach, kilku węzłach, logowaniu do panelu, błędach i wycenie.

Zakładacie usługi w WHMCS ręcznie?

Napisz, jakiego panelu albo hypervisora używacie i co ma dziać się po płatności. Odpowiemy w godzinę z pytaniami i wyceną.