PUQ Mautic

Mikrotik WireGuard VPN WHMCS module

WHMCS server provisioning module for automated WireGuard VPN deployment on Mikrotik routers. Supports full lifecycle management, bandwidth shaping, atomic traffic statistics, post-paid metric billing, QR code configuration, human-readable traffic metrics, and multilingual client/admin interfaces.

Description

Mikrotik WireGuard VPN module WHMCS

Order now | Download | Community

PUQ Mikrotik WireGuard VPN — WHMCS Server Module

PUQ Mikrotik WireGuard VPN is a WHMCS server provisioning module for automated deployment of WireGuard VPN accounts on Mikrotik routers. The module communicates with Mikrotik via REST API and provides full lifecycle management of VPN services including creation, suspension, unsuspension, termination, and package changes.


Key Features


Available Options in the Admin Panel


Available Options in the Client Panel


System requirements

Requirement Minimum
WHMCS 8.x+, 9.x+
PHP 7.4, 8.1, 8.2, 8.3, 8.4
ionCube Loader v15+
Mikrotik RouterOS 7.x+

Important Notes



Screenshots

Client area — Overview

Client area overview client-area-overview.png

Client area — Traffic statistics

Traffic statistics traffic-statistics.png

Client area — Usage metrics

Usage metrics client-area-metrics.png

Admin area — Product information

Admin area product information admin-product-info.png

Changelog

Mikrotik WireGuard VPN module WHMCS

Order now | Download | Community

v4.1.0 — 2026-09-30


v4.0.0 — 2026-09-22


v3.2.1 — 2026-06-02


v3.2 — 2026-04-21


v3.1 — 2026-02-26

New Features


v3.0 — 2026-02-02

Changes

Warning: Product reconfiguration is required after update from v2.x.


v2.0 — 2024-09-23

Changes


v1.3 — 2024-07-29

New Features


v1.2 — 2024-06-17

New Features

Improvements


v1.1 — 2023-12-15

New Features

Improvements


v1.0 — 2023-10-09

First release.

Features

Installation and Configuration Guide

Step-by-step instructions for installing the module, preparing the Mikrotik router, and configuring WHMCS products and servers.

Installation and Configuration Guide

Setup Guide: Mikrotik Preparation and Configuration

Mikrotik WireGuard VPN module WHMCS

Order now | Download | Community

Prerequisites

Important: Enter the following commands one by one and wait for each command to complete before proceeding to the next.


Step I. Check RouterOS Version

Verify that your router is running RouterOS 7 or higher:

system/package/print

Step II. Create Root Certificate Authority

Create a local CA certificate for SSL:

/certificate add name=LocalCA common-name=LocalCA key-usage=key-cert-sign,crl-sign

Step III. Sign the CA Certificate

/certificate sign LocalCA

Step IV. Create Webfig Certificate

Replace XXX.XXX.XXX.XXX with the router's public IP address:

/certificate add name=Webfig common-name=XXX.XXX.XXX.XXX

Step V. Sign the Webfig Certificate

/certificate sign Webfig ca=LocalCA

Step VI. Enable SSL for the Web Interface

/ip service set www-ssl certificate=Webfig disabled=no

Step VII. Enable API-SSL

/ip service set api-ssl certificate=Webfig disabled=no

Step VIII. WireGuard VPN Server Setup

Create and enable the WireGuard VPN server interface through the RouterOS interface.

You can do this via Winbox or WebFig:

  1. Navigate to WireGuard section
  2. Click Add New (+)
  3. Set the interface name (e.g., wireguard1)
  4. Set the Listen Port (e.g., 13231)
  5. Enable the interface

Mikrotik WireGuard server setup mikrotik-wireguard-setup.png


Step IX. Configure Firewall, NAT and Routing

Important: Please be aware that to ensure proper functionality of VPN connections, it is essential for you, as an administrator, to correctly configure the Mikrotik router. This entails configuring NAT, Firewall, routing, and all the required settings for VPN to operate correctly.

Example NAT masquerade rule (adjust to your network):

/ip firewall nat add chain=srcnat out-interface=ether1 action=masquerade

Example firewall rule to allow WireGuard traffic:

/ip firewall filter add chain=input protocol=udp dst-port=13231 action=accept comment="Allow WireGuard"

Next Steps

After completing the Mikrotik preparation, proceed to Add server (router Mikrotik) in WHMCS.

