Guided Setup for WLVPN

Written By Marissa Fegan (Super Administrator)

Updated at February 14th, 2023

Thank you for signing up as a WLVPN partner. We look forward to working with you in a long and prosperous relationship. 

This guide will help answer the most common questions you might have about getting started with WLVPN and developing your VPN apps.

Throughout this document, we will be making reference to some data that is specific to you (e.g., API keys), which should have been sent to you separately. Please get in touch with your account manager or email support@wlvpn.com if you do not have these.

Now, let's get started!

1. Your Reseller Account

Your Reseller Account

Once we have created your reseller account, we will send you a username and password to access your dashboard at: https://app.wlvpn.com/login.


You may change your password at any time from the My Account page. Note that this username and password is only used for dashboard access.

Dashboard and User Accounts

Within your dashboard you can create and manage users. By default there are three groups of users available - Unlimited, Demo and Custom. These groups are identical in terms of user capabilities. However, they behave differently for billing purposes. 

Unlimited group: Unless we advise you otherwise because of special terms in your contract, the Unlimited group should be used for your standard paid users. 

Demo group: Internal test or demo users should be created in the Demo group. Typically up to 100 Demo accounts may be active at one time without incurring further costs (unless your contract states otherwise). It is recommended to use these accounts for development and testing and close them when they are no longer needed

Custom group: If you offer a free trial, you should create trial users in the Custom group. If the trial user goes on to pay for a full account, you must move them immediately to the Unlimited group. You will not be billed for users in the Custom group, but it is important that trial users are suspended or closed if they do not convert to paid at the end of their trial. Users can also be created with a predetermined 'close date' that will close unconverted users automatically at the end of the trial (typically 3 days, but may vary depending on your contract).

Groups can be renamed from your dashboard. For example, you may want to rename the Custom group as Trial. Other groups can be created by agreement, either to make management easier or to reflect special terms in your contract.

Users can also be created, moved and closed via your Reseller API. Once you are up and running this is likely to be the standard way of creating and managing users.

Billing Page

This page will let you see the bandwidth usage for all users during a configurable period of time and which billing bucket that they fall into (this will vary according to your contract). This can also be exported in CSV format, and can be used to predict or check the value of invoices submitted to you.


 

2. Reseller v2 API

 
 

Click the arrow to go back to the previous topic.

2. Reseller v2 API

Reseller v2 API

The Reseller API (also known as the v2 API) is primarily used to create and manag...

The Reseller API (also known as the v2 API) is primarily used to create and manage users. You will most likely use this to integrate with your own web signup pages and billing systems.

Full documentation for the API can be found at https://docs.wlvpn.com/.

This interface allows you to create, suspend or close user accounts or to change their settings. You can also use it to get information about available servers and usage data. To access the v2 API you will need your Reseller (v2) API key which will have been securely sent to you shortly after signing up.

Here is an example of a call to the Reseller API using curl:

curl -u api-key:<reseller API key> https://api.wlvpn.com/v2/customers



 

 

3. Develop Branded Applications

 

 

Click the arrow to go back to the previous topic.

3. Develop Branded Applications

Develop Branded Applications

To create apps for Windows, macOS, iOS and Android you will need the SDK for each...

To create apps for Windows, macOS, iOS and Android you will need the SDK for each platform.

For Windows we will send you a MyGet invitation to the cloud-based package repository. Once registered, you will automatically receive updates to this SDK.

For Android we will send you a PackageCloud token that you need to enter in your project to fetch the SDK. Once registered, you will automatically receive updates to this SDK.

For Apple platforms we will send you a link to the latest SDK kit (in Zip format) and will notify you when updates are available.

To use the SDKs, you will need the following, which we will send to you after your account is created:

  • Your Auth Suffix: this is a single string unique to your account. This may also be referred to in some documentation as your Company Name.
  • Your Client (v3) API key (not to be confused with your Reseller API - see above).

Instructions for how to retrieve each SDK (including invitations to cloud-based package repositories), will be sent to your nominated technical contact by email. Updates to the SDKs will be communicated in the same way. 

Sample Apps

We have a set of sample apps known as ConsumerVPN which you can adapt to your own needs, or use to learn about the SDK integration. The repositories and documentation for these can be found at https://github.com/wlvpn. We strongly recommend that you read all the documentation available here before starting your development.

Support

Should you need help with setting up your account, developing the apps or need to escalate a technical issue, you can email WLVPN Support via support@wlvpn.com. This will automatically create a ticket in our system and any responses will be sent back automatically to your original sending address.

 

 

4. Miscellaneous Settings

 

 

Click the arrow to go back to the previous topic.

4. Miscellaneous Settings

Miscellaneous Settings

If you wish to connect to a WLVPN server from other devices, such as a router, ga...

If you wish to connect to a WLVPN server from other devices, such as a router, games console or Linux device, you can configure a connection using OpenVPN. This will also work for manual connections from a PC or mobile device that supports OpenVPN.

An example OpenVPN config file is shown below. You will need to edit it for connection to a specific server and repeat this process to create multiple config files (with the extension .ovpn) for all the servers you might want to connect to. Then copy the files into your OpenVPN config folder together with the OpenVPN root certificate. Please contact support@wlvpn.com to request the root certificate.

client
dev tun
proto udp

