> For the complete documentation index, see [llms.txt](https://docs.bugbase.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bugbase.ai/company-guide/vpn-servers/create-configure-and-deploy-vpn-server.md).

# Create, Configure and Deploy VPN server

## Pre-requisites

* Have a Company Account on BugBase

## Creating & Configuring a VPN Server

To create and configure a VPN server:

1. Login to your company dashboard.
2. Navigate to the **Assets** Page via the sidebar, then choose the **VPN** tab.
3. Click on "**Create VPN.**"<br>

   <figure><img src="/files/3LG3cCWB701ioqeLX8sp" alt=""><figcaption><p>VPN Dashboard</p></figcaption></figure>
4. Configure your VPN server by adding the following details:

   1. **Server name:** Assign a descriptive name to your VPN server.
   2. **Set rate limit:** Establish a rate limit for your VPN server to ensure optimal performance and prevent overuse. Add the rate limit in ***requests per minute.*** This helps in managing the server load effectively and ensures a stable connection for all authorised users.
   3. **VPN Server Location:** Select the countries from which you would like your bug hunters to have access.
   4. **Domains:** Choose all your sensitive domains. You can include an active time range for testing this domain and also add blacklist routes.

   <figure><img src="/files/v0CTVAOZf8u4Umi0xo1V" alt=""><figcaption><p>Create VPN server</p></figcaption></figure>

   \
   **Adding domains to VPN server**

   **( You can add multiple targets to a VPN server )**

   1. **Select an asset,** ***or*** **enter a custom URL:** For each target you can either pick one of your company assets from the dropdown, **or** type a **custom URL / host / IP** in the *"Or whitelist a custom URL"* field. A custom target can be a bare host (`app.example.com`), an IP (`10.0.0.5`), or a `host:port` (`app.example.com:8443`) — paths and non‑standard ports are supported.\
      \&#xNAN;*<mark style="color:green;">**Tip:**</mark>* Only the **host (and port)** is used for whitelisting — the VPN routes traffic to that host, so a full URL like `https://portal.example.com:444/app` is accepted and reduced to `portal.example.com:444`. [Click here to learn how to add assets.](/company-guide/assets-dashboard.md)
   2. **Active Time Range:** Specify an active time range when you want the bug hunters to access the target on a daily basis. The hours selected will default to the UTC timezone.
   3. **Add Blacklist Routes:** You can blacklist API routes that you do not want bug hunters to access, even through the VPN.<br>

   <figure><img src="/files/aHpHwOndTbt29tw0vdLr" alt=""><figcaption><p>Add Assets to VPN</p></figcaption></figure>

Once you have added all the details, click on **"Create VPN Server"** to create the server.

{% hint style="info" %}
Now, you have successfully configured your VPN Server. It's time to deploy the server. :tada::tada:
{% endhint %}

## Deploying the VPN server

1. Click on **"Deploy Server"** to deploy the server.\
   \&#xNAN;*<mark style="color:red;">NOTE:</mark>* <mark style="color:red;">Deployment might take 1-2 minutes. DO NOT CLOSE THE PAGE.</mark>
2. Once the server status changes to "<mark style="color:green;">**running**</mark>," your VPN server is ready for use.

<figure><img src="/files/n9DuXc9OEA7g68p1aMdJ" alt=""><figcaption><p>Deploy server</p></figcaption></figure>

## Whitelist the VPN's public IP

If your targets sit behind a firewall or IP allow‑list, allow the VPN server's **public IP** so traffic from bug hunters (which egresses through the VPN) can reach them.

1. On the VPN page, copy the **IP Address** shown for the server — this is the VPN's **public IP**.
2. Add that IP to your target's firewall / WAF allow‑list.

{% hint style="info" %}
All traffic from a connected bug hunter to your whitelisted targets leaves the VPN from this single public IP, so allow‑listing it is all that's needed. Only the targets you added are reachable through the VPN — everything else is blocked.
{% endhint %}

## Test the VPN yourself (sanity check)

Before exposing the VPN to bug hunters, you can generate your **own** connection profile to verify it works end‑to‑end.

1. On a **running** VPN server, click **"Download My Config"**.
2. Import the downloaded `.ovpn` file into any OpenVPN client and connect.
3. Confirm you can reach your whitelisted target(s) while connected — and that other destinations are blocked.

## Make the VPN visible to bug hunters

VPN servers are **hidden from bug hunters by default**. When you're satisfied with the configuration, expose it using the **"Visible to researchers"** toggle on the VPN page.

* **Off (default):** No bug hunter can see, download, or use the VPN — even on programs whose in‑scope assets it covers.
* **On:** Bug hunters who are accepted members of your program (and not blacklisted) can download the config and connect.

{% hint style="info" %}
Turning the toggle **off** at any time immediately revokes bug hunter visibility and access across every VPN endpoint.
{% endhint %}

## Updating the configuration

1. To update the configuration of the VPN server, simply update the values and click on\
   \&#xNAN;**"Re-deploy Server".**

<figure><img src="/files/QJ4dcLE2iT0YPapN1PxI" alt=""><figcaption><p>Re-deploy server</p></figcaption></figure>

## Stopping the server

1. When your server status is "<mark style="color:green;">**running**</mark>," click on the **"Stop Server"** button to stop the server.

<figure><img src="/files/1hiQ5fOVuw6Mvs6nLGCC" alt=""><figcaption><p>Stopped VPN server</p></figcaption></figure>