Installation and Configuration Guide

WHMCS Installation and Update

Mikrotik WireGuard VPN module WHMCS

Order now | Download | Community

System requirements

Requirement Minimum
WHMCS 8.x+, 9.x+.
PHP 7.4, 8.1, 8.2, 8.3, 8.4
ionCube Loader v15+
Mikrotik RouterOS 7.x+

Note: The module uses ionCube encoding. Make sure ionCube Loader is installed and active on your server.

Installation

Note: The module now uses ionCube 15, which provides universal out-of-the-box support for all encodings.

All versions can be found at this link: https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Mikrotik-WireGuard-VPN/

Older module versions for WHMCS 8 are available in the archive directory: https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Mikrotik-WireGuard-VPN/archive/

  1. Download the latest version from the PUQ download page:

    wget https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Mikrotik-WireGuard-VPN/PUQ_WHMCS-Mikrotik-WireGuard-VPN-latest.zip
    
  2. Unzip the archive:

    unzip PUQ_WHMCS-Mikrotik-WireGuard-VPN-latest.zip
    
  3. Copy the puqMikrotikWireGuardVPN directory into your WHMCS installation under modules/servers/:

    cp -r puqMikrotikWireGuardVPN /path/to/whmcs/modules/servers/
    

    The resulting directory structure should look like:

    modules/
      servers/
        puqMikrotikWireGuardVPN/
          puqMikrotikWireGuardVPN.php
          hooks.php
          lib/
          templates/
          lang/
          ...
    

Update

The update process is identical to the installation:

  1. Download the latest archive from the download page:

    wget https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Mikrotik-WireGuard-VPN/PUQ_WHMCS-Mikrotik-WireGuard-VPN-latest.zip
    
  2. Unzip the archive:

    unzip -o PUQ_WHMCS-Mikrotik-WireGuard-VPN-latest.zip
    
  3. Replace the existing puqMikrotikWireGuardVPN directory in your WHMCS installation:

    cp -r puqMikrotikWireGuardVPN /path/to/whmcs/modules/servers/
    

Warning: When updating from v2.x to v3.x+, product reconfiguration is required due to the new settings storage format.

Installation and Configuration Guide

Product Configuration

Mikrotik WireGuard VPN module WHMCS

Order now | Download | Community

Add new product to WHMCS

  1. Log in to your WHMCS Admin Area.
  2. Navigate to System Settings → Products/Services → Create a New Product.
  3. Fill in the product details (name, description, pricing).
  4. Go to the Module Settings tab.
  5. Select PUQ Mikrotik WireGuard VPN from the Module Name dropdown.
  6. Enter your License key in the corresponding field.
  7. Configure the remaining module parameters.
  8. Click Save Changes.

Product Configuration product-configuration.png

Configuration parameters

Parameter Description Default
License key Pre-purchased license key for the module.
WireGuard Interface Name of the WireGuard interface on the Mikrotik router (must be pre-created) wg1
Comment prefix Prefix added to VPN peer and queue comments on Mikrotik whmcs
Upload (Mbs/s) Upload bandwidth speed limit in Mbps 5
Download (Mbs/s) Download bandwidth speed limit in Mbps 5
Allowed IPs IP ranges allowed to route through the VPN tunnel 0.0.0.0/0, ::/0
DNS Servers DNS servers to use when connected to VPN (comma-separated) 8.8.8.8, 1.1.1.1
Persistent Keepalive Interval for sending keepalive packets (seconds) 25 seconds
Disable statistics collection When enabled, traffic statistics will not be collected and the statistics page will be hidden from the client area Unchecked
Save history (days) Number of days to keep usage statistics in WHMCS (minimum 32 days) 32
Link to instruction URL to setup instructions (displayed in client area as "User manual" button) Empty
Custom HTML Custom HTML content for WireGuard protocol (displayed in client area) Empty

Allowed IPs examples:

Recommended: Set "Link to instruction" to https://www.wireguard.com/install/ — the official WireGuard client downloads page.

Mikrotik & Bandwidth product-config-mikrotik-bandwidth.png

WireGuard Configuration product-config-wireguard.png

History product-config-history.png

Client Area product-config-client-area.png

Metric Billing

The module supports usage-based billing through WHMCS Metric Billing. Two metrics are available:

To enable metric billing, go to the product's Metric Billing section and toggle the desired metrics ON, then click Configure Pricing to set the per-GB price.

