Resellers (white-label)
Dove trovarlo nell'amministrazione: Customers › Resellers › List (
/resellers), Domains & SSL (/resellers/domains), Permissions & wholesale (/resellers/entitlements), Defaults (/resellers/settings). Slot rivenditore: System › Admin › License & updates (/license).
Descrizione
Un rivenditore ottiene una copia brandizzata del portale clienti sul proprio dominio, con i propri clienti, portafoglio, prezzi e (facoltativamente) canali di pagamento. Acquista da te a prezzo all'ingrosso e vende al proprio prezzo. I suoi clienti non vedranno mai il tuo brand e il dominio del rivenditore non potrà mai aprire la tua console di amministrazione. Il rivenditore gestisce la propria attività dalla console partner all'indirizzo https://partner.<your-domain>.
Requisiti
| Elemento | Requisito |
|---|---|
| Licenza | Uno slot per dominio rivenditore sulla tua licenza per ogni dominio rivenditore personalizzato. La pagina della licenza mostra used/max slot e un link per acquistarne altri. Senza uno slot libero, l'aggiunta di un dominio fallisce con l'errore "Out of license reseller domain slots". |
| DNS | Ogni dominio rivenditore deve essere puntato al tuo server (vedi sotto). |
| Server web e TLS | Il nome host deve raggiungere il pannello NexCMP tramite il tuo reverse proxy con un certificato valido per quel nome. |
| setItems("E-mail"), | SMTP configurato per le e-mail di invito e notifica. |
| Interruttore principale | Reseller settings › General › rs_enabled è attivo per impostazione predefinita. |
Prepara l'infrastruttura
Decidi l'indirizzo pubblico del server: il suo indirizzo IPv4 e, se preferisci i CNAME, un nome host che punta ad esso (ad esempio
sites.cloud.example.com).Apri Customers › Resellers › Defaults (
/resellers/settings), gruppo Domains & SSL e imposta:Key Significato rs_server_ipv4L'IPv4 pubblico a cui i record A dei rivenditori devono puntare. rs_cname_targetIl nome host a cui i record CNAME dei rivenditori devono puntare. rs_master_hostsNomi host che appartengono al tuo sito principale (non possono essere assegnati ai rivenditori). rs_platform_domainDominio padre opzionale per i sottodomini della piattaforma (ad esempio partners.cloud.example.comper assegnare ai rivenditoriacme.partners.cloud.example.com). Se vuoto, disabilita l'opzione.rs_sites_stale_minutesMinuti prima che il servizio di certificati venga considerato obsoleto (predefinito 15). rs_ssl_fail_hoursOre di tentativi falliti prima che venga generato un errore (predefinito 48). Verifica questi valori prima di inviare le istruzioni
rs_server_ipv4,rs_cname_targeters_master_hostscontengono valori di esempio. Sostituiscili con il tuo server e dominio prima di fornire le istruzioni DNS a un rivenditore, altrimenti le istruzioni a schermo punteranno nel posto sbagliato.Fai clic su Save (viene richiesto un motivo).
Assicurati che il tuo reverse proxy inoltri i nomi host dei rivenditori al pannello NexCMP e serva un certificato per Ognuno di essi. Il programma di installazione configura nginx e Let's Encrypt solo per il dominio principale (e i nomi
admin.epartner.che si risolvono). Se usi Cloudflare, fai da proxy per il nome host e usa la modalità Full SSL.
Collega in NexCMP
Crea il rivenditore
Apri Customers › Resellers › List e fai clic su New reseller. La procedura guidata prevede 8 passaggi e effettua il provisioning di tutto alla fine; ogni passaggio può essere ripetuto in sicurezza.
Passaggio Compila Reseller Nome legale o commerciale, slug (4–31 caratteri a–z, 0–9 o -, che inizia con una lettera; è anche il prefisso della fattura), nome del contatto, e-mail e telefono, lingua predefinita, dati di fatturazione del rivenditore (come acquirente di ricariche del portafoglio).Console account Nome utente, e-mail dell'account, nome completo; Send a one-time invite link by e-mail (valido 72 ore, consigliato) o mostra una password temporanea una sola volta. Brand Nome del brand, nome breve, slogan, colori primari, e-mail e telefono di supporto, nome del venditore stampato sulle fatture dei clienti, loghi (sfondo chiaro e scuro), icona quadrata e favicon: PNG, JPEG, WEBP o ICO fino a 256 KB, no SVG. Domini I domini del cliente con anche www, quale è primario, un dominio di test (sslip.io) e l'opzione dry-run, oppure un sottodominio della piattaforma. La procedura guidata mostra DNS OK / DNS not ready e i record da creare. Prezzi e portafoglio Sconto all'ingrosso (%), soglia al dettaglio (% del listino), ricarico predefinito (%), limite di credito, saldo iniziale, avviso di saldo basso, limiti su clienti, VM e domini, funzioni del sito (registrazione clienti, protezione DDoS, ticket di supporto, piano personalizzato, ridimensionamento, Auto Scaling). Canali di pagamento Chi riscuote i pagamenti dei clienti (vedi sotto) e la gestione opzionale di un conto PayPal proprio o di un bonifico bancario vietnamita. Email Nome del mittente e Reply-To. L'indirizzo From rimane quello della piattaforma finché non viene configurato il DKIM per il dominio del rivenditore. Riepilogo Controlla tutto e fai clic su Provision everything, oppure Save draft (provision later). Il provisioning continua in background (ogni 30 secondi). Apri il rivenditore per visualizzare i progressi e usa Continue provisioning o Retry se un passaggio non è riuscito.

