Sell and manage hosting plans and domains inside Perfex. Clients order online at /hosting, you manage services in admin, send invoices, and check domain availability via INWX API. Credentials (FTP, server logins) are stored AES-encrypted in the database.
What you get
- Public hosting shop at
/hostingwith plan comparison - Domain availability checker (INWX API integration)
- Plan management with pricing, billing cycles, features
- Service management per client — status, due dates, invoicing
- AES-encrypted server credentials storage
- Client portal — clients see their services and domains
- Cron integration for renewal reminders
- Fully customizable colors and header/footer links
Setup in 5 steps
- Install and activate module
- Go to Hosting Manager → Settings → enter INWX credentials (or skip if no domain API needed)
- Create hosting plans under Plans
- Public shop is immediately live at
/hosting - Orders land in admin → create service manually → fill credentials
🔑 Licensing — what the buyer must do
1
Purchase → receive license key via email.
2
Perfex admin → Hosting Manager → Settings → paste key in License panel → click Activate.
3
One key = one domain. License is validated against your Perfex installation domain automatically.
Technical notes
- INWX API: set mode to
otefor testing,livefor production - Credentials encrypted with
CHM_ENCRYPTION_KEYderived from your Perfex APP_KEY - Domain checker also works as public AJAX endpoint
/chm/domain_check - All DB tables prefixed with your Perfex DB prefix — no conflicts
- Service data preserved on deactivation — safe to deactivate/reactivate
Server requirements
- Perfex CRM 3.0 or higher
- PHP 8.0 or higher
- MySQL 5.7+ / MariaDB 10.3+
application/config/my_routes.phpwritable (chmod 664)- Outgoing HTTPS connections to
licenses.perfexmodule.com
If something doesn't work
- Routes 404? → Check
my_routes.phppermissions - Language error? → Copy lang file to
application/language/ - License won't activate? → Check outgoing HTTPS
- License valid but expired? → 7-day grace period. Reconnect to internet and reload.
- Still stuck? → Email support with your domain and order number