From a9bb7f49b559e744a341ea5c70938b0793d5b76a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 11 Apr 2025 21:45:18 +0000 Subject: [PATCH] Deployed 3ef258a to Pre-release with MkDocs 1.6.1 and mike 2.1.3 --- Pre-release/404.html | 315 ++- Pre-release/advanced/api/index.html | 496 ++++- .../config/optional-config/index.html | 317 ++- .../config/unattended-setup/index.html | 319 ++- .../advanced/metrics/prometheus/index.html | 440 ++++- .../advanced/migrate/from-14-to-15/index.html | 315 ++- Pre-release/advanced/migrate/index.html | 315 ++- Pre-release/changelog.json | 16 - Pre-release/contributing/general/index.html | 315 ++- .../issues-and-pull-requests/index.html | 319 ++- .../examples/tutorials/adguard/index.html | 319 ++- .../tutorials/auto-updates/index.html | 378 +++- .../tutorials/basic-installation/index.html | 355 +++- .../examples/tutorials/caddy/index.html | 319 ++- .../examples/tutorials/docker-run/index.html | 326 +++- .../examples/tutorials/dockerless/index.html | 320 ++- .../{podman => podman-nft}/index.html | 367 +++- .../examples/tutorials/traefik/index.html | 685 ++++++- Pre-release/faq/index.html | 1721 +++++++++++++++++ Pre-release/getting-started/index.html | 363 +++- Pre-release/guides/2fa/index.html | 1518 +++++++++++++++ Pre-release/guides/account/index.html | 1518 +++++++++++++++ Pre-release/guides/admin/index.html | 1518 +++++++++++++++ Pre-release/guides/clients/index.html | 1518 +++++++++++++++ Pre-release/guides/login/index.html | 1518 +++++++++++++++ .../nginx => guides/setup}/index.html | 421 +++- Pre-release/index.html | 319 ++- Pre-release/search/search_index.json | 2 +- Pre-release/sitemap.xml | 68 +- Pre-release/sitemap.xml.gz | Bin 400 -> 438 bytes 30 files changed, 15668 insertions(+), 1052 deletions(-) delete mode 100644 Pre-release/changelog.json rename Pre-release/examples/tutorials/{podman => podman-nft}/index.html (78%) create mode 100644 Pre-release/faq/index.html create mode 100644 Pre-release/guides/2fa/index.html create mode 100644 Pre-release/guides/account/index.html create mode 100644 Pre-release/guides/admin/index.html create mode 100644 Pre-release/guides/clients/index.html create mode 100644 Pre-release/guides/login/index.html rename Pre-release/{examples/tutorials/nginx => guides/setup}/index.html (75%) diff --git a/Pre-release/404.html b/Pre-release/404.html index ced7e493..7b9fa8dd 100644 --- a/Pre-release/404.html +++ b/Pre-release/404.html @@ -16,7 +16,7 @@ - + @@ -142,11 +142,13 @@ - - +
@@ -230,6 +233,25 @@ +
  • + + + + + + + FAQ + + +
  • + + + + + + + +
  • @@ -314,6 +336,26 @@ + + + + + + + +
  • + + + + + Guides + + +
  • + + + +
    @@ -386,6 +428,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -422,10 +486,10 @@ - + -
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + - + + + + + + +
  • + + + + + + Edit Account + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Admin Panel + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Edit Client + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • diff --git a/Pre-release/advanced/api/index.html b/Pre-release/advanced/api/index.html index 9e2536fd..d9d70506 100644 --- a/Pre-release/advanced/api/index.html +++ b/Pre-release/advanced/api/index.html @@ -22,7 +22,7 @@ - + @@ -77,6 +77,11 @@
    + + + Skip to content + +
    @@ -148,11 +153,13 @@ - - + @@ -394,6 +441,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -433,10 +502,10 @@ - + -
  • @@ -507,10 +654,10 @@ - + -
    @@ -1216,7 +1584,47 @@

    API

    -

    TODO

    +

    You can use the API to interact with the application programmatically. The API is available at /api and supports both GET and POST requests. The API is designed to be simple and easy to use, with a focus on providing a consistent interface for all endpoints.

    +

    There is no documentation for the API yet, but this will be added as the underlying library supports it.

    +

    Authentication

    +

    To use the API, you need to authenticate using Basic Authentication. The username and password are the same as the ones you use to log in to the web application. +If you use 2FA, the API will not work. You need to disable 2FA in the web application to use the API.

    +

    Authentication Example

    +
    import requests
    +from requests.auth import HTTPBasicAuth
    +
    +url = "https://example.com:51821/api/client"
    +response = requests.get(url, auth=HTTPBasicAuth('username', 'password'))
    +if response.status_code == 200:
    +    data = response.json()
    +    print(data)
    +else:
    +    print(f"Error: {response.status_code}")
    +
    +

    Endpoints

    +

    The Endpoints are not yet documented. But as file-based routing is used, you can find the endpoints in the src/server/api folder. The method is defined in the file name.

    +

    Endpoints Example

    + + + + + + + + + + + + + + + + + + + + +
    File NameEndpointMethod
    src/server/api/client.get.ts/api/clientGET
    src/server/api/setup/2.post.ts/api/setup/2POST
    diff --git a/Pre-release/advanced/config/optional-config/index.html b/Pre-release/advanced/config/optional-config/index.html index ce6ed483..34869d95 100644 --- a/Pre-release/advanced/config/optional-config/index.html +++ b/Pre-release/advanced/config/optional-config/index.html @@ -22,7 +22,7 @@ - + @@ -148,11 +148,13 @@ - - +
    @@ -236,6 +239,25 @@ +
  • + + + + + + + FAQ + + +
  • + + + + + + + +
  • @@ -322,6 +344,26 @@ + + + + + + + +
  • + + + + + Guides + + +
  • + + + +
    @@ -394,6 +436,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -433,10 +497,10 @@ - + -
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + - + + + + + + +
  • + + + + + + Edit Account + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Admin Panel + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Edit Client + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • @@ -1216,7 +1445,7 @@

    Optional Configuration

    -

    TODO

    +

    You can set these environment variables to configure the container. They are not required, but can be useful in some cases.

    diff --git a/Pre-release/advanced/config/unattended-setup/index.html b/Pre-release/advanced/config/unattended-setup/index.html index d0505791..86280823 100644 --- a/Pre-release/advanced/config/unattended-setup/index.html +++ b/Pre-release/advanced/config/unattended-setup/index.html @@ -22,7 +22,7 @@ - + @@ -148,11 +148,13 @@ - - +
    @@ -236,6 +239,25 @@ +
  • + + + + + + + FAQ + + +
  • + + + + + + + +
  • @@ -322,6 +344,26 @@ + + + + + + + +
  • + + + + + Guides + + +
  • + + + +
    @@ -394,6 +436,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -433,10 +497,10 @@ - + -
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + - + + + + + + +
  • + + + + + + Edit Account + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Admin Panel + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Edit Client + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • @@ -1285,8 +1514,8 @@

    Security

    -

    The initial username and password is not checked for complexity. Make sure to set a long enough username and a secure password. Otherwise, the user won't be able to log in.

    -

    Its recommended to remove the variables after the setup is done to prevent the password from being exposed.

    +

    The initial username and password is not checked for complexity. Make sure to set a long enough username and password. Otherwise, the user won't be able to log in.

    +

    It's recommended to remove the variables after the setup is done to prevent the password from being exposed.

    diff --git a/Pre-release/advanced/metrics/prometheus/index.html b/Pre-release/advanced/metrics/prometheus/index.html index 36595cc3..9f1fb4ce 100644 --- a/Pre-release/advanced/metrics/prometheus/index.html +++ b/Pre-release/advanced/metrics/prometheus/index.html @@ -22,7 +22,7 @@ - + @@ -77,6 +77,11 @@
    + + + Skip to content + +
    @@ -148,11 +153,13 @@ - - + @@ -394,6 +441,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -433,10 +502,10 @@ - + -
  • @@ -678,10 +804,10 @@ - + -
    @@ -1216,8 +1542,32 @@

    Prometheus

    -

    TODO

    - +

    To monitor the WireGuard server, you can use Prometheus and Grafana. The container exposes a /metrics/prometheus endpoint that can be scraped by Prometheus.

    +

    Enable Prometheus

    +

    To enable Prometheus metrics, go to Admin Panel > General and enable Prometheus.

    +

    You can optionally set a Bearer Password for the metrics endpoints. This is useful if you want to expose the metrics endpoint to the internet.

    +

    Configure Prometheus

    +

    You need to add a scrape config to your Prometheus configuration file. Here is an example:

    +
    scrape_configs:
    +  - job_name: "wg-easy"
    +    scrape_interval: 30s
    +    metrics_path: /metrics/prometheus
    +    static_configs:
    +      - targets:
    +          - "localhost:51821"
    +    authorization:
    +      type: Bearer
    +      credentials: "SuperSecurePassword"
    +
    +

    Grafana Dashboard

    +

    You can use the following Grafana dashboard to visualize the metrics:

    +

    Grafana Dashboard

    +

    21733

    +
    +

    Unofficial

    +

    The Grafana dashboard is not official and is not maintained by the wg-easy team. If you have any issues with the dashboard, please contact the author of the dashboard. +See #1299 for more information.

    +
    diff --git a/Pre-release/advanced/migrate/from-14-to-15/index.html b/Pre-release/advanced/migrate/from-14-to-15/index.html index 5f2c03d7..b04ebf7e 100644 --- a/Pre-release/advanced/migrate/from-14-to-15/index.html +++ b/Pre-release/advanced/migrate/from-14-to-15/index.html @@ -22,7 +22,7 @@ - + @@ -153,11 +153,13 @@ - - +
    @@ -241,6 +244,25 @@ +
  • + + + + + + + FAQ + + +
  • + + + + + + + +
  • @@ -327,6 +349,26 @@ + + + + + + + +
  • + + + + + Guides + + +
  • + + + +
    @@ -399,6 +441,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -438,10 +502,10 @@ - + -
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + - + + + + + + +
  • + + + + + + Edit Client + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • diff --git a/Pre-release/advanced/migrate/index.html b/Pre-release/advanced/migrate/index.html index 1b06e677..349118df 100644 --- a/Pre-release/advanced/migrate/index.html +++ b/Pre-release/advanced/migrate/index.html @@ -22,7 +22,7 @@ - + @@ -148,11 +148,13 @@ - - +
    @@ -236,6 +239,25 @@ +
  • + + + + + + + FAQ + + +
  • + + + + + + + +
  • @@ -322,6 +344,26 @@ + + + + + + + +
  • + + + + + Guides + + +
  • + + + +
    @@ -394,6 +436,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -433,10 +497,10 @@ - + -
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + - + + + + + + +
  • + + + + + + Edit Account + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Admin Panel + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Edit Client + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • diff --git a/Pre-release/changelog.json b/Pre-release/changelog.json deleted file mode 100644 index 7b42ffbd..00000000 --- a/Pre-release/changelog.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "1": "Initial version. Enjoy!", - "2": "You can now rename a client & update the address. Enjoy!", - "3": "Many improvements and small changes. Enjoy!", - "4": "Now with pretty charts for client's network speed. Enjoy!", - "5": "Many small improvements & feature requests. Enjoy!", - "6": "Many small performance improvements & bug fixes. Enjoy!", - "7": "Improved the look & performance of the upload/download chart.", - "8": "Updated to Node.js v18.", - "9": "Fixed issue running on devices with older kernels.", - "10": "Added sessionless HTTP API auth & automatic dark mode.", - "11": "Multilanguage Support & various bugfixes.", - "12": "UI_TRAFFIC_STATS, Import json configurations with no PreShared-Key, allow clients with no privateKey & more.", - "13": "New framework (h3), UI_CHART_TYPE, some bugfixes & more.", - "14": "Home Assistent support, PASSWORD_HASH (inc. Helper), translation updates bugfixes & more." -} diff --git a/Pre-release/contributing/general/index.html b/Pre-release/contributing/general/index.html index 11409340..69be6fcc 100644 --- a/Pre-release/contributing/general/index.html +++ b/Pre-release/contributing/general/index.html @@ -22,7 +22,7 @@ - + @@ -153,11 +153,13 @@ - - +
    @@ -241,6 +244,25 @@ +
  • + + + + + + + FAQ + + +
  • + + + + + + + +
  • @@ -327,6 +349,26 @@ + + + + + + + +
  • + + + + + Guides + + +
  • + + + +
    @@ -399,6 +441,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -435,10 +499,10 @@ - + -
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + - + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • diff --git a/Pre-release/contributing/issues-and-pull-requests/index.html b/Pre-release/contributing/issues-and-pull-requests/index.html index 2109fc2f..0e49ecc4 100644 --- a/Pre-release/contributing/issues-and-pull-requests/index.html +++ b/Pre-release/contributing/issues-and-pull-requests/index.html @@ -22,7 +22,7 @@ - + @@ -153,11 +153,13 @@ - - +
    @@ -241,6 +244,25 @@ +
  • + + + + + + + FAQ + + +
  • + + + + + + + +
  • @@ -327,6 +349,26 @@ + + + + + + + +
  • + + + + + Guides + + +
  • + + + +
    @@ -399,6 +441,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -435,10 +499,10 @@ - + -
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + - + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • @@ -1369,8 +1598,8 @@

    By raising issues, I agree to these terms and I understand, that the rules set for the issue tracker will help both maintainers as well as everyone to find a solution.

    Maintainers take the time to improve on this project and help by solving issues together. It is therefore expected from others to make an effort and comply with the rules.

    Filing a Bug Report

    -

    Thank you for participating in this project and reporting a bug. wg-easy is a community-driven project, and each contribution counts!

    -

    Maintainers and moderators are volunteers. We greatly appreciate reports that take the time to provide detailed information via the template, enabling us to help you in the best and quickest way. Ignoring the template provided may seem easier, but discourages receiving any support (via assignment of the label meta/no template - no support).

    +

    Thank you for participating in this project and reporting a bug. wg-easy is a community-driven project, and each contribution counts!

    +

    Maintainers and moderators are volunteers. We greatly appreciate reports that take the time to provide detailed information via the template, enabling us to help you in the best and quickest way. Ignoring the template provided may seem easier, but discourages receiving any support.

    Markdown formatting can be used in almost all text fields (unless stated otherwise in the description).

    Be as precise as possible, and if in doubt, it's best to add more information that too few.

    When an option is marked with "not officially supported" / "unsupported", then support is dependent on availability from specific maintainers.

    diff --git a/Pre-release/examples/tutorials/adguard/index.html b/Pre-release/examples/tutorials/adguard/index.html index ffd624bc..53a11c9d 100644 --- a/Pre-release/examples/tutorials/adguard/index.html +++ b/Pre-release/examples/tutorials/adguard/index.html @@ -22,7 +22,7 @@ - + @@ -148,11 +148,13 @@ - - +
    @@ -236,6 +239,25 @@ +
  • + + + + + + + FAQ + + +
  • + + + + + + + +
  • @@ -324,6 +346,26 @@ + + + + + + + +
  • + + + + + Guides + + +
  • + + + +
    @@ -396,6 +438,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -432,10 +496,10 @@ - + -
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + - + + + + + + +
  • + + + + + + Edit Account + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Admin Panel + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Edit Client + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • @@ -1218,7 +1447,9 @@

    AdGuard Home

    -

    TODO

    +

    It seems like the Docs on how to setup AdGuard Home are not available yet.

    +

    Feel free to create a PR and add them here.

    + diff --git a/Pre-release/examples/tutorials/auto-updates/index.html b/Pre-release/examples/tutorials/auto-updates/index.html index ebc9115c..95f1a396 100644 --- a/Pre-release/examples/tutorials/auto-updates/index.html +++ b/Pre-release/examples/tutorials/auto-updates/index.html @@ -22,7 +22,7 @@ - + @@ -153,11 +153,13 @@ - - +
    @@ -241,6 +244,25 @@ +
  • + + + + + + + FAQ + + +
  • + + + + + + + +
  • @@ -329,6 +351,26 @@ + + + + + + + +
  • + + + + + Guides + + +
  • + + + +
    @@ -401,6 +443,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -437,10 +501,10 @@ - + -
  • @@ -1153,12 +1232,12 @@
  • - + - NGINX + Podman + nftables @@ -1176,12 +1255,12 @@
  • - + - Podman + Traefik @@ -1192,6 +1271,64 @@ + + + +
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + - + + + + + + +
  • + + + + + + Edit Account + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Admin Panel + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Edit Client + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • @@ -1261,6 +1505,21 @@ + +
  • @@ -1317,10 +1576,39 @@

    Docker Compose

    With Docker Compose wg-easy can be updated with a single command:

    -

    Replace $DIR with the directory where your docker-compose.yml is located.

    -
    cd $DIR
    +
    cd /etc/docker/containers/wg-easy
     sudo docker compose up -d --pull always
     
    +

    Watchtower

    +

    If you want the updates to be fully automatic you can install Watchtower. This will check for updates every day at 4:00 AM and update the container if a new version is available.

    +

    File: /etc/docker/containers/watchtower/docker-compose.yml

    +
    services:
    +  watchtower:
    +    image: containrrr/watchtower:latest
    +    volumes:
    +      - /var/run/docker.sock:/var/run/docker.sock
    +    env_file:
    +      - watchtower.env
    +    restart: unless-stopped
    +
    +

    File: /etc/docker/containers/watchtower/watchtower.env

    +
    WATCHTOWER_CLEANUP=true
    +WATCHTOWER_SCHEDULE=0 0 4 * * *
    +TZ=Europe/Berlin
    +
    +# Email
    +# WATCHTOWER_NOTIFICATIONS_LEVEL=info
    +# WATCHTOWER_NOTIFICATIONS=email
    +# WATCHTOWER_NOTIFICATION_EMAIL_FROM=mail@example.com
    +# WATCHTOWER_NOTIFICATION_EMAIL_TO=mail@example.com
    +# WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.example.com
    +# WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=mail@example.com
    +# WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD="SuperSecurePassword"
    +# WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587
    +
    +
    cd /etc/docker/containers/watchtower
    +sudo docker compose up -d
    +

    Docker Run

    sudo docker stop wg-easy
     sudo docker rm wg-easy
    diff --git a/Pre-release/examples/tutorials/basic-installation/index.html b/Pre-release/examples/tutorials/basic-installation/index.html
    index 3bd00cac..5993d9ab 100644
    --- a/Pre-release/examples/tutorials/basic-installation/index.html
    +++ b/Pre-release/examples/tutorials/basic-installation/index.html
    @@ -22,7 +22,7 @@
           
           
           
    -      
    +      
         
         
           
    @@ -153,11 +153,13 @@
         
         
         
    -      
    -      
    +      
         
         
           
     
    @@ -401,6 +443,28 @@
       
       
       
    +    
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -437,10 +501,10 @@ - + -
  • - -
  • - - - Access the Web UI - - -
  • @@ -1198,12 +1253,116 @@
  • - + + + + + + Podman + nftables + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Traefik + + + + + +
  • + + + + + + + +
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + - + + + + + + +
  • + + + + + + Edit Client + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • @@ -1342,15 +1562,6 @@ - - -
  • - - - Access the Web UI - - -
  • @@ -1420,35 +1631,35 @@
    1. Create a directory for the configuration files (you can choose any directory you like):
    -
    DIR=/docker/wg-easy
    -sudo mkdir -p $DIR
    +
    sudo mkdir -p /etc/docker/containers/wg-easy
     
    1. Download docker compose file
    -
    sudo curl -o $DIR/docker-compose.yml https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.yml
    +
    sudo curl -o /etc/docker/containers/wg-easy/docker-compose.yml https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.yml
     
    1. Start wg-easy
    -
     sudo docker-compose -f $DIR/docker-compose.yml up -d
    +
     cd /etc/docker/containers/wg-easy
    + sudo docker-compose up -d
     

    Setup Firewall

    If you are using a firewall, you need to open the following ports:

    • UDP 51820 (WireGuard)
    • -
    • TCP 51821 (Web UI)

    These ports can be changed, so if you change them you have to update your firewall rules accordingly.

    Setup Reverse Proxy

    -

    TODO

    -

    Access the Web UI

    -

    Open your browser and navigate to https://<your-domain>:51821 or https://<your-ip>:51821.

    -

    Follow the instructions to set up your WireGuard VPN.

    +
      +
    • To setup traefik follow the instructions here: Traefik
    • +
    • To setup caddy follow the instructions here: Caddy
    • +

    Update wg-easy

    To update wg-easy to the latest version, run:

    -
  • + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + - + + + + + + +
  • + + + + + + Edit Account + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Admin Panel + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Edit Client + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • @@ -1218,7 +1447,9 @@

    Caddy

    -

    TODO

    +

    It seems like the Docs on how to setup Caddy are not available yet.

    +

    Feel free to create a PR and add them here.

    + diff --git a/Pre-release/examples/tutorials/docker-run/index.html b/Pre-release/examples/tutorials/docker-run/index.html index cbd5b961..43b4f0ec 100644 --- a/Pre-release/examples/tutorials/docker-run/index.html +++ b/Pre-release/examples/tutorials/docker-run/index.html @@ -22,7 +22,7 @@ - + @@ -148,11 +148,13 @@ - - + @@ -396,6 +438,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -432,10 +496,10 @@ - + -
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + - + + + + + + +
  • + + + + + + Edit Account + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Admin Panel + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Edit Client + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • @@ -1219,7 +1448,7 @@

    Docker Run

    To setup the IPv6 Network, simply run once:

    -
      docker network create \
    +
    docker network create \
       -d bridge --ipv6 \
       -d default \
       --subnet 10.42.42.0/24 \
    @@ -1227,8 +1456,8 @@
     
    -

    To automatically install & run ``wg-easy, simply run:

    -
      docker run -d \
    +

    To automatically install & run wg-easy, simply run:

    +
    docker run -d \
       --net wg \
       -e INSECURE=true \
       --name wg-easy \
    @@ -1248,10 +1477,7 @@
       --restart unless-stopped \
       ghcr.io/wg-easy/wg-easy:15
     
    -

    The Web UI will now be available on http://0.0.0.0:51821.

    -
    -

    💡 Your configuration files will be saved in ~/.wg-easy

    -
    +

    The Web UI will now be available at http://0.0.0.0:51821.

    diff --git a/Pre-release/examples/tutorials/dockerless/index.html b/Pre-release/examples/tutorials/dockerless/index.html index 95ff1457..6b640592 100644 --- a/Pre-release/examples/tutorials/dockerless/index.html +++ b/Pre-release/examples/tutorials/dockerless/index.html @@ -18,11 +18,11 @@ - + - + @@ -148,11 +148,13 @@ - - + @@ -396,6 +438,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -432,10 +496,10 @@ - + -
  • + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + - + + + + + + +
  • + + + + + + Edit Account + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Admin Panel + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Edit Client + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • @@ -1218,7 +1447,8 @@

    Without Docker

    -

    TODO

    +

    This is currently not yet supported.

    + diff --git a/Pre-release/examples/tutorials/podman/index.html b/Pre-release/examples/tutorials/podman-nft/index.html similarity index 78% rename from Pre-release/examples/tutorials/podman/index.html rename to Pre-release/examples/tutorials/podman-nft/index.html index f393a6b3..402d72d1 100644 --- a/Pre-release/examples/tutorials/podman/index.html +++ b/Pre-release/examples/tutorials/podman-nft/index.html @@ -12,21 +12,21 @@ - + - + - + - Podman - wg-easy + Podman + nftables - wg-easy @@ -115,7 +115,7 @@
    - Podman + Podman + nftables
    @@ -153,11 +153,13 @@ - - + @@ -401,6 +443,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -437,10 +501,10 @@ - + -
  • @@ -1351,7 +1580,7 @@ - + @@ -1360,14 +1589,14 @@ - + -

    Podman

    +

    Podman + nftables

    This guide will show you how to run wg-easy with rootful Podman and nftables.

    Requirements

    @@ -1432,7 +1661,7 @@ sudo systemctl start
    apk add nftables; nft add table inet wg_table; nft add chain inet wg_table postrouting { type nat hook postrouting priority 100 \; }; nft add rule inet wg_table postrouting ip saddr {{ipv4Cidr}} oifname {{device}} masquerade; nft add rule inet wg_table postrouting ip6 saddr {{ipv6Cidr}} oifname {{device}} masquerade; nft add chain inet wg_table input { type filter hook input priority 0 \; policy drop \; }; nft add rule inet wg_table input udp dport {{port}} accept; nft add rule inet wg_table input tcp dport {{uiPort}} accept; nft add chain inet wg_table forward { type filter hook forward priority 0 \; policy drop \; }; nft add rule inet wg_table forward iifname "wg0" accept; nft add rule inet wg_table forward oifname "wg0" accept;
    +
    nft add table inet wg_table; nft add chain inet wg_table prerouting { type nat hook prerouting priority 100 \; }; nft add chain inet wg_table postrouting { type nat hook postrouting priority 100 \; }; nft add rule inet wg_table postrouting ip saddr {{ipv4Cidr}} oifname {{device}} masquerade; nft add rule inet wg_table postrouting ip6 saddr {{ipv6Cidr}} oifname {{device}} masquerade; nft add chain inet wg_table input { type filter hook input priority 0 \; policy accept \; }; nft add rule inet wg_table input udp dport {{port}} accept; nft add rule inet wg_table input tcp dport {{uiPort}} accept; nft add chain inet wg_table forward { type filter hook forward priority 0 \; policy accept \; }; nft add rule inet wg_table forward iifname "wg0" accept; nft add rule inet wg_table forward oifname "wg0" accept;
     
    1. PostDown
    2. @@ -1444,10 +1673,6 @@ sudo systemctl start
      sudo systemctl restart wg-easy
       
    - diff --git a/Pre-release/examples/tutorials/traefik/index.html b/Pre-release/examples/tutorials/traefik/index.html index 0d1eee69..82ad36fa 100644 --- a/Pre-release/examples/tutorials/traefik/index.html +++ b/Pre-release/examples/tutorials/traefik/index.html @@ -15,12 +15,14 @@ - + + + - + @@ -75,6 +77,11 @@
    @@ -146,11 +153,13 @@ - - + @@ -394,6 +443,28 @@ +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + + +
  • @@ -430,10 +501,10 @@ - + -
  • + + + + + + + + + + -
  • - - + + + + + + + +
  • - + + + + + + + + + - + + + + + + +
  • + + + + + + Edit Account + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Admin Panel + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Edit Client + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Login + + + + + +
  • + + + + + + + + + + +
  • + + + + + + Setup + + + + +
  • @@ -1184,6 +1531,95 @@ + + +
    @@ -1216,7 +1652,152 @@

    Traefik

    -

    TODO

    +
    +

    Opinionated

    +

    This guide is opinionated. If you use other conventions or folder layouts, feel free to change the commands and paths.

    +
    +

    Create docker compose project

    +
    sudo mkdir -p /etc/docker/containers/traefik
    +cd /etc/docker/containers/traefik
    +
    +

    Create docker compose file

    +

    File: /etc/docker/containers/traefik/docker-compose.yml

    +
    services:
    +  traefik:
    +    image: traefik:3.3
    +    container_name: traefik
    +    restart: unless-stopped
    +    ports:
    +      - "80:80"
    +      - "443:443/tcp"
    +      - "443:443/udp"
    +    volumes:
    +      - /var/run/docker.sock:/var/run/docker.sock
    +      - /etc/docker/volumes/traefik/traefik.yml:/traefik.yml:ro
    +      - /etc/docker/volumes/traefik/traefik_dynamic.yml:/traefik_dynamic.yml:ro
    +      - /etc/docker/volumes/traefik/acme.json:/acme.json
    +    networks:
    +      - traefik
    +
    +networks:
    +  traefik:
    +    external: true
    +
    +

    Create traefik.yml

    +

    File: /etc/docker/volumes/traefik/traefik.yml

    +
    log:
    +  level: INFO
    +
    +entryPoints:
    +  web:
    +    address: ":80/tcp"
    +    http:
    +      redirections:
    +        entryPoint:
    +          to: websecure
    +          scheme: https
    +  websecure:
    +    address: ":443/tcp"
    +    http:
    +      middlewares:
    +        - compress@file
    +        - hsts@file
    +      tls:
    +        certResolver: letsencrypt
    +    http3: {}
    +
    +api:
    +  dashboard: true
    +
    +certificatesResolvers:
    +  letsencrypt:
    +    acme:
    +      email: $mail@example.com$
    +      storage: acme.json
    +      httpChallenge:
    +        entryPoint: web
    +
    +providers:
    +  docker:
    +    watch: true
    +    network: traefik
    +    exposedByDefault: false
    +  file:
    +    filename: traefik_dynamic.yml
    +
    +serversTransport:
    +  insecureSkipVerify: true
    +
    +

    Create traefik_dynamic.yml

    +

    File: /etc/docker/volumes/traefik/traefik_dynamic.yml

    +
    http:
    +  middlewares:
    +    services:
    +      basicAuth:
    +        users:
    +          - "$username$:$password$"
    +    compress:
    +      compress: {}
    +    hsts:
    +      headers:
    +        stsSeconds: 2592000
    +  routers:
    +    api:
    +      rule: Host(`traefik.$example.com$`)
    +      entrypoints:
    +        - websecure
    +      middlewares:
    +        - services
    +      service: api@internal
    +
    +tls:
    +  options:
    +    default:
    +      cipherSuites:
    +        - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    +        - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    +        - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
    +      sniStrict: true
    +
    +

    Create acme.json

    +
    sudo touch /etc/docker/volumes/traefik/acme.json
    +sudo chmod 600 /etc/docker/volumes/traefik/acme.json
    +
    +

    Create network

    +
    sudo docker network create traefik
    +
    +

    Start traefik

    +
    sudo docker-compose up -d
    +
    +

    You can no access the Traefik dashboard at https://traefik.$example.com$ with the credentials you set in traefik_dynamic.yml.

    +

    Add Labels to wg-easy

    +

    To add labels to your wg-easy service, you can add the following to your docker-compose.yml file:

    +

    File: /etc/docker/containers/wg-easy/docker-compose.yml

    +
    services:
    +  wg-easy:
    +    ...
    +    container_name: wg-easy
    +    networks:
    +      ...
    +      traefik: {}
    +    labels:
    +      - "traefik.enable=true"
    +      - "traefik.http.routers.wg-easy.rule=Host(`wg-easy.$example.com$`)"
    +      - "traefik.http.routers.wg-easy.entrypoints=websecure"
    +      - "traefik.http.routers.wg-easy.service=wg-easy"
    +      - "traefik.http.services.wg-easy.loadbalancer.server.port=51821"
    +    ...
    +
    +networks:
    +  ...
    +  traefik:
    +    external: true
    +
    +

    Restart wg-easy

    +
    cd /etc/docker/containers/wg-easy
    +sudo docker-compose up -d
    +
    +

    You can now access wg-easy at https://wg-easy.$example.com$ and start the setup.

    diff --git a/Pre-release/faq/index.html b/Pre-release/faq/index.html new file mode 100644 index 00000000..85538cbd --- /dev/null +++ b/Pre-release/faq/index.html @@ -0,0 +1,1721 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FAQ - wg-easy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +

    FAQ

    + +

    Here are some frequently asked questions or errors about wg-easy. If you have a question that is not answered here, please feel free to open a discussion on GitHub.

    +

    Error: WireGuard exited with the error: Cannot find device "wg0"

    +

    This error indicates that the WireGuard interface wg0 does not exist. This can happen if the WireGuard kernel module is not loaded or if the interface was not created properly.

    +

    To resolve this issue, you can try the following steps:

    +
      +
    1. Load the WireGuard kernel module: If the WireGuard kernel module is not loaded, you can load it manually by running:
    2. +
    +
     sudo modprobe wireguard
    +
    +
      +
    1. Load the WireGuard kernel module on boot: If you want to ensure that the WireGuard kernel module is loaded automatically on boot, you can add it to the /etc/modules file:
    2. +
    +
    echo "wireguard" | sudo tee -a /etc/modules
    +
    +

    can't initialize iptables table `nat': Table does not exist (do you need to insmod?)

    +

    This error indicates that the nat table in iptables does not exist. This can happen if the iptables kernel module is not loaded or if the nat table is not supported by your kernel.

    +

    To resolve this issue, you can try the following steps:

    +
      +
    1. Load the nat kernel module: If the nat kernel module is not loaded, you can load it manually by running:
    2. +
    +
    sudo modprobe iptable_nat
    +
    +
      +
    1. Load the nat kernel module on boot: If you want to ensure that the nat kernel module is loaded automatically on boot, you can add it to the /etc/modules file:
    2. +
    +
     echo "iptable_nat" | sudo tee -a /etc/modules
    +
    +

    can't initialize ip6tables table `nat': Table does not exist (do you need to insmod?)

    +

    This error indicates that the nat table in ip6tables does not exist. This can happen if the ip6tables kernel module is not loaded or if the nat table is not supported by your kernel.

    +

    To resolve this issue, you can try the following steps:

    +
      +
    1. Load the nat kernel module: If the nat kernel module is not loaded, you can load it manually by running:
    2. +
    +
    sudo modprobe ip6table_nat
    +
    +
      +
    1. Load the nat kernel module on boot: If you want to ensure that the nat kernel module is loaded automatically on boot, you can add it to the /etc/modules file:
    2. +
    +
     echo "ip6table_nat" | sudo tee -a /etc/modules
    +
    +

    can't initialize iptables table `filter': Permission denied

    +

    This error indicates that the filter table in iptables cannot be initialized due to permission issues. This can happen if you are not running the command with sufficient privileges.

    +

    To resolve this issue, you can try the following steps:

    +
      +
    1. Load the filter kernel module: If the filter kernel module is not loaded, you can load it manually by running:
    2. +
    +
    sudo modprobe iptable_filter
    +
    +
      +
    1. Load the filter kernel module on boot: If you want to ensure that the filter kernel module is loaded automatically on boot, you can add it to the /etc/modules file:
    2. +
    +
    echo "iptable_filter" | sudo tee -a /etc/modules
    +
    +

    can't initialize ip6tables table `filter': Permission denied

    +

    This error indicates that the filter table in ip6tables cannot be initialized due to permission issues. This can happen if you are not running the command with sufficient privileges.

    +

    To resolve this issue, you can try the following steps:

    +
      +
    1. Load the filter kernel module: If the filter kernel module is not loaded, you can load it manually by running:
    2. +
    +
    sudo modprobe ip6table_filter
    +
    +
      +
    1. Load the filter kernel module on boot: If you want to ensure that the filter kernel module is loaded automatically on boot, you can add it to the /etc/modules file:
    2. +
    +
     echo "ip6table_filter" | sudo tee -a /etc/modules
    +
    + + + + + + + + + + + + + + + + + + +
    +
    + + + +
    + + + +
    + +
    + + +
    + +
    +
    +
    +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Pre-release/getting-started/index.html b/Pre-release/getting-started/index.html index d9aab71f..341472a7 100644 --- a/Pre-release/getting-started/index.html +++ b/Pre-release/getting-started/index.html @@ -15,14 +15,14 @@ - + - + @@ -153,11 +153,13 @@ - - +
    @@ -240,6 +243,25 @@ + +
  • + + + + + + + FAQ + + +
  • + + + + + + + @@ -327,6 +349,26 @@ + + + + + + + +
  • + + + + + Guides + + +
  • + + + +
    @@ -399,6 +441,28 @@ + + +
  • + + + + + + FAQ + + + + + +
  • + + + + + + + @@ -559,10 +623,10 @@ - + -
    + - - + + + +
    ghcr.io/wg-easy/wg-easy:nightlymostly unstable gets frequent package and code updates, deployed against master.
    push a tag (v1.2.3)1.2.3, 1.2, 1, latestdevelopmentpull requestsghcr.io/wg-easy/wg-easy:developmentused for development, testing code from PRs before landing into master.
    @@ -1489,7 +1748,7 @@ If you're using podman, make sure to read the related
    sudo docker compose down
     
    -

    Using the Correct Commands For Stopping and Starting wg-easy

    +

    Using the Correct Commands For Stopping and Starting wg-easy

    Use sudo docker compose up / down, not sudo docker compose start / stop. Otherwise, the container is not properly destroyed and you may experience problems during startup because of inconsistent state.

    That's it! It really is that easy.

    diff --git a/Pre-release/guides/2fa/index.html b/Pre-release/guides/2fa/index.html new file mode 100644 index 00000000..2325e132 --- /dev/null +++ b/Pre-release/guides/2fa/index.html @@ -0,0 +1,1518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2FA - wg-easy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + +

    2FA

    + +

    TODO

    + + + + + + + + + + + + + + + + +
    +
    + + + +
    + + + +
    + +
    + + +
    + +
    +
    +
    +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Pre-release/guides/account/index.html b/Pre-release/guides/account/index.html new file mode 100644 index 00000000..b8620123 --- /dev/null +++ b/Pre-release/guides/account/index.html @@ -0,0 +1,1518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Edit Account - wg-easy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + +

    Edit Account

    + +

    TODO

    + + + + + + + + + + + + + + + + +
    +
    + + + +
    + + + +
    + +
    + + +
    + +
    +
    +
    +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Pre-release/guides/admin/index.html b/Pre-release/guides/admin/index.html new file mode 100644 index 00000000..8bf6b02f --- /dev/null +++ b/Pre-release/guides/admin/index.html @@ -0,0 +1,1518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Admin Panel - wg-easy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + +

    Admin Panel

    + +

    TODO

    + + + + + + + + + + + + + + + + +
    +
    + + + +
    + + + +
    + +
    + + +
    + +
    +
    +
    +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Pre-release/guides/clients/index.html b/Pre-release/guides/clients/index.html new file mode 100644 index 00000000..5fbe86e6 --- /dev/null +++ b/Pre-release/guides/clients/index.html @@ -0,0 +1,1518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Edit Client - wg-easy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + +

    Edit Client

    + +

    TODO

    + + + + + + + + + + + + + + + + +
    +
    + + + +
    + + + +
    + +
    + + +
    + +
    +
    +
    +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Pre-release/guides/login/index.html b/Pre-release/guides/login/index.html new file mode 100644 index 00000000..bfe41ede --- /dev/null +++ b/Pre-release/guides/login/index.html @@ -0,0 +1,1518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Login - wg-easy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + +

    Login

    + +

    TODO

    + + + + + + + + + + + + + + + + +
    +
    + + + +
    + + + +
    + +
    + + +
    + +
    +
    +
    +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Pre-release/examples/tutorials/nginx/index.html b/Pre-release/guides/setup/index.html similarity index 75% rename from Pre-release/examples/tutorials/nginx/index.html rename to Pre-release/guides/setup/index.html index 9ea3b7a4..cb3172d3 100644 --- a/Pre-release/examples/tutorials/nginx/index.html +++ b/Pre-release/guides/setup/index.html @@ -12,28 +12,26 @@ - + - + - - - - + + - NGINX - wg-easy + Setup - wg-easy - + - + @@ -52,7 +50,7 @@ - + @@ -91,9 +89,9 @@