panel.ai.id Panduan

Panduan ini dalam bahasa Inggris. This guide is in English.

Isi Contents

Reseller guide

For reseller administrators: you sell hosting from a provider, create customer accounts (and, if allowed, sub-resellers) within the limits the provider gave you, and look after them. Everything a customer can do (customer.md) you can also do in the accounts below you: open a customer's page, then its Websites, Databases or DNS zones.

Status of this guide (2026-10-14). It describes the console as built in the code today. The pages exist and are tested, but have not been walked through in a browser on the development cluster. Billing and webhooks work only if the provider's panel has them switched on. PLANNED marks what is not built.

Your menu: Dashboard, Customers, Resellers (if you may create sub-resellers or have some), Packages, Usage, Billing, Database insight, Logs & monitoring, Alerts, Audit log, Webhooks, Your account.

1. How the hierarchy works

  • The tree is platform > provider > reseller (> sub-reseller ...) > customer account. Websites, databases and DNS zones belong to customer accounts only.
  • Limits are inherited: for each limit the tightest value set on the account or any level above it is the one in force. An empty field means "inherit"; empty everywhere means no limit.
  • Counted items (websites, domains, databases, DNS zones, customer accounts, resellers) count against the account and every level above it. When you reach a limit, nothing new can be created below you.
  • Decisions about an org belong to the level above it. You change limits, packages, suspension, delegation, logins and the billing plan of the orgs below you, never of your own org. To change your own limits, ask your provider.
  • If your provider suspends you, your logins and everything below you stop working on their next request.

2. Customer accounts

Create a customer

  1. Customers (or your org's page, My organization) > Create customer or reseller.
  2. Type: Customer.
  3. Name.
  4. First login: username (lower-case, 3 to 32 characters) and Initial password (12+ characters). The customer must change it at first sign-in.
  5. Package: pick one, or Custom limits and open Limits to set them (empty fields inherit).
  6. Create. The message says the account was created and that the first login must change its password.

Open and manage a customer

Customers lists every account below you with its status; open one by name. The customer page has: - Limits and usage: each limit (own setting and in force) and current use. - Change limits: setting limits by hand detaches the account from its package. - Assign package: choose a package and Assign. - Region: Preferred region (a hint) and Required region (data residency: new sites are placed only there). Both inherit from the package and from above; a level below cannot change a required region set above. - Websites and databases and DNS zones: links into the customer's resources. - Logins (section 6). - Account lifecycle: - Suspend: the account's logins and everything below stop working on their next request. Nothing is deleted. Reactivate undoes it. - Delete: only an org with nothing below it and no websites or databases. Type its ID to confirm, then Delete permanently.

Rename

Rename at the top of a customer's, sub-reseller's or your own org page: change Name (1 to 80 characters) and Save name. The ID never changes. Customers cannot rename their own account. The API call is PATCH /v1/orgs/{id} with {"name"}.

3. Packages

A package is a named set of limits you offer to customers below you. Packages: - Create a package: Name and the limits (empty inherits), Create package. - Edit a package: change name or limits and Save and apply. The change applies to every account using it, all or nothing, and a package can never exceed your own limits. - Package regions: preferred and required region, Save regions. - Delete package: only when no account uses it.

If your provider did not delegate package management to you, the page says so; you can still assign the packages listed there.

Limits on forms: CPU (% of one core), Memory (MB), Disk (MB), Disk I/O (bytes/s), I/O operations (per second), Processes, PHP workers (per site), Files (inodes), Websites, Domains, Databases, DNS zones, Customer accounts, Resellers. Disk and Files are enforced soft on the current nodes (ADR-0050): the panel measures each account's use, refuses its own file-manager writes, uploads, imports and new websites at the limit and raises alerts at 80 % and 100 %, but writes by PHP, SFTP and cron are not stopped until a node has filesystem project quotas (hard enforcement is PLANNED). Mailboxes are not shown ("Mailboxes are not shown: email is a later module"): email hosting is PLANNED. A mailbox limit set over the API ("mailboxes") is kept, and the forms carry it through unchanged.

4. Sub-resellers and delegation

If you may create sub-resellers, the create form also offers Type: Reseller, and Resellers appears in the menu.

On a sub-reseller's page, Delegated powers lets you allow or withhold: - Create sub-resellers - Create packages - Set branding

then Save. A reseller never holds a power its parent lacks; the page shows what is in force.

5. Branding

On a sub-reseller's page (or on your own org's page, if your provider delegated branding to you), Branding: - Display name: shown in the console and on the sign-in page. - Accent color: #rrggbb. - Support email. - Login hostname (optional): the host name your customers sign in on; the sign-in page on that host shows your branding.

