Browse Source

Merge branch 'dev' into wg-easy

pull/396/head^2
Chono N 4 years ago
committed by GitHub
parent
commit
bb917a6d5b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      .github/dependabot.yml
  2. 72
      .github/workflows/codeql.yml
  3. 38
      .github/workflows/deploy-nightly.yml
  4. 40
      .github/workflows/deploy.yml
  5. 23
      .github/workflows/lint.yml
  6. 6
      .gitignore
  7. 16
      Dockerfile
  8. 21
      LICENSE
  9. 11
      LICENSE.md
  10. 61
      README.md
  11. 12
      SECURITY.md
  12. 4
      docker-compose.dev.yml
  13. 12
      docker-compose.yml
  14. 23
      docs/changelog.json
  15. 4
      package.json
  16. 44
      src/package-lock.json
  17. 10
      src/package.json
  18. BIN
      src/www/img/favicon.ico
  19. BIN
      src/www/img/favicon.png
  20. 9
      src/www/index.html
  21. 2
      src/www/js/app.js
  22. 2
      src/www/manifest.json

11
.github/dependabot.yml

@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "JavaScript" "HTML" "Docker" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"

72
.github/workflows/codeql.yml

@ -0,0 +1,72 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
schedule:
- cron: '30 2 * * 3'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2

38
.github/workflows/deploy-nightly.yml

@ -1,38 +0,0 @@
name: Build & Publish Docker Image to Docker Hub
on:
workflow_dispatch:
schedule:
- cron: "0 12 * * *"
jobs:
deploy:
name: Build & Deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: production
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
# Set environment variables
- run: echo RELEASE=$(cat ./src/package.json | jq -r .release) >> $GITHUB_ENV
# Build & Publish
- name: Build & Publish Docker Image
uses: docker/build-push-action@v2
with:
push: true
platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8
tags: weejewel/wg-easy:nightly, weejewel/wg-easy:${{ env.RELEASE }}-nightly

40
.github/workflows/deploy.yml

