Outline VPN: How to install it on your server (Tutorial)

An image of the Jigsaw/Outline VPN logo.

Outline VPN is a new open source VPN that promises an incredibly easy-to-install VPN experience—far easier than existing options, like OpenVPN.

That’s great news, as setting up a virtual private network (VPN) on a personal server has never been particularly easy.

In fact, our tutorial on installing OpenVPN is one of our most-read tutorials….

…but keyservers and a dozen configuration files can flummox even experienced sysadmins.

Streisand is much more straightforward to install but forces you to dedicate your entire server to its VPN software—not great for flexibility or getting more value from your existing server.

Outline VPN—created by Jigsaw—is trying to do things a little differently.

What’s different about Outline VPN?

Via Outline, Jigsaw is trying to make VPNs not only secure, but also incredibly easy to set up—especially for those who don’t happen to be sysadmins. The target demographic for the Outline VPN is journalists and news organizations, but anyone can take advantage of their hard work.

Here’s what Jigsaw has to say about their goals:

Journalists need safe access to information to research issues, communicate with sources, and report the news. Outline makes it easy for news organizations to set up a virtual private network (VPN) on their own server. This gives news organizations the power to provide anyone in their organization safer access to the internet and keep their communications private.

An Outline VPN server is incredibly easy to set up

Thanks to 3 simple facts, it’s super-easy to install Outline VPN on your server:

  • It uses Docker containers.
  • It uses a single command for installation.
  • It can be installed concurrently with other apps, web servers, and more.

Sadly, the official Outline VPN documentation implies that you have to use a server from one of our competitors (I won’t deign to mention them here), but the truth is that Outline can, and will, run anywhere…

So, here’s a tutorial for the rest of us on how to install Outline with Docker:

Prerequisites

  • A VPS running any of our OS options
  • A working Docker installation
  • A non-root, sudo-enabled user
  • A local computer running Windows or Linux

Cyber Monday Deals are still going!

Score a 24GB Performance VPS with 240GB of SSD storage for just $99/year!

Get the Cyber Monday deals now!⚡

Step 1. Install Docker (if not installed already)

The Outline + Docker combination is what makes this VPN solution so easy to install. So, if you don’t have Docker installed on your server yet, take a moment to perform this one-command installation:

$ sudo curl -sS https://get.docker.com/ | sh

The script will update your system as needed, add the appropriate Docker repositories, and install the correct Docker packages. You may then need to start the Docker service.

$ sudo systemctl start docker
$ sudo systemctl enable docker

Finally, verify that the Docker service is running:

$ sudo sudo systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/docker.service.d
           └─firewalld.conf
   Active: active (running) since Mon 2018-03-26 14:36:26 EDT; 4s ago
     Docs: https://docs.docker.com
 Main PID: 31232 (dockerd)

Step 2. Installing the Outline VPN server

With Docker installed, you can run the Outline server installation script:

$ sudo wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh | bash

You will see lots of output from the script: first, it checks for the necessary programs (Docker), creates secret keys, and then downloads and starts two Docker containers: a shadowbox server and a watchtower server to update shadowbox as needed.

When the Outline VPN server installation script finishes, you’ll see some output similar to the following:

{
  "apiUrl": "https://123.456.78.9:12345/xxxxxxxxxxxxxxxxxxxxxxx",
  "certSha256": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

Keep that information safe, as you’ll need it in the next step. For now, rejoice: You have successfully installed a VPN server!

Step 3. Using Outline Manager to set up your VPN

Jigsaw has created a desktop app called Outline Manager to help users configure their Outline VPN servers.

You can install Manager on your local machine (where you’re reading this now, not where you just ran the above scripts), but, unfortunately, it’s currently only available for Windows and Linux. OS X users will have to wait patiently or find a different machine.

Download the appropriate version for you.

Once you open the Outline Manager app, scroll down to Set up Outline anywhere and click on the Get started button.

You’ll see two steps to follow. You’ve already done the first one, and for the second step, all you need to do is copy the bracketed text from Step 3 into the field and click Done.

Tip: If you are running a firewall on your server, you will need to open TCP ports between 1024 and 65535. With any luck, Outline will be updated in the future to accept a user-specified range of ports.

Once you’re connected, you will see that you already have a key called My access key.

Click on the Get connected button, which will give you a walkthrough on how to install and configure the appropriate VPN client for your platform.

Currently, the only official Outline clients are for Windows, Android, and Chrome OS, but Outline Manager will help walk you through both OS X and Linux clients as well. They require more manual configuration but are not particularly complicated.

Once you’ve finished connecting to the VPN, you can visit a website that shows you your IP and, hopefully, find that it matches the IP of your VPS. If so, congratulations again—you’re browsing the web through your very own VPN!

Step 4. Getting more from Outline

One of the great features of the Outline VPN is that you can easily give others—like friends, family, or colleagues—access to your VPN.

To add a new user, you first need to create an additional Outline server key. Press the Add key button, and then name it accordingly. You can then click Share to generate a URL, which you can send to whomever you choose.

When they receive the URL, they will be directed to a webpage with client installation instructions. Be careful with that URL, as anyone who has the link will be able to connect to your server. Only give it to those you trust! The good news is that you can always delete a key if you need to.

You can also use the Outline Manager app to track data usage as well—useful if you have a friend who gets a little greedy with their bandwidth usage.

Outline is undergoing rapid development, so I’m excited to see how it can be improved and expanded shortly. With this first public release, it’s already proven itself to be the easiest way to set up a VPN on your personal VPS—yes, even simpler than Streisand. The fact you can install Outline alongside other Docker-packaged apps is another massive plus.

All in all, Outline is a big step in the right direction for VPNs. Here’s to even more options for browsing the web securely.

Additional resources