Code Monkey home page Code Monkey logo

wireguard-ligase's Introduction

shell screenshot with logo

Wireguard Ligase is a collection of bash scripts designed to easily deploy Wireguard server and configure multiple clients in one go.

The main goals of Wireguard Ligase are:

  • To make it easy for everyone to deploy and configure a Wireguard server and clients.
  • To provide a platform for me to learn bash.
  • To show that deploying your own VPN can be as easy as that.

For a comprehensive overview and guide, check out the Wiki.

Table of Contents

Why use Wireguard-Ligase?

Main reasons behind using this script:

  • Bash is installed and configured as a default shell on nearly any Linux distro.
  • As of July 9th 2019 this script supports Arch, CentOS, Debian, Fedora, Manjaro, and Ubuntu
    • The script will check if it's running on a supported OS, then check if WireGuard is already installed.
    • If WireGuard is not installed, the script will offer to install it.
    • For Arch, Debian, Fedora, Manjaro, and Ubuntu - the script will choose an appropriate way to save netfilter rules in order for those to persist after reboot. See Changelog for details.
  • You are in control
    • Any system changes are shown to the user and user confirmation is required BEFORE any changes are made.
  • Easily readable
    • It's easy to understand the inner workings of the script because bash is a very popular language.
    • Annotations will be added to obscure parts of the script to clarify the logic behind certain operations.

Using the script

Using the script is fairly simple. There are a number of requirements for running the script and making everything work.

Pre-requisites

  1. A server with a public IP address, either physical or cloud (DigitalOcean, LightSail, Vultr, etc), running Linux.

  2. The script will check if WireGuard is installed on Arch, CentOS, Debian, Fedora, Manjaro and Ubuntu. On other distributions, WireGuard must be installed BEFORE running the script. See Installing Wireguard for more info.

  3. A user with sudo privileges for making any system changes.

Usage

As mentioned before, using the script is very simple.

$ git clone https://github.com/SirToffski/WireGuard-Ligase.git # (1) Clone the repository.
$ cd WireGuard-Ligase/ # (2) cd into the repository.
$ sudo bash configure-wireguard.sh # (3) Run the script.

The script will guide you through the rest of the process.

Installing Wireguard

The script has an ability to detect and install Wireguard of the following distributions:

  • Arch Linux
  • CentOS
  • Debian
  • Fedora
  • Manjaro
  • Ubuntu
  • FreeBSD

For installation on other Operating Systems, please check the Wiki.

Changelog

See changelog.

TODO

  • Add an option for a quick hands-free server deployment / host configuration. Especially useful for people who dont want to answer a lot of questions and are not too fussy about naming clients, etc.
  • Customize server config depending on the distro in use (Arch vs Ubuntu, vs RHEL, etc)
  • Add option to configure other UNIX OS types (such as OpenBSD) - work in progress.
    • FreeBSD support has been implemented.
  • Add IPv6 suport.

Disclaimer

The plan is to keep this updated and add features until the project reaches its logical conclusion.

Everyone is welcome to fork / contribute / use any or all parts of the project.


WireGuard is a registered trademark of Jason A. Donenfeld.

wireguard-ligase's People

Contributors

sirtoffski avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.