{"id":1426,"date":"2018-03-29T07:00:52","date_gmt":"2018-03-29T07:00:52","guid":{"rendered":"https:\/\/blog.ssdnodes.com\/blog\/?p=1426"},"modified":"2025-05-18T13:02:08","modified_gmt":"2025-05-18T13:02:08","slug":"outline-vpn-tutorial-vps","status":"publish","type":"post","link":"https:\/\/www.ssdnodes.com\/blog\/outline-vpn-tutorial-vps\/","title":{"rendered":"Outline VPN: How to install it on your server (Tutorial)"},"content":{"rendered":"<div id=\"preview1\" class=\"g-b g-b--t1of2 split split-preview\">\n<div id=\"preview\" class=\"preview-html\">\n<p><a href=\"https:\/\/getoutline.org\/\" target=\"_blank\" rel=\"noopener\">Outline<\/a> VPN is a new open source VPN that promises an incredibly easy-to-install VPN experience\u2014far easier than existing options, like OpenVPN.<\/p>\n<p>That's great news, as setting up a virtual private network (VPN) on a personal server has never been particularly easy.<\/p>\n<p>In fact, our <a href=\"https:\/\/www.ssdnodes.com\/blog\/tutorial-installing-openvpn-on-ubuntu-16-04\/\">tutorial on installing OpenVPN<\/a> is one of our most-read tutorials....<\/p>\n<p>...but keyservers and a dozen configuration files can flummox even experienced sysadmins.<\/p>\n<p><a href=\"https:\/\/www.ssdnodes.com\/blog\/tutorial-the-easiest-vpn-with-streisand-and-ubuntu-16-04\/\">Streisand<\/a> is much more straightforward to install but forces you to dedicate your entire server to its VPN software\u2014not great for flexibility or <a href=\"https:\/\/www.ssdnodes.com\/blog\/get-more-from-your-vps-with-these-5-self-hosted-apps\/\">getting more value from your existing server<\/a>.<\/p>\n<p>Outline VPN\u2014created by Jigsaw\u2014is trying to do things a little differently.<\/p>\n<h2>What's different about Outline VPN?<\/h2>\n<\/div>\n<\/div>\n<p>Via Outline, Jigsaw is trying to make VPNs not only secure, but also incredibly easy to set up\u2014especially for those who don\u2019t 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.<\/p>\n<p>Here\u2019s what Jigsaw has to say about their goals:<\/p>\n<blockquote><p>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.<\/p><\/blockquote>\n<h2>An Outline VPN server is incredibly easy to set up<\/h2>\n<div id=\"preview1\" class=\"g-b g-b--t1of2 split split-preview\">\n<div id=\"preview\" class=\"preview-html\">\n<p>Thanks to 3 simple facts, it's super-easy to install Outline VPN on your server:<\/p>\n<ul>\n<li>It uses Docker containers.<\/li>\n<li>It uses a single command for installation.<\/li>\n<li>It can be installed concurrently with other apps, web servers, and more.<\/li>\n<\/ul>\n<p>Sadly, the official Outline VPN documentation implies that you have to use a server from one of our competitors (I won\u2019t deign to mention them here), but the truth is that Outline can, and will, run anywhere...<\/p>\n<p>So, here\u2019s a tutorial <em>for the rest of us on <\/em>how to install Outline with Docker<em>:<\/em><\/p>\n<h2>Prerequisites<\/h2>\n<ul>\n<li>A VPS running any of our OS options<\/li>\n<li>A working Docker installation<\/li>\n<li>A non-root, <code>sudo<\/code>-enabled user<\/li>\n<li>A local computer running Windows or Linux<\/li>\n<\/ul>\n<div class=\"cta-inline\"><\/div>\n<h2>Step 1. Install Docker (if not installed already)<\/h2>\n<p>The Outline + Docker combination is what makes this VPN solution so easy to install. So, if you don\u2019t have Docker installed on your server yet, take a moment to perform this one-command installation:<\/p>\n<pre><code class=\"language-bash\">$ sudo curl <span class=\"hljs-operator\">-s<\/span>S https:\/\/get.docker.com\/ | sh\n<\/code><\/pre>\n<p>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.<\/p>\n<pre><code>$ sudo systemctl start docker\n$ sudo systemctl enable docker\n<\/code><\/pre>\n<p>Finally, verify that the Docker service is running:<\/p>\n<pre><code>$ sudo sudo systemctl status docker\n\u25cf docker.service - Docker Application Container Engine\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/docker.service; disabled; vendor preset: disabled)\n  Drop-In: \/etc\/systemd\/system\/docker.service.d\n           \u2514\u2500firewalld.conf\n   Active: active (running) since Mon 2018-03-26 14:36:26 EDT; 4s ago\n     Docs: https:\/\/docs.docker.com\n Main PID: 31232 (dockerd)\n<\/code><\/pre>\n<h2>Step 2. Installing the Outline VPN server<\/h2>\n<p>With Docker installed, you can run the Outline server installation script:<\/p>\n<pre><code class=\"language-bash\">$ sudo wget -qO- https:\/\/raw.githubusercontent.com\/Jigsaw-Code\/outline-server\/master\/src\/server_manager\/install_scripts\/install_server.sh | bash\n<\/code><\/pre>\n<p>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 <code>shadowbox<\/code> server and a <code>watchtower<\/code> server to update <code>shadowbox<\/code> as needed.<\/p>\n<p>When the Outline VPN server installation script finishes, you\u2019ll see some output similar to the following:<\/p>\n<pre><code>{\n  \"apiUrl\": \"https:\/\/123.456.78.9:12345\/xxxxxxxxxxxxxxxxxxxxxxx\",\n  \"certSha256\": \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\n}\n<\/code><\/pre>\n<p>Keep that information safe, as you\u2019ll need it in the next step. For now, rejoice: You have successfully installed a VPN server!<\/p>\n<h2>Step 3. Using Outline Manager to set up your VPN<\/h2>\n<p>Jigsaw has created a desktop app called Outline Manager to help users configure their Outline VPN servers.<\/p>\n<p>You can install Manager on your local machine (where you\u2019re reading this now, <em>not<\/em> where you just ran the above scripts), but, unfortunately, it\u2019s currently only available for Windows and Linux. OS X users will have to wait patiently or find a different machine.<\/p>\n<p>Download the appropriate version for you.<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/Jigsaw-Code\/outline-releases\/raw\/master\/manager\/Outline-Manager.exe\" target=\"_blank\" rel=\"noopener\">Windows<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/Jigsaw-Code\/outline-releases\/raw\/master\/manager\/Outline-Manager.AppImage\" target=\"_blank\" rel=\"noopener\">Linux<\/a><\/li>\n<\/ul>\n<p>Once you open the Outline Manager app, scroll down to <strong>Set up Outline anywhere<\/strong> and click on the <em>Get started<\/em> button.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"501\" class=\"alignnone size-full wp-image-1432\" src=\"https:\/\/www.ssdnodes.com\/wp-content\/uploads\/2018\/03\/201803_outline-manager-1.png\" alt=\"\" srcset=\"https:\/\/www.ssdnodes.com\/wp-content\/uploads\/2018\/03\/201803_outline-manager-1.png 600w, https:\/\/www.ssdnodes.com\/wp-content\/uploads\/2018\/03\/201803_outline-manager-1-300x251.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>You\u2019ll see two steps to follow. You\u2019ve 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 <em>Done<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"768\" class=\"alignnone size-full wp-image-1433\" src=\"https:\/\/www.ssdnodes.com\/wp-content\/uploads\/2018\/03\/201803_outline-manager-2.png\" alt=\"\" srcset=\"https:\/\/www.ssdnodes.com\/wp-content\/uploads\/2018\/03\/201803_outline-manager-2.png 598w, https:\/\/www.ssdnodes.com\/wp-content\/uploads\/2018\/03\/201803_outline-manager-2-234x300.png 234w\" sizes=\"auto, (max-width: 598px) 100vw, 598px\" \/><\/p>\n<blockquote><p>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.<\/p><\/blockquote>\n<p>Once you\u2019re connected, you will see that you already have a key called <strong>My access key<\/strong>.<\/p>\n<p>Click on the <em>Get connected<\/em> button, which will give you a walkthrough on how to install and configure the appropriate VPN client for your platform.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1436 size-full\" src=\"https:\/\/www.ssdnodes.com\/wp-content\/uploads\/2018\/03\/201803_outline-manager-3-1.png\" alt=\"\" width=\"600\" height=\"769\" srcset=\"https:\/\/www.ssdnodes.com\/wp-content\/uploads\/2018\/03\/201803_outline-manager-3-1.png 600w, https:\/\/www.ssdnodes.com\/wp-content\/uploads\/2018\/03\/201803_outline-manager-3-1-234x300.png 234w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>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.<\/p>\n<p>Once you\u2019ve finished connecting to the VPN, you can visit a website that <a href=\"http:\/\/www.whatsmyip.org\/\" target=\"_blank\" rel=\"noopener\">shows you your IP<\/a> and, hopefully, find that it matches the IP of your VPS. If so, congratulations again\u2014you\u2019re browsing the web through your very own VPN!<\/p>\n<h2>Step 4. Getting more from Outline<\/h2>\n<p>One of the great features of the Outline VPN is that you can easily give others\u2014like friends, family, or colleagues\u2014access to your VPN.<\/p>\n<p>To add a new user, you first need to create an additional Outline server key. Press the <em>Add key<\/em> button, and then name it accordingly. You can then click <em>Share<\/em> to generate a URL, which you can send to whomever you choose.<\/p>\n<p>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.<\/p>\n<p>You can also use the Outline Manager app to track data usage as well\u2014useful if you have a friend who gets a little greedy with their bandwidth usage.<\/p>\n<p>Outline is undergoing rapid development, so I\u2019m excited to see how it can be improved and expanded shortly. With this first public release, it\u2019s already proven itself to be <strong>the easiest<\/strong> way to set up a VPN on your personal VPS\u2014yes, even simpler than Streisand. The fact you can install Outline alongside other Docker-packaged apps is another massive plus.<\/p>\n<p>All in all, Outline is a big step in the right direction for VPNs. Here\u2019s to even more options for browsing the web securely.<\/p>\n<h2>Additional resources<\/h2>\n<ul>\n<li><a href=\"https:\/\/getoutline.org\/en\/support\" target=\"_blank\" rel=\"noopener\">Outline FAQ<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/jigsaw-Code\/?q=outline\" target=\"_blank\" rel=\"noopener\">Outline GitHub repository<\/a><\/li>\n<li><a href=\"https:\/\/www.reddit.com\/r\/outlinevpn\/\" target=\"_blank\" rel=\"noopener\">Outline Reddit community<\/a><\/li>\n<li><a href=\"https:\/\/www.ssdnodes.com\/blog\/tutorial-installing-openvpn-on-ubuntu-16-04\/\">Tutorial: Installing OpenVPN on Ubuntu 16.04<\/a><\/li>\n<li><a href=\"https:\/\/www.ssdnodes.com\/blog\/tutorial-the-easiest-vpn-with-streisand-and-ubuntu-16-04\/\">Tutorial: The Easiest VPN with Streisand and Ubuntu 16.04<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Setting up a virtual private network (VPN) on a personal server has never been particularly easy. Enter\u2026 Google?<\/p>\n","protected":false},"author":20,"featured_media":1431,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[18,30],"tags":[255],"class_list":["post-1426","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-tutorials","tag-vpn"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/posts\/1426","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/comments?post=1426"}],"version-history":[{"count":3,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/posts\/1426\/revisions"}],"predecessor-version":[{"id":13005,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/posts\/1426\/revisions\/13005"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/media\/1431"}],"wp:attachment":[{"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/media?parent=1426"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/categories?post=1426"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/tags?post=1426"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}