Reseller (White-Label)
Im Administratorbereich: Customers › Resellers › List (
/resellers), Domains & SSL (/resellers/domains), Permissions & wholesale (/resellers/entitlements), Defaults (/resellers/settings). Reseller-Slots: System › Admin › License & updates (/license).
Funktion
Ein Reseller erhält eine gebrandete Kopie des Kundenportals auf seiner eigenen Domain mit eigenen Kunden, Guthaben, Preisen und (optional) Zahlungskanälen. Er kauft von Ihnen zu einem Großhandelspreis ein und verkauft zu seinen eigenen Preisen. Seine Kunden sehen niemals Ihre Marke, und die Reseller-Domain kann niemals Ihre Admin-Konsole öffnen. Der Reseller betreibt sein Geschäft über die Partnerkonsole unter https://partner.<your-domain>.
Anforderungen
| Komponente | Anforderung |
|---|---|
| Lizenz | Ein Reseller-Domain-Slot auf Ihrer Lizenz für jede benutzerdefinierte Reseller-Domain. Die Lizenzseite zeigt used/max Slots und einen Link zum Kauf weiterer Slots. Ohne freien Slot schlägt das Hinzufügen einer Domain mit der Meldung "Out of license reseller domain slots" fehl. |
| DNS | Jede Reseller-Domain muss auf Ihren Server verweisen (siehe unten). |
| Webserver und TLS | Der Hostname muss das NexCMP-Panel über Ihren Reverse Proxy mit einem gültigen Zertifikat für diesen Namen erreichen. |
| SMTP für die Einladungs- und Benachrichtigungs-E-Mails konfiguriert. | |
| Hauptschalter | Reseller settings › General › rs_enabled ist standardmäßig aktiviert. |
Infrastruktur vorbereiten
Legen Sie die öffentliche Adresse des Servers fest: seine IPv4-Adresse und, falls Sie CNAMEs bevorzugen, einen Hostnamen, der darauf verweist (zum Beispiel
sites.cloud.example.com).Öffnen Sie Customers › Resellers › Defaults (
/resellers/settings), die Gruppe Domains & SSL und legen Sie Folgendes fest:Schlüssel Bedeutung rs_server_ipv4Die öffentliche IPv4-Adresse, auf die die A-Records der Reseller verweisen müssen. rs_cname_targetDer Hostname, auf den die CNAME-Records der Reseller verweisen müssen. rs_master_hostsHostnamen, die zu Ihrer eigenen Hauptseite gehören (sie können nicht an Reseller vergeben werden). rs_platform_domainOptionale übergeordnete Domain für Plattform-Subdomains (zum Beispiel partners.cloud.example.com, um Resellernacme.partners.cloud.example.combereitzustellen). Leer lässt die Option deaktiviert.rs_sites_stale_minutesMinuten, bevor der Zertifikatsdienst als veraltet gilt (Standard: 15). rs_ssl_fail_hoursStunden fehlgeschlagener Versuche, bevor ein Fehler ausgegeben wird (Standard: 48). Überprüfen Sie diese Werte, bevor Sie Anweisungen senden
rs_server_ipv4,rs_cname_targetundrs_master_hostsenthalten Beispielwerte. Ersetzen Sie diese durch Ihren eigenen Server und Ihre eigene Domain, bevor Sie DNS-Anweisungen an einen Reseller übergeben, da die Anweisungen auf dem Bildschirm sonst auf den falschen Ort verweisen.Klicken Sie auf Save (ein Grund wird abgefragt).
Stellen Sie sicher, dass Ihr Reverse Proxy die Reseller-Hostnamen an das NexCMP-Panel weiterleitet und für jeden von ihnen ein Zertifikat bereitstellt. Der Installer konfiguriert Nginx und Let's Encrypt nur für die Hauptdomain (sowie die auflösbaren Namen
admin.undpartner.). Wenn Sie Cloudflare verwenden, leiten Sie den Hostnamen über den Proxy und verwenden Sie den Full-SSL-Modus.
In NexCMP verbinden
Reseller erstellen
Öffnen Sie Customers › Resellers › List und klicken Sie auf New reseller. Der Assistent hat 8 Schritte und richtet am Ende alles ein; jeder Schritt kann sicher wiederholt werden.
Schritt Ausfüllen Reseller Rechts- oder Handelsname, Slug (4–31 Zeichen a–z, 0–9 oder -, beginnt mit einem Buchstaben; dies ist auch das Rechnungskräfix), Ansprechpartner, E-Mail und Telefon, Standardsprache, Rechnungsdaten des Resellers (als Käufer von Guthabenaufladungen).Konsolenkonto Benutzername, Konto-E-Mail, vollständiger Name; Send a one-time invite link by e-mail (72 Stunden gültig, empfohlen) oder einmalige Anzeige eines temporären Passworts. Marke Markenname, Kurzname, Slogans, Primärfarben, Support-E-Mail und -Telefon, der auf Kundenrechnungen aufgedruckte Verkäufername, Logos (heller und dunkler Hintergrund), quadratisches Markenzeichen und Favicon: PNG, JPEG, WEBP oder ICO bis zu 256 KB, kein SVG. Domains Die Kundendomain(s) inklusive www, welche davon primär ist, eine Testdomain (sslip.io) und die Dry-Run-Option oder eine Plattform-Subdomain. Der Assistent zeigt DNS OK / DNS not ready sowie die zu erstellenden Einträge. Pricing & wallet Großhandelsrabatt (%), Untergrenze für den Einzelhandel (% des Listenpreises), Standardaufschlag (%), Kreditlimit, Anfangsguthaben, Warnung bei geringem Guthaben, Limits für Kunden, VMs und Domains, Website-Funktionen (Kundenregistrierung, DDoS-Schutz, Support-Tickets, benutzerdefinierter Tarif, Resize, Auto Scaling). Payment channels Wer Kundenzahlungen einzieht (siehe unten) sowie optional ein eigenes PayPal und eine eigene vietnamesische Banküberweisung. Email Absendername und Reply-To. Die From-Adresse bleibt die Plattformadresse, bis DKIM für die Reseller-Domain eingerichtet ist. Review Überprüfen Sie alles und klicken Sie auf Provision everything oder Save draft (provision later). Die Provisionierung läuft im Hintergrund weiter (alle 30 Sekunden). Öffnen Sie den Reseller, um den Fortschritt zu sehen, und verwenden Sie Continue provisioning oder Retry, falls ein Schritt fehlgeschlagen ist.

