FEATURES

PLANS

wolfXcore offers two subscription tiers. Users purchase a plan via M-Pesa and gain access to the corresponding server allocation limits.

Plan comparison

Feature LIMITED KES 50 UNLIMITED KES 100
Monthly priceKES 50KES 100
Server slotsLimited quotaNo hard limit
Resource capsEnforced per serverConfigurable by admin
File manager
Console access
Scheduled tasks
Database management
Priority support

How plans are stored

Plan assignments are stored on the user record in the database. The billing webhook updates the user's plan field after a successful M-Pesa payment is confirmed by Paystack.

Database column (users table)
plan   -- enum: 'none', 'limited', 'unlimited'
plan_expires_at   -- timestamp: when the current plan expires

Plan enforcement

When a user attempts to create a server, the panel checks their current plan and whether it has expired. Actions are blocked at the controller level if the plan does not permit the requested action.

ℹ️
Expired plans. When a plan expires, the user is downgraded to none and cannot create new servers or use plan-gated features. Existing servers remain accessible but may have reduced functionality until renewal.

Purchasing a plan

  1. Log into the panel and navigate to Billing (/billing).
  2. Select either the LIMITED or UNLIMITED plan.
  3. Enter your Safaricom M-Pesa phone number in 07XXXXXXXXX format.
  4. Click Pay Now — an STK push is sent to your phone.
  5. Approve the payment prompt on your phone using your M-Pesa PIN.
  6. The overlay will update to Success and your plan activates immediately.
⚠️
Do not close the browser during payment. The STK push overlay polls for confirmation. If you navigate away before the webhook is received, the plan may not activate automatically. Check billing status if this happens and contact support.

Admin — manual plan assignment

Admins can manually assign or adjust a user's plan from the admin user editor, or directly in the database:

SQL
UPDATE users
SET plan = 'unlimited',
    plan_expires_at = DATE_ADD(NOW(), INTERVAL 30 DAY)
WHERE email = 'user@example.com';

Changing plan prices

Plan prices are defined in the billing controller (app/Http/Controllers/BillingController.php). To change a price:

  1. Open app/Http/Controllers/BillingController.php.
  2. Locate the $plans array and update the amount values (in KES).
  3. Update the corresponding text in the billing view if needed.
  4. Deploy the change and rebuild the frontend.