Save branding. Branding applies to the org and everything below it; empty fields inherit. Pointing the login hostname's DNS and certificate at the panel is the operator's job.

6. Logins (user management)

On the page of an org below you, Logins lists each login with role, status, password age and whether two-factor sign-in is on. - Add a login: Username, Password (12+ characters, temporary: changed at first sign-in), and Read-only for a login that can look but not change anything. Add login. - Suspend / Reactivate a login. - Reset password: type a new password, Set. That login's sessions end. - Remove two-factor: shown when the login has it on, for a customer who lost the phone and the recovery codes. That login's sessions end; it signs in with its password and can set two-factor up again.

You cannot add or change logins of your own org here; your provider does that. Your own password, two-factor sign-in and API tokens are on Your account (customer.md sections 1 and 9). Your provider may require two-factor sign-in for reseller logins.

7. Usage and quotas

Usage shows your own quota use and, under Customer accounts against their limits, every account below you: websites, databases, domains and memory in use, with accounts at or near a limit (80 % or more) listed first. The dashboard shows the same summary. Memory is read on the panel's own hosting node only.

8. Billing

Billing works when the provider's panel bills through the panel; statements need hourly metering, which the operator switches on (the page warns "Usage is not being metered" otherwise). The panel rates usage and produces monthly statements; it does not take payments or add tax. Your billing system (WHMCS or similar) invoices.

Plans for your customers

Billing > Plans lists the plans you own; Create a plan: - Name, Currency (ISO 4217, for example IDR). - Base price / month per billed organization, Per customer account / month. - Package base prices: optional price per account on each package, instead of the account price. - Rates: one line per node selector, then the monthly price per website, per database and per GiB of disk, for example default 50000 20000 1000 or node=web-1 60000 20000 1000. Selectors: node=NAME, region=, physical_region=, zone=, cell=, or default. The line naming the node wins, then the first matching label line, then default. - Create plan. Open a plan to change it (Save plan) or delete it (only when no org is billed by it).

A plan bills the organizations directly below you. Prices are per month and charged for the hours metered. Websites count while active or suspended; disk is the disk quota allocated to each website, not measured use.

Assign a plan

Open the customer's (or sub-reseller's) billing page: from Billing, click its name, or go to its org and then /orgs/{id}/billing. Choose Plan and Set plan (or Not billed). The change applies from the next metered hour; that month's statement shows both plans.

Statements and exports

On Billing, What you bill for month lists each billed org with status (Estimate or Closed), metered hours and amount; Lines opens a statement. Choose the month with the period links at the top. - Close month: possible once the month has ended (UTC). Tick "I understand closed statements are final", then Close. Closing rates every estimate with the plans as they are now and stores it; it never changes afterwards. - Exports: CSV and JSON links for the month, or GET /v1/orgs/{id}/billing/issued?period=YYYY-MM with an API token.

What you are billed for shows your own statement from your provider and your margin (what you bill minus what you are billed).

9. Audit log, alerts and webhooks

  • Audit log: every change and refused request in your org and below, newest first, with a hash-chain check.
  • Alerts: alerts on the websites, databases and accounts below you; you can acknowledge and resolve them. Rules are set by the platform administrator.
  • Webhooks: an endpoint on your org receives events of your org and everything below it (customer.md section 10).

10. Not available yet (PLANNED)

Signing in as a customer ("impersonation": not implemented, and no role holds a permission for it), email, a WHMCS module, taxes and payments, hard disk and inode quota enforcement on the current nodes (soft enforcement: see "Limits on forms" above).