Puntare i DNS (il rivenditore esegue questa operazione)
Il rivenditore (o tu) crea i record indicati nella scheda Domains & SSL:
| Record | Name | Valore |
|---|---|---|
| TXT (proprietà, solo la prima volta) | _site-verify.<domain> | sv=<token> mostrato a schermo |
A (dominio principale come shop.example.net) | il dominio | il tuo rs_server_ipv4 |
CNAME (sottodominio come cloud.example.net) | il dominio | il tuo rs_cname_target (o un record A verso rs_server_ipv4) |
| CNAME (opzionale) | www.<domain> | il tuo rs_cname_target |
Inoltre:
- Rimuovi qualsiasi record AAAA (IPv6) a meno che il tuo server non risponda su quell'indirizzo IPv6.
- Disattiva il proxy CDN (off, nuvola grigia) mentre il dominio viene verificato.
- Se il dominio dispone di record CAA, consenti
letsencrypt.org.
Il token nel record TXT è diverso per ogni dominio; copialo dallo schermo. Il sistema verifica nuovamente i DNS ogni 5 minuti per le prime 48 ore, poi ogni ora, e rilascia un nome il cui record TXT risulta ancora mancante dopo 72 ore.
Stati dei domini
In Customers › Resellers › Domains & SSL (tutti i rivenditori) e nella scheda Domains & SSL di un rivenditore:
| Stato | Significato |
|---|---|
pending_verify | In attesa del record TXT. |
pending_dns / verifying | In attesa che il record A o CNAME punti a te. |
issuing | Certificato in fase di emissione. |
active | In corso di erogazione del sito del rivenditore. |
cert_expiring | Certificato prossimo alla scadenza; rinnovo previsto. |
dns_lost | I DNS hanno smesso di puntare a te; dopo 30 giorni il dominio viene rimosso. |
error | Visualizza il codice di errore; Retry dopo la correzione. |
removing / removed | In fase di rimozione; lo slot di licenza viene restituito. |
Azioni riga: Check now, Retry, Make primary, Test mode (per un dominio di test), Remove.
Permessi e listino all'ingrosso
Customers › Resellers › Permissions & wholesale (/resellers/entitlements) è una matrice: una riga per rivenditore, con discount e markup all'ingrosso e un interruttore per servizio (ad esempio DDoS Shield e VPN). Un interruttore è modificabile quando la funzione a livello di piattaforma è attiva; altrimenti la cella è di sola lettura e rimanda all'impostazione. La scheda secondaria Top-up codes definisce quanti codici ogni rivenditore può emettere al mese (vedi Promotions).
Regole di prezzo:
- Prezzo all'ingrosso = prezzo di listino x (1 - discount), e può essere sovrascritto per piano e per ciclo di fatturazione nella scheda Wholesale pricing del rivenditore.
- Il rivenditore stabilisce i prezzi al dettaglio e non può scendere sotto la floor (percentuale del listino).
- Il wallet del rivenditore paga il prezzo all'ingrosso quando i suoi clienti acquistano. Il wallet ha un limite di credito, un periodo di tolleranza e un tetto di scoperto (vedi Defaults).
Defaults
Customers › Resellers › Defaults (/resellers/settings) sono le rs_* chiavi applicate a ogni rivenditore. Ogni modifica richiede una motivazione e viene registrata.
| Group | Key | Predefinito | Significato |
|---|---|---|---|
| General | rs_enabled | 1 | Programma rivenditori attivo. |
rs_platform_collect_enabled | 0 | Consente alla piattaforma di riscuotere i pagamenti dei clienti per conto dei rivenditori. Abilitare solo dopo una revisione legale. | |
rs_totp_required | 1 | Gli account della console rivenditore devono utilizzare l'autenticazione a due fattori. | |
rs_agreement_version | 1 | Versione dell'accordo di rivendita che devono accettare. | |
| Default pricing | rs_default_discount_bp | 2000 (20 %) | Sconto all'ingrosso per i nuovi rivenditori (punti base, da 0 a 9000). |
rs_default_markup_bp | 2500 (25 %) | Markup predefinito (da 0 a 50000). | |
rs_default_floor_bp | 9000 (90 %) | Soglia minima al dettaglio (da 0 a 20000). | |
rs_default_max_domains | 3 | Domini consentiti per rivenditore. | |
| Wallet and payouts | rs_grace_hours | 72 | Periodo di tolleranza prima che i servizi dei clienti siano influenzati da un wallet rivenditore vuoto. |
rs_overdraft_cap_cents | 5000 | Scoperto consentito sul wallet. | |
rs_retention_days | 14 | Giorni prima che le VM di un rivenditore chiuso vengano eliminate. | |
rs_payout_hold_days | 30 | Giorni in cui una commissione viene trattenuta prima di poter essere prelevata. | |
rs_payout_min_cents | 5000 | Prelievo minimo. | |
rs_topup_min_cents | 2000 | Ricarica minima del wallet da parte di un rivenditore. | |
| Payments and mail | rs_webhook_base | empty | URL di base pubblico per i webhook dei gateway rivenditore (vuoto = usa l'URL del sito). |
rs_mail_from | empty | Indirizzo From per le e-mail dei rivenditori. | |
rs_invoice_show_processor | 1 | Mostra il processore di pagamento sulle fatture. | |
rs_gw_stripe_enabled, rs_gw_usdt_enabled | 1 | Indica se i rivenditori possono configurare il proprio Stripe o USDT. |
Chi riscuote i pagamenti dei clienti
| Modalità | Significato |
|---|---|
| Reseller collects (own channels) — predefinito | Il rivenditore collega il proprio account Stripe, PayPal, USDT o bancario. I suoi webhook sono https://<reseller-domain>/v1/billing/<gateway>/webhook/r/<id>. Le carte salvate e l'auto top-up non sono disponibili per questi siti. |
| Platform collects | I tuoi canali vengono mostrati sul sito del rivenditore. Bloccato fino a rs_platform_collect_enabled = 1. |
| Mixed | Una combinazione scelta per canale. |
Cosa vede il rivenditore
La console partner all'indirizzo https://partner.<your-domain> include Overview, Reports, Customers, VMs, Tickets, Orders, Payments, Prices, Brand, Landing & legal, Domains & SSL, Email, Wallet e Payment channels. Gli account della console hanno il ruolo reseller (completo) o staff (sola lettura). Per visualizzarla tu stesso, apri il rivenditore e clicca su Sign in to partner console: accederai per 60 minuti, ogni scrittura sarà registrata con il tuo nome sia nel registro amministrativo sia in quello del rivenditore e le operazioni finanziarie richiederanno una seconda conferma.
Verifica
- Dopo il provisioning, la riga del rivenditore mostra active e una colonna Provisioning verde.
- Apri il dominio del rivenditore in un browser: compare la pagina di accesso del rivenditore con il suo marchio.
https://<reseller-domain>/adminrisponde 404. - Registra un cliente di prova su quel dominio: il cliente compare sotto Customers › List con il rivenditore nella colonna Site.
- La pagina della licenza mostra uno slot utilizzato in più.
Limiti e note
- Uno slot di licenza per ogni dominio personalizzato o di prova; i sottodomini della piattaforma non consumano alcuno slot.
- La sospensione di un rivenditore mantiene i dati; Close reseller restituisce tutti gli slot di dominio e la distruzione delle VM è consentita solo dopo il periodo di conservazione.
- I clienti dei rivenditori compaiono nel tuo elenco clienti e possono essere impersonati come qualsiasi altro (il link si apre sul dominio del rivenditore).
- I rivenditori non possono vedere o modificare i tuoi canali di pagamento, le quote predefinite o altri rivenditori.
Troubleshooting
| Sintomo | Causa | Soluzione |
|---|---|---|
| "Slot di dominio rivenditore esauriti" | All slots used | Libera uno slot (rimuovi un dominio) o acquistane altri nella pagina della licenza. |
Domain stuck in pending_verify | TXT record missing | Crea il record TXT esattamente come mostrato; usa Check now. |
Domain stuck in pending_dns | A/CNAME non puntato correttamente, record AAAA o proxy CDN attivo | Correggi il DNS, disattiva il proxy, quindi Check now. |
error state | Vedi il codice nella riga (ad esempio CAA che blocca Let's Encrypt, limite di richieste) | Correggi e fai clic su Retry. |
| Il browser indica che l'host è sconosciuto o "421" | Il nome host non è presente nella licenza o non è instradato verso il pannello | Aggiungi il dominio tramite il rivenditore (consuma uno slot) e correggi il reverse proxy. |
| Le istruzioni mostrano un IP o un host errato | rs_server_ipv4 / rs_cname_target contengono ancora i valori di esempio | Set them in Defaults. |
| Il rivenditore non può abilitare la riscossione della piattaforma | Locked | Imposta rs_platform_collect_enabled dopo una revisione legale. |