Metric Billing metric-billing.png

Configure Pricing (Download) metric-billing-download.png

Configure Pricing (Upload) metric-billing-upload.png

Installation and Configuration Guide

Add Server (Router Mikrotik) in WHMCS

Mikrotik WireGuard VPN module WHMCS

Order now | Download | Community

Navigate to System Settings > Servers > Add New Server in WHMCS admin area.


Step 1: Name and Hostname


Step 2: Assigned IP Addresses

In the Assigned IP Addresses field, enter a list of IP addresses that will be issued to VPN clients — one IP per line.

These IPs will be assigned to WireGuard peers as their tunnel addresses. The module automatically allocates the first available (unused) IP from this pool for each new service.

WHMCS Server - Assigned IP Addresses whmcs-server-ips.png


Step 3: Server Details

  1. Select the "PUQ Mikrotik WireGuard VPN" module from the Module dropdown
  2. Enter the correct username and password for the Mikrotik router
  3. Set the port (default: 443 for HTTPS REST API)
  4. Check the Secure checkbox if using HTTPS (recommended)

WHMCS Server Details whmcs-server-details.png


Step 4: Test Connection

Click the "Test Connection" button to verify that WHMCS can communicate with the Mikrotik router via REST API.

A successful connection will confirm that:


Next Steps

After adding the server, proceed to Product Configuration in WHMCS.

Admin Area

The administrator interface for managing WireGuard VPN service instances.

Admin Area

Product Information

Mikrotik WireGuard VPN module WHMCS

Order now | Download | Community

The admin service management page provides a comprehensive view of each VPN service instance.

Admin area - Product information admin-product-info.png


License Verification

Displays the license status for the product. If the license is invalid or expired, an error message is shown.


API Connection Status

Shows whether WHMCS can successfully communicate with the Mikrotik router:


Peer Status

Indicates whether the WireGuard peer exists on the Mikrotik router and its current state:


Peer Info

A table displaying detailed peer information:

Field Description
publicKey The client's WireGuard public key
Endpoint The client's current IP address and port (N/A if not connected)
Latest handshake Timestamp of the last successful WireGuard handshake (N/A if never connected)
Transfer RX Total data received by the peer
Transfer TX Total data sent by the peer

Config

Displays the WireGuard client configuration in two formats:


Admin Actions

The following management actions are available:

Action Description
Create Generate WireGuard keys, allocate IP, create peer and bandwidth queue on Mikrotik
Suspend Disable the WireGuard peer on Mikrotik
Unsuspend Re-enable the WireGuard peer on Mikrotik
Terminate Delete the peer and queue from Mikrotik, clear service data
Change Package Update the peer's WireGuard interface and recreate the bandwidth queue with new limits
Reset VPN Interface Temporarily disable and re-enable the peer to reset a frozen connection

Client Area

The client-facing interface for managing WireGuard VPN services.

Client Area

Home Screen

Mikrotik WireGuard VPN module WHMCS

Order now | Download | Community

Customers accessing their VPN service panel can view and manage their WireGuard VPN connection.


Overview and Sidebar

The sidebar navigation provides access to:

Client area - Sidebar client-area-sidebar.png


Action Buttons

At the top of the main page, the following buttons are displayed:


Network Configuration

Displays the VPN service status and settings:


Connection Status

Real-time information about the VPN connection:

WireGuard Configuration

Provides the client with everything needed to configure their WireGuard client:

The configuration includes:

[Interface]
Address = <client VPN IP>
DNS = <configured DNS servers>
PrivateKey = <client private key>

[Peer]
PersistentKeepalive = <configured keepalive>
Endpoint = <server hostname>:<WireGuard listen port>
PublicKey = <server public key>
AllowedIPs = <configured allowed IPs>

Client area - Overview client-area-overview.png


Traffic Statistics

When traffic statistics collection is enabled (default), a Traffic statistics link appears in the sidebar navigation.

The statistics page displays two charts powered by Google Charts:

Traffic statistics traffic-statistics.png

Note: Traffic statistics can be disabled per product in the admin settings (History > Disable statistics collection). When disabled, the sidebar link and statistics page are hidden.


Usage Metrics (Metric Billing)

When WHMCS Usage-based Metric Billing is enabled for the product, clients can navigate to the Metrics tab alongside Manage in their service view:

Client area - Metrics client-area-metrics.png