# replace <server URL> in the line below with the
# URL of the server you want to connect to
remote <server URL> 443

resolv-retry infinite
nobind
persist-key
persist-tun
persist-remote-ip
ca vpn_api_ca_app.crt

# replace <server URL> in the line below with the
# URL of the server you want to connect to
verify-x509-name <server URL> name

auth-user-pass
comp-lzo
verb 3
auth SHA256
cipher AES-256-CBC
keysize 256
tls-cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-DSS-WITH-AES-256-CBC-SHA:TLS-RSA-WITH-AES-256-CBC-SHA

To get a list of server URLs you can query the Reseller (v2) API. Here is an example:

curl -u api-key:<reseller API key> https://api.wlvpn.com/v2/servers

This will return all servers that are currently active and available to your users.

Note that servers are added and removed over time so we'd recommend you write some simple code to enumerate the servers from the API and build the config files.

In the example of connecting from a Windows PC, when you connect using the config file you will see the standard OpenVPN login dialog:


The user should login with their full credentials: username@auth-suffix and their password.

To avoid a password prompt, it may be possible (depending on the OpenVPN client used) to save the user credentials in a separate file. For example, some implementations allow you to add this line to your openvpn clients config file:

auth-user-pass login.conf

This will read a file named login.conf (full path may be needed) where the username and password have been listed on separate lines, like this:

username@auth-suffix
password






 

5. Troubleshooting

 

 

Click the arrow to go back to the previous topic.

5. Troubleshooting WLVPN

Troubleshooting WLVPN

...

Let's walk through some common troubleshooting steps.

Login Issues

Check that all the authentication credentials have been added correctly.

Depending on which platform SDK you are using, you will need some or all of the following SDK keys, which will have been provided by your account manager. If you are basing your app on our ConsumerVPN example app, these credentials will need to be added to the relevant config file for the SDK.

  1. account_name - name of the account
  2. auth_suffix - account suffix, normally used for VPN authentication (if no auth_suffix was provided, use account_name) 
  3. api_key - unique key that grants access to your specific account
  4. ip_geo_url - URL for the IPGeo endpoint associated with the account

To authenticate a user, the full username takes the form username@auth_suffix. 

Connection Issues

While testing your app you might be unable to establish a connection between the app and a VPN. This could be because a network device (e.g, firewall, NAT, router, etc) on your network is not configured to allow VPN connections or there might be issues with DNS resolution. Please contact your network administrator or your service provider to determine what may be causing the problem.

Other Issues

If you experience other issues, please contact support@wlvpn.com and our team will make suggestions about further troubleshooting. 

 

6. Frequently Asked Questions

 

 

Click the arrow to go back to the previous topic.

6. WLVPN FAQ

WLVPN FAQ

How do I create users? After you login to your dashboard the option to “Add a new...

How do I create users?

After you login to your dashboard the option to “Add a new user” is the first option you see. For test purposes we recommend you create test users under the Demo account group. You will not be charged for the first 100 Demo accounts you create (unless your contract states otherwise). 

The process of creating users can be automated using the Reseller API. You would use this when offering signup for customers using your website or in-app purchase. Although you can use an email address as a username, you may prefer to use a random string or some string that is generated by your signup processes so as not to contain personal information. 

Remember, once the user is created, for the app to login you will need to call the Client API using credentials in the form username@auth_suffix, where username is the name as entered in the Dashboard and auth_suffix is specific to you and was provided when you signed up. 

For example, pdb1001@yourcompany. The password would be the same as entered into the Dashboard.

How do I close test users?

We also recommend regular housekeeping to close demo or test accounts that you are no longer using, to avoid being charged. To do this, click on the user in your dashboard and set the status to Closed. Again, this can also be achieved through the Reseller API.

Can I offer a free trial?

If your contract allows for it, you can create free trial users, created in the Custom account group. The contract will specify the maximum duration of a trial. If the trial period expires without the user entering a trial subscription, you should close or suspend the user via the Dashboard or the Reseller API to avoid charges. If a user converts from trial to paid, you should move them into the Unlimited account group.

Can I throttle or otherwise limit a user’s usage?

You can use the Reseller API to check on a user’s usage and then impose a bandwidth limit on that user (in bytes/sec). This will limit that user’s connection to that speed until you remove the limitation. Note that this method does not currently work with the WireGuard protocol.

Alternatively, you can temporarily suspend a user’s account and re-open it after a period of your choice.

Can I offer credential-less login?

If you allow in-app signup then you could use the API to create a user account that does not require the user to ever enter or know their username or password. Such an account would be tied to that device only using a device specific ID or a UUID that you create and store within the local keychain together with a generated password. Bear in mind, however, that such credentials could be lost if the app has to be re-installed or added to a different device.

What protocols are supported?

VPN protocols supported by our SDKs are WireGuard, OpenVPN and IKEv2.

What are the current SDK versions?

The current versions of our SDKs can be found in the documentation for our sample ConsumerVPN apps. Please see: 

If you are currently using earlier SDK versions than documented there, we recommend upgrading your apps to use these latest versions. Please contact support@wlvpn.com to ask for access to the latest versions.

Is there support for developing a browser extension?

We do not currently have any SDK or sample code for browser extensions.

Is there an SDK for Linux?

We do not currently provide a Linux SDK.


 

You have successfully set up WLVPN.