DNS konfigurieren (führt der Reseller aus)
Der Reseller (oder Sie) erstellt die auf dem Tab Domains & SSL angezeigten Einträge:
| Eintrag | Name | Wert |
|---|---|---|
| TXT (Inhaberschaft, nur beim ersten Mal) | _site-verify.<domain> | sv=<token> auf dem Bildschirm angezeigt |
A (Apex-Domain wie shop.example.net) | die Domain | Ihre rs_server_ipv4 |
CNAME (Subdomain wie cloud.example.net) | die Domain | Ihre rs_cname_target (oder ein A-Eintrag auf rs_server_ipv4) |
| CNAME (optional) | www.<domain> | Ihre rs_cname_target |
Außerdem:
- Entfernen Sie alle AAAA-Einträge (IPv6), es sei denn, Ihr Server antwortet unter dieser IPv6-Adresse.
- Schalten Sie den CDN-Proxy aus (graue Wolke), während die Domain verifiziert wird.
- Wenn die Domain CAA-Einträge besitzt, erlauben Sie
letsencrypt.org.
Das Token im TXT-Eintrag ist für jede Domain unterschiedlich; kopieren Sie es vom Bildschirm. Das System überprüft das DNS in den ersten 48 Stunden alle 5 Minuten, danach stündlich, und gibt einen Namen frei, dessen TXT-Eintrag nach 72 Stunden noch immer fehlt.
Domain-Status
Unter Customers › Resellers › Domains & SSL (alle Reseller) und im Tab Domains & SSL eines Resellers:
| Status | Bedeutung |
|---|---|
pending_verify | Wartet auf den TXT-Eintrag. |
pending_dns / verifying | Wartet darauf, dass A oder CNAME auf Sie verweist. |
issuing | Zertifikat wird ausgestellt. |
active | Bedient die Website des Resellers. |
cert_expiring | Zertifikat läuft bald ab; Erneuerung wird erwartet. |
dns_lost | DNS verweist nicht mehr auf Sie; nach 30 Tagen wird die Domain entfernt. |
error | Fehlercode anzeigen; Retry nach der Behebung. |
removing / removed | Wird entzogen; der Lizenzplatz wird zurückgegeben. |
Zeilenaktionen: Check now, Retry, Make primary, Test mode (für eine Testdomain), Remove.
Berechtigungen & Großhandel
Customers › Resellers › Permissions & wholesale (/resellers/entitlements) ist eine Matrix: eine Zeile pro Reseller mit Rabatt (Wholesale) und Aufschlag sowie einem Schalter pro Dienst (zum Beispiel DDoS Shield und VPN). Ein Schalter ist bearbeitbar, wenn das plattformweite Feature eingeschaltet ist; andernfalls ist die Zelle schreibgeschützt und verlinkt zur Einstellung. Die Registerkarte Top-up codes legt fest, wie viele Codes jeder Reseller pro Monat ausstellen darf (siehe Promotions).
Preisregeln:
- Großhandelspreis = Listenpreis x (1 - Rabatt) und kann pro Tarif und Abrechnungszeitraum im Tab Wholesale pricing des Resellers überschrieben werden.
- Der Reseller legt die Endkundenpreise fest und darf das Limit (Prozentsatz des Listenpreises) nicht unterschreiten.
- Das Wallet des Resellers bezahlt den Großhandelspreis, wenn dessen Kunden kaufen. Das Wallet hat ein Kreditlimit, eine Nachfrist und eine Überziehungsobergrenze (siehe Standardwerte).
Standardwerte
Customers › Resellers › Defaults (/resellers/settings) sind die rs_*-Schlüssel, die für jeden Reseller gelten. Jede Änderung erfordert die Angabe eines Grundes und wird protokolliert.
| Gruppe | Schlüssel | Standard | Bedeutung |
|---|---|---|---|
| Allgemein | rs_enabled | 1 | Reseller-Programm aktiviert. |
rs_platform_collect_enabled | 0 | Ermöglicht der Plattform, Kundenzahlungen für Reseller einzuziehen. Nur nach rechtlicher Prüfung aktivieren. | |
rs_totp_required | 1 | Reseller-Konsolenkonten müssen die Zwei-Faktor-Authentifizierung verwenden. | |
rs_agreement_version | 1 | Version der Reseller-Vereinbarung, die diese akzeptieren müssen. | |
| Standardpreisgestaltung | rs_default_discount_bp | 2000 (20 %) | Großhandelsrabatt für neue Reseller (Basispunkte, 0 bis 9000). |
rs_default_markup_bp | 2500 (25 %) | Standardaufschlag (0 bis 50000). | |
rs_default_floor_bp | 9000 (90 %) | Endkunden-Mindestpreis (0 bis 20000). | |
rs_default_max_domains | 3 | Erlaubte Domains pro Reseller. | |
| Wallet und Auszahlungen | rs_grace_hours | 72 | Nachfrist, bevor Kundendienste von einem leeren Reseller-Wallet beeinträchtigt werden. |
rs_overdraft_cap_cents | 5000 | Erlaubte Überziehung des Wallets. | |
rs_retention_days | 14 | Tage, bevor die VMs eines geschlossenen Resellers gelöscht werden. | |
rs_payout_hold_days | 30 | Tage, die eine Provision gehalten wird, bevor sie ausgezahlt werden kann. | |
rs_payout_min_cents | 5000 | Kleinste Auszahlung. | |
rs_topup_min_cents | 2000 | Kleinste Wallet-Aufladung durch einen Reseller. | |
| Zahlungen und E-Mail | rs_webhook_base | leer | Öffentliche Basis-URL für Reseller-Gateway-Webhooks (leer = Site-URL verwenden). |
rs_mail_from | leer | Absendertadresse für Reseller-E-Mails. | |
rs_invoice_show_processor | 1 | Zahlungsdienstleister auf Rechnungen anzeigen. | |
rs_gw_stripe_enabled, rs_gw_usdt_enabled | 1 | Ob Reseller ihr eigenes Stripe oder USDT konfigurieren dürfen. |
Wer Kundenzahlungen einzieht
| Modus | Bedeutung |
|---|---|
| Reseller zieht ein (eigene Kanäle) — Standard | Der Reseller verbindet sein eigenes Stripe, PayPal, USDT oder Bankkonto. Seine Webhooks sind https://<reseller-domain>/v1/billing/<gateway>/webhook/r/<id>. Gespeicherte Karten und auto top-up sind für diese Websites nicht verfügbar. |
| Plattform zieht ein | Ihre Kanäle werden auf der Reseller-Website angezeigt. Gesperrt bis rs_platform_collect_enabled = 1. |
| Gemischt | Eine pro Kanal gewählte Kombination. |
Was der Reseller sieht
Die Partnerkonsole unter https://partner.<your-domain> bietet Übersicht, Berichte, Kunden, VMs, Tickets, Bestellungen, Zahlungen, Preise, Marke, Landingpage & Rechtliches, Domains & SSL, E-Mail, Wallet und Zahlungskanäle. Konsolenkonten haben die Rolle reseller (vollständig) oder staff (schreibgeschützt). Um sie selbst anzusehen, öffnen Sie den Reseller und klicken auf Sign in to partner console: Sie treten für 60 Minuten ein, jeder Schreibvorgang wird mit Ihrem Namen sowohl im Admin-Log als auch im Reseller-Log protokolliert, und Geldoperationen erfordern eine zweite Bestätigung.
Verifizierung
- Nach der Bereitstellung zeigt die Zeile des Resellers active und eine grüne Provisioning-Spalte.
- Öffnen Sie die Domain des Resellers in einem Browser: Die eigene Login-Seite des Resellers mit dessen Branding wird angezeigt.
https://<reseller-domain>/adminliefert einen 404-Fehler. - Registrieren Sie einen Testkunden unter dieser Domain: Der Kunde erscheint unter Customers › List mit dem Reseller in der Site-Spalte.
- Die Lizenzseite zeigt einen genutzten Slot mehr an.
Limits & Hinweise
- Ein Lizenz-Slot pro benutzerdefinierter Domain oder Test-Domain; Plattform-Subdomains verbrauchen keinen Slot.
- Das Deaktivieren eines Resellers behält die Daten; Close reseller gibt alle Domain-Slots frei, und die VM-Löschung ist erst nach Ablauf der Aufbewahrungsfrist zulässig.
- Reseller-Kunden erscheinen in Ihrer Kundenliste und können wie alle anderen übernommen werden (der Link öffnet sich auf der Domain des Resellers).
- Reseller können weder Ihre Zahlungskanäle, Standard-Quotas noch andere Reseller sehen oder ändern.
Fehlerbehebung
| Symptom | Ursache | Behebung |
|---|---|---|
| "Lizenzkontingent für Reseller-Domains erschöpft" | Alle Slots belegt | Geben Sie einen Slot frei (entfernen Sie eine Domain) oder kaufen Sie weitere auf der Lizenzseite. |
Domain feststeckend in pending_verify | TXT-Eintrag fehlt | Erstellen Sie den TXT-Eintrag exakt wie angezeigt; verwenden Sie Check now. |
Domain feststeckend in pending_dns | A/CNAME verweist nicht auf Sie, ein AAAA-Eintrag ist vorhanden oder der CDN-Proxy ist aktiv | Beheben Sie das DNS, deaktivieren Sie den Proxy und klicken Sie dann auf Check now. |
error-Status | Siehe den Code in der Zeile (z. B. CAA blockiert Let's Encrypt, Rate-Limit) | Beheben Sie den Fehler und klicken Sie auf Retry. |
| Browser meldet, dass der Host unbekannt ist oder "421" | Der Hostname ist nicht auf der Lizenz vorhanden oder wird nicht zum Panel geleitet | Fügen Sie die Domain über den Reseller hinzu (verbraucht einen Slot) und korrigieren Sie den Reverse Proxy. |
| Anweisungen zeigen eine falsche IP oder einen falschen Host | rs_server_ipv4 / rs_cname_target enthalten noch die Beispielwerte | Legen Sie diese in den Standardeinstellungen (Defaults) fest. |
| Reseller kann Plattform-Einzug nicht aktivieren | Gesperrt | Legen Sie rs_platform_collect_enabled nach rechtlicher Prüfung fest. |