explaingit

angristan/wireguard-install

10,887ShellAudience · ops devopsComplexity · 2/5LicenseSetup · moderate

TLDR

A single shell script that installs and configures a WireGuard VPN server on Linux by answering a few questions, routing all client traffic through an encrypted tunnel to your server.

Mindmap

mindmap
  root((wireguard-install))
    What it does
      Installs WireGuard
      Configures server
      Generates client config
    Features
      Add or remove clients
      IPv4 and IPv6
      Auto-start service
    Supported distros
      Ubuntu and Debian
      Fedora and Arch
      Alpine and others
    Audience
      Sysadmins
      Privacy users
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Set up a personal WireGuard VPN server on a cloud VM in under 10 minutes with no manual config editing.

USE CASE 2

Add or remove client devices by re-running the script, it handles all config file changes automatically.

USE CASE 3

Route all internet traffic from a laptop through a private server to mask your real IP address.

Tech stack

ShellWireGuard

Getting it running

Difficulty · moderate Time to first run · 30min

Requires a Linux VPS with root access, works on Ubuntu, Debian, Fedora, Arch, Alpine, and several other distributions.

Use, modify, and distribute freely for any purpose including commercial use, with no restriction other than preserving the MIT license notice.

In plain English

This project is a shell script that installs WireGuard VPN on a Linux server with as little friction as possible. WireGuard is a type of VPN that routes all of a client device's internet traffic through an encrypted tunnel to the server. Once connected, the client's web requests appear to come from the server's IP address rather than the client's own, which is useful for privacy or for accessing services tied to a specific location. The setup process is intentionally simple: you download the script, run it, and answer a few questions. The script handles everything else, including installing the necessary WireGuard components, configuring the server, setting up a background service so the VPN starts automatically, and generating a configuration file for the client device. You can run the script again at any time to add new clients or remove existing ones. The script works on a wide range of Linux distributions, including Ubuntu, Debian, Fedora, Arch Linux, AlmaLinux, Rocky Linux, Alpine Linux, CentOS Stream, Oracle Linux, and others. It supports both IPv4 and IPv6 networks. The project is open source under the MIT license. Contributions are welcome, and the repository uses automated checks to enforce shell scripting best practices on every change. If WireGuard does not suit your needs, the same author maintains a similar installer for OpenVPN.

Copy-paste prompts

Prompt 1
Walk me through running the angristan/wireguard-install script on a fresh Ubuntu 22.04 VPS and generating a client config file for my phone.
Prompt 2
Using wireguard-install, how do I add a second client device to an existing WireGuard server?
Prompt 3
What firewall ports do I need to open on my Linux server before running the wireguard-install script?
Prompt 4
How do I enable IPv6 tunneling when setting up WireGuard with the angristan installer?
Prompt 5
Show me how to remove a client from my WireGuard server using the wireguard-install script without disrupting other clients.
Open on GitHub → Explain another repo

← angristan on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.