@ -1,40 +0,0 @@
name: Build & Publish Docker Image to Docker Hub
on:
workflow_dispatch:
push:
branches:
- production
- production/**
jobs:
deploy:
name: Build & Deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: production
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
# Set environment variables
- run: echo RELEASE=$(cat ./src/package.json | jq -r .release) >> $GITHUB_ENV
# Build & Publish
- name: Build & Publish Docker Image
uses: docker/build-push-action@v2
with:
push: true
platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8
tags: weejewel/wg-easy:latest, weejewel/wg-easy:${{ env.RELEASE }}

23
.github/workflows/lint.yml

@ -1,23 +0,0 @@
name: Lint
on:
push:
branches:
- master
- production
pull_request:
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '14'
- run: |
cd src
npm ci
npm run lint

6
.gitignore

@ -1,3 +1,9 @@
/config /config
/wg0.conf /wg0.conf
/wg0.json /wg0.json
.DS_Store
# General
.DS_Store
.AppleDouble
.LSOverride

16
Dockerfile

@ -1,15 +1,5 @@
# There's an issue with node:16-alpine. # There's an issue with node:16-alpine on pi
# On Raspberry Pi, the following crash happens: FROM node:16.15.1-alpine AS build_node_modules
# #FailureMessage Object: 0x7e87753c
# #
# # Fatal error in , line 0
# # unreachable code
# #
# #
# #
FROM docker.io/library/node:14-alpine@sha256:dc92f36e7cd917816fa2df041d4e9081453366381a00f40398d99e9392e78664 AS build_node_modules
# Copy Web UI # Copy Web UI
COPY src/ /app/ COPY src/ /app/
@ -18,7 +8,7 @@ RUN npm ci --production
# Copy build result to a new image. # Copy build result to a new image.
# This saves a lot of disk space. # This saves a lot of disk space.
FROM docker.io/library/node:14-alpine@sha256:dc92f36e7cd917816fa2df041d4e9081453366381a00f40398d99e9392e78664 FROM node:16.15.1-alpine
COPY --from=build_node_modules /app /app COPY --from=build_node_modules /app /app
# Move node_modules one directory up, so during development # Move node_modules one directory up, so during development

21
LICENSE

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 Gyarbij
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

11
LICENSE.md

@ -1,11 +0,0 @@
**You may:**
* Use this software for yourself;
* Use this software for a company;
* Modify this software, as long as you:
* Publish the changes on GitHub as an open-source & linked fork;
* Don't remove any links to the original project or donation pages;
**You may not:**
* Use this software in a commercial product without a license from the original author;

61
README.md

@ -1,13 +1,7 @@
# WireGuard Easy # WireUI
[![Build & Publish Docker Image to Docker Hub](https://github.com/WeeJeWel/wg-easy/actions/workflows/deploy.yml/badge.svg?branch=production)](https://github.com/WeeJeWel/wg-easy/actions/workflows/deploy.yml)
[![Lint](https://github.com/WeeJeWel/wg-easy/actions/workflows/lint.yml/badge.svg?branch=master)](https://github.com/WeeJeWel/wg-easy/actions/workflows/lint.yml)
[![Docker](https://img.shields.io/docker/v/weejewel/wg-easy/latest)](https://hub.docker.com/r/weejewel/wg-easy)
[![Docker](https://img.shields.io/docker/pulls/weejewel/wg-easy.svg)](https://hub.docker.com/r/weejewel/wg-easy)
[![Sponsor](https://img.shields.io/github/sponsors/weejewel)](https://github.com/sponsors/WeeJeWel)
![GitHub Stars](https://img.shields.io/github/stars/weejewel/wg-easy)
You have found the easiest way to install & manage WireGuard on any Linux host! This is a security and hardening divergent fork of [wg-easy](https://github.com/Gyarbij/wireui) The easiest way to run [WireGuard](https://github.com/WireGuard). This takes care of the configurations steps for novices while still allowing customizability for more experienced users, and comes packed with a UI, so you're not fiddling with .conf files and scp.
<p align="center"> <p align="center">
<img src="./assets/screenshot.png" width="802" /> <img src="./assets/screenshot.png" width="802" />
@ -27,13 +21,21 @@ You have found the easiest way to install & manage WireGuard on any Linux host!
## Requirements ## Requirements
* A host with a kernel that supports WireGuard (all modern kernels). * A host with a kernel that supports WireGuard (all modern kernels).
* A host with Docker installed. * A docker installation on the host.
* The ability to open a port in your router/FW.
## Installation ## Installation
### 1. Install Docker ### 1. Install Docker
If you haven't installed Docker yet, install it by running: If there is no present installation of Docker, you should install it using:
[Docker Desktop](https://docs.docker.com/get-docker/) for Desktop
or
[Docker Engine](https://docs.docker.com/engine/install/) for Servers/Headless
Alternatively, you can install it by running the convenience script below. _The convenience script is not recommended for production environments, but can be used as an example to create a provisioning script that is tailored to your needs_:
```bash ```bash
$ curl -sSL https://get.docker.com | sh $ curl -sSL https://get.docker.com | sh
@ -43,16 +45,16 @@ $ exit
And log in again. And log in again.
### 2. Run WireGuard Easy ### 2. Run WireUI
To automatically install & run wg-easy, simply run: To automatically install & run wireui, simply run:
<pre> <pre>
$ docker run -d \ $ docker run -d \
--name=wg-easy \ --name=wireui \
-e WG_HOST=<b>🚨YOUR_SERVER_IP</b> \ -e WG_HOST=<b>🚨YOUR_SERVER_IP</b> \
-e PASSWORD=<b>🚨YOUR_ADMIN_PASSWORD</b> \ -e PASSWORD=<b>🚨YOUR_ADMIN_PASSWORD</b> \
-v ~/.wg-easy:/etc/wireguard \ -v ~/.wireui:/etc/wireguard \
-p 51820:51820/udp \ -p 51820:51820/udp \
-p 51821:51821/tcp \ -p 51821:51821/tcp \
--cap-add=NET_ADMIN \ --cap-add=NET_ADMIN \
@ -60,7 +62,7 @@ $ docker run -d \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \ --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--sysctl="net.ipv4.ip_forward=1" \ --sysctl="net.ipv4.ip_forward=1" \
--restart unless-stopped \ --restart unless-stopped \
weejewel/wg-easy gyarbij/wireui
</pre> </pre>
> 💡 Replace `YOUR_SERVER_IP` with your WAN IP, or a Dynamic DNS hostname. > 💡 Replace `YOUR_SERVER_IP` with your WAN IP, or a Dynamic DNS hostname.
@ -69,11 +71,8 @@ $ docker run -d \
The Web UI will now be available on `http://0.0.0.0:51821`. The Web UI will now be available on `http://0.0.0.0:51821`.
> 💡 Your configuration files will be saved in `~/.wg-easy` > 💡 Your configuration files will be saved in `~/.wireui`
### 3. Sponsor
Are you enjoying this project? [Buy me a beer!](https://github.com/sponsors/WeeJeWel) 🍻
## Options ## Options
@ -81,18 +80,18 @@ These options can be configured by setting environment variables using `-e KEY="
| Env | Default | Example | Description | | Env | Default | Example | Description |
| - | - | - | - | | - | - | - | - |
| `PASSWORD` | - | `foobar123` | When set, requires a password when logging in to the Web UI. | | `PASSWORD` | - | `ChangeMe@69` | When set, requires a password when logging in to the Web UI. |
| `WG_HOST` | - | `vpn.myserver.com` | The public hostname of your VPN server. | | `WG_HOST` | - | `vpn.example.com` | The public hostname of your VPN server. |
| `WG_PORT` | `51820` | `12345` | The public UDP port of your VPN server. WireGuard will always listen on `51820` inside the Docker container. | | `WG_PORT` | `51820` | `12345` | The public UDP port of your VPN server. WireGuard will always listen on `51820` inside the Docker container. |
| `WG_MTU` | `null` | `1420` | The MTU the clients will use. Server uses default WG MTU. | | `WG_MTU` | `null` | `1420` | The MTU the clients will use. Server uses default WG MTU. |
| `WG_PERSISTENT_KEEPALIVE` | `0` | `25` | Value in seconds to keep the "connection" open. If this value is 0, then connections won't be kept alive. | | `WG_PERSISTENT_KEEPALIVE` | `0` | `25` | Value in seconds to keep the "connection" open. |
| `WG_DEFAULT_ADDRESS` | `10.8.0.x` | `10.6.0.x` | Clients IP address range. | | `WG_DEFAULT_ADDRESS` | `10.8.0.x` | `10.6.0.x` | Client's IP address range. |
| `WG_DEFAULT_DNS` | `1.1.1.1` | `8.8.8.8, 8.8.4.4` | DNS server clients will use. | | `WG_DEFAULT_DNS` | `1.1.1.1` | `8.8.8.8, 8.8.4.4` | DNS server clients will use. |
| `WG_ALLOWED_IPS` | `0.0.0.0/0, ::/0` | `192.168.15.0/24, 10.0.1.0/24` | Allowed IPs clients will use. | | `WG_ALLOWED_IPS` | `0.0.0.0/0, ::/0` | `192.420.69.0/24, 10.0.1.0/24` | Allowed IPs clients will use. |
| `WG_PRE_UP` | `...` | - | See [config.js](https://github.com/WeeJeWel/wg-easy/blob/master/src/config.js#L19) for the default value. | | `WG_PRE_UP` | `...` | - | See [config.js](https://github.com/Gyarbij/wireui/blob/master/src/config.js#L19) for the default value. |
| `WG_POST_UP` | `...` | `iptables ...` | See [config.js](https://github.com/WeeJeWel/wg-easy/blob/master/src/config.js#L20) for the default value. | | `WG_POST_UP` | `...` | `iptables ...` | See [config.js](https://github.com/Gyarbij/wireui/blob/master/src/config.js#L20) for the default value. |
| `WG_PRE_DOWN` | `...` | - | See [config.js](https://github.com/WeeJeWel/wg-easy/blob/master/src/config.js#L27) for the default value. | | `WG_PRE_DOWN` | `...` | - | See [config.js](https://github.com/Gyarbij/wireui/blob/master/src/config.js#L27) for the default value. |
| `WG_POST_DOWN` | `...` | `iptables ...` | See [config.js](https://github.com/WeeJeWel/wg-easy/blob/master/src/config.js#L28) for the default value. | | `WG_POST_DOWN` | `...` | `iptables ...` | See [config.js](https://github.com/Gyarbij/wireui/blob/master/src/config.js#L28) for the default value. |
> If you change `WG_PORT`, make sure to also change the exposed port. > If you change `WG_PORT`, make sure to also change the exposed port.
@ -101,9 +100,9 @@ These options can be configured by setting environment variables using `-e KEY="
To update to the latest version, simply run: To update to the latest version, simply run:
```bash ```bash
docker stop wg-easy docker stop wireui
docker rm wg-easy docker rm wireui
docker pull weejewel/wg-easy docker pull gyarbij/wireui
``` ```
And then run the `docker run -d \ ...` command above again. And then run the `docker run -d \ ...` command above again.

12
SECURITY.md

@ -0,0 +1,12 @@
# Security Policy
## Supported Versions
The only version supported is the current builds located at [Docker Hub](https://hub.docker.com/r/gyarbij/wireui/tags)
## Reporting a Vulnerability
To report a vulnerability, email [email protected]
If it's something you can fix, please feel free to open a pull request.

4
docker-compose.dev.yml

@ -1,10 +1,10 @@
version: "3.8" version: "3.8"
services: services:
wg-easy: wg-easy:
image: wg-easy image: wireui
command: npm run serve command: npm run serve
volumes: volumes:
- ./src/:/app/ - ./src/:/app/
environment: environment:
# - PASSWORD=p # - PASSWORD=p
- WG_HOST=192.168.1.233 - WG_HOST=dev.wireui.com

12
docker-compose.yml

@ -1,25 +1,25 @@
version: "3.8" version: "3.8"
services: services:
wg-easy: wireui:
environment: environment:
# ⚠️ Required: # ⚠️ Required:
# Change this to your host's public address # Change this to your host's public address
- WG_HOST=raspberrypi.local - WG_HOST=vpn.wireui.com
# Optional: # Optional:
# - PASSWORD=foobar123 # - PASSWORD=ChangeMe@69
# - WG_PORT=51820 # - WG_PORT=51820
# - WG_DEFAULT_ADDRESS=10.8.0.x # - WG_DEFAULT_ADDRESS=10.8.0.x
# - WG_DEFAULT_DNS=1.1.1.1 # - WG_DEFAULT_DNS=1.1.1.1
# - WG_MTU=1420 # - WG_MTU=1420
# - WG_ALLOWED_IPS=192.168.15.0/24, 10.0.1.0/24 # - WG_ALLOWED_IPS=192.420.69.0/24, 10.0.1.0/24
# - WG_PRE_UP=echo "Pre Up" > /etc/wireguard/pre-up.txt # - WG_PRE_UP=echo "Pre Up" > /etc/wireguard/pre-up.txt
# - WG_POST_UP=echo "Post Up" > /etc/wireguard/post-up.txt # - WG_POST_UP=echo "Post Up" > /etc/wireguard/post-up.txt
# - WG_PRE_DOWN=echo "Pre Down" > /etc/wireguard/pre-down.txt # - WG_PRE_DOWN=echo "Pre Down" > /etc/wireguard/pre-down.txt
# - WG_POST_DOWN=echo "Post Down" > /etc/wireguard/post-down.txt # - WG_POST_DOWN=echo "Post Down" > /etc/wireguard/post-down.txt
image: weejewel/wg-easy image: gyarbij/wireui
container_name: wg-easy container_name: wireui
volumes: volumes:
- .:/etc/wireguard - .:/etc/wireguard
ports: ports:

23
docs/changelog.json

@ -1,9 +1,14 @@
{
"1": "Initial version. Enjoy!", # Changelog
"2": "You can now rename a client, and update the address. Enjoy!",
"3": "Many improvements and small changes. Enjoy!", ## v1.1.0-dev
"4": "Now with pretty charts for client's network speed. Enjoy!",
"5": "Many small improvements & feature requests. Enjoy!", - Improved the look & performance of the upload/download chart.
"6": "Many small performance improvements & bug fixes. Enjoy!",
"7": "Improved the look & performance of the upload/download chart." ## v1.0.0
}
- Minify and syntax updates as well as UI changes.
## v0.0.1
- Initial build

4
package.json

@ -1,8 +1,8 @@
{ {
"version": "1.0.0", "version": "1.0.0",
"scripts": { "scripts": {
"build": "DOCKER_BUILDKIT=1 docker build --tag wg-easy .", "build": "DOCKER_BUILDKIT=1 docker build --tag wireui .",
"serve": "docker-compose -f docker-compose.yml -f docker-compose.dev.yml up", "serve": "docker-compose -f docker-compose.yml -f docker-compose.dev.yml up",
"start": "docker run --env WG_HOST=0.0.0.0 --name wg-easy --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl=\"net.ipv4.conf.all.src_valid_mark=1\" --mount type=bind,source=\"$(pwd)\"/config,target=/etc/wireguard -p 51820:51820/udp -p 51821:51821/tcp wg-easy" "start": "docker run --env WG_HOST=0.0.0.0 --name wireui --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl=\"net.ipv4.conf.all.src_valid_mark=1\" --mount type=bind,source=\"$(pwd)\"/config,target=/etc/wireguard -p 51820:51820/udp -p 51821:51821/tcp wireui"
} }
} }

44
src/package-lock.json

@ -1,5 +1,5 @@
{ {
"name": "wg-easy", "name": "wireui",
"version": "1.0.0", "version": "1.0.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
@ -252,10 +252,9 @@
"dev": true "dev": true
}, },
"ansi-regex": { "ansi-regex": {
"version": "5.0.0", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="
"dev": true
}, },
"ansi-styles": { "ansi-styles": {
"version": "3.2.1", "version": "3.2.1",
@ -504,11 +503,6 @@
"wrap-ansi": "^5.1.0" "wrap-ansi": "^5.1.0"
}, },
"dependencies": { "dependencies": {
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"emoji-regex": { "emoji-regex": {
"version": "7.0.3", "version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
@ -1704,9 +1698,9 @@
} }
}, },
"minimist": { "minimist": {
"version": "1.2.5", "version": "1.2.6",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
"dev": true "dev": true
}, },
"ms": { "ms": {
@ -1895,9 +1889,9 @@
"dev": true "dev": true
}, },
"path-parse": { "path-parse": {
"version": "1.0.6", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true "dev": true
}, },
"path-to-regexp": { "path-to-regexp": {
@ -2305,6 +2299,14 @@
"dev": true, "dev": true,
"requires": { "requires": {
"ansi-regex": "^5.0.0" "ansi-regex": "^5.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true
}
} }
}, },
"strip-bom": { "strip-bom": {
@ -2523,11 +2525,6 @@
"strip-ansi": "^5.0.0" "strip-ansi": "^5.0.0"
}, },
"dependencies": { "dependencies": {
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"emoji-regex": { "emoji-regex": {
"version": "7.0.3", "version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
@ -2592,11 +2589,6 @@
"yargs-parser": "^13.1.2" "yargs-parser": "^13.1.2"
}, },
"dependencies": { "dependencies": {
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"emoji-regex": { "emoji-regex": {
"version": "7.0.3", "version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",

10
src/package.json

@ -1,6 +1,6 @@
{ {
"release": 7, "release": 1.1-dev,
"name": "wg-easy", "name": "wireui",
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"main": "server.js", "main": "server.js",
@ -9,8 +9,8 @@
"serve-with-password": "PASSWORD=wg npm run serve", "serve-with-password": "PASSWORD=wg npm run serve",
"lint": "eslint ." "lint": "eslint ."
}, },
"author": "Emile Nijssen", "author": "Gyarbij",
"license": "GPL", "license": "GNU Affero",
"dependencies": { "dependencies": {
"debug": "^4.3.1", "debug": "^4.3.1",
"express": "^4.17.1", "express": "^4.17.1",
@ -28,6 +28,6 @@
] ]
}, },
"engines": { "engines": {
"node": "14" "node": "16"
} }
} }

BIN
src/www/img/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
src/www/img/favicon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

9
src/www/index.html

@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<title>WireGuard</title> <title>WireUI powered by WireGuard</title>
<link href="./css/vendor/tailwind.min.css" rel="stylesheet"> <link href="./css/vendor/tailwind.min.css" rel="stylesheet">
<link rel="manifest" href="./manifest.json"> <link rel="manifest" href="./manifest.json">
<link rel="icon" type="image/png" href="./img/favicon.png"> <link rel="icon" type="image/png" href="./img/favicon.png">
@ -47,7 +47,7 @@
<p>{{latestRelease.changelog}}</p> <p>{{latestRelease.changelog}}</p>
</div> </div>
<a href="https://github.com/WeeJeWel/wg-easy#updating" target="_blank" <a href="https://github.com/Gyarbij.wireui#updating" target="_blank"
class="p-3 rounded-md bg-white float-right font-sm font-semibold text-red-800 flex-shrink-0 border-2 border-red-800 hover:border-white hover:text-white hover:bg-red-800 transition-all"> class="p-3 rounded-md bg-white float-right font-sm font-semibold text-red-800 flex-shrink-0 border-2 border-red-800 hover:border-white hover:text-white hover:bg-red-800 transition-all">
Update → Update →
</a> </a>
@ -511,9 +511,8 @@
</div> </div>
<p v-cloak class="text-center m-10 text-gray-300 text-xs">Made by <a target="_blank" class="hover:underline" <p v-cloak class="text-center m-10 text-gray-300 text-xs">Made by <a target="_blank" class="hover:underline"
href="https://emilenijssen.nl/?ref=wg-easy">Emile Nijssen</a> · <a class="hover:underline" href="https://gyarbij.gg/?ref=wireui">Gyarbij</a> · <a class="hover:underline"
href="https://github.com/sponsors/WeeJeWel" target="_blank">Donate</a> · <a class="hover:underline" href="https://github.com/Gyarbij/wireui" target="_blank">GitHub</a></p>
href="https://github.com/weejewel/wg-easy" target="_blank">GitHub</a></p>
</div> </div>

2
src/www/js/app.js

@ -270,7 +270,7 @@ new Vue({
Promise.resolve().then(async () => { Promise.resolve().then(async () => {
const currentRelease = await this.api.getRelease(); const currentRelease = await this.api.getRelease();
const latestRelease = await fetch('https://weejewel.github.io/wg-easy/changelog.json') const latestRelease = await fetch('https://gyarbij.github.io/wireui/changelog.json')
.then(res => res.json()) .then(res => res.json())
.then(releases => { .then(releases => {
const releasesArray = Object.entries(releases).map(([version, changelog]) => ({ const releasesArray = Object.entries(releases).map(([version, changelog]) => ({

2
src/www/manifest.json

@ -1,5 +1,5 @@
{ {
"name": "WireGuard", "name": "WireUI powered by WireGuard",
"display": "standalone", "display": "standalone",
"background_color": "#fff", "background_color": "#fff",
"icons": [ "icons": [

Loading…
Cancel
Save