diff --git a/README.md b/README.md index 6680a7fb..6efed05a 100644 --- a/README.md +++ b/README.md @@ -42,8 +42,21 @@ You have found the easiest way to install & manage WireGuard on any Linux host! > [!NOTE] > To better manage documentation for this project, it has its own site here: [https://wg-easy.github.io/wg-easy/latest](https://wg-easy.github.io/wg-easy/latest) + + +> [!WARNING] +> As the Docs are still in Pre-release, you can access them here [https://wg-easy.github.io/wg-easy/Pre-release](https://wg-easy.github.io/wg-easy/Pre-release) + - [Getting Started](https://wg-easy.github.io/wg-easy/latest/getting-started/) - [Basic Installation](https://wg-easy.github.io/wg-easy/latest/examples/tutorials/basic-installation/) +- [Caddy](https://wg-easy.github.io/wg-easy/latest/examples/tutorials/caddy/) +- [Nginx](https://wg-easy.github.io/wg-easy/latest/examples/tutorials/nginx/) +- [Traefik](https://wg-easy.github.io/wg-easy/latest/examples/tutorials/traefik/) +- [Podman](https://wg-easy.github.io/wg-easy/latest/examples/tutorials/podman/) +- [AdGuard Home](https://wg-easy.github.io/wg-easy/latest/examples/tutorials/adguard/) + +> [!NOTE] +> If you want to migrate from the old version to the new version, you can find the migration guide here: [Migration Guide](https://wg-easy.github.io/wg-easy/latest/advanced/migrate/) ## Requirements @@ -89,51 +102,6 @@ Now setup a reverse proxy to be able to access the Web UI from the internet. If you want to access the Web UI over HTTP, change the env var `INSECURE` to `true`. This is not recommended. Only use this for testing - - - - ### 3. Sponsor Are you enjoying this project? Consider donating. @@ -142,46 +110,30 @@ Founder: [Buy Emile a beer!](https://github.com/sponsors/WeeJeWel) 🍻 Maintainer: [Buy kaaax0815 a coffee!](https://github.com/sponsors/kaaax0815) ☕ - +```shell +cd src +pnpm install +``` ## License diff --git a/docker-compose.yml b/docker-compose.yml index e8607ffe..94b5e86a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: # - HOST=0.0.0.0 # - INSECURE=false - image: ghcr.io/wg-easy/wg-easy + image: ghcr.io/wg-easy/wg-easy:15 container_name: wg-easy networks: wg: @@ -25,7 +25,7 @@ services: cap_add: - NET_ADMIN - SYS_MODULE - # - NET_RAW # ⚠️ Uncomment if using Podman + # - NET_RAW # ⚠️ Uncomment if using Podman Compose sysctls: - net.ipv4.ip_forward=1 - net.ipv4.conf.all.src_valid_mark=1 diff --git a/docs/content/advanced/config/optional-config.md b/docs/content/advanced/config/optional-config.md index 7937cfa0..871088b8 100644 --- a/docs/content/advanced/config/optional-config.md +++ b/docs/content/advanced/config/optional-config.md @@ -3,3 +3,9 @@ title: Optional Configuration --- TODO + +| Env | Default | Example | Description | +| ---------- | --------- | ----------- | ------------------------------ | +| `PORT` | `51821` | `6789` | TCP port for Web UI. | +| `HOST` | `0.0.0.0` | `localhost` | IP address web UI binds to. | +| `INSECURE` | `false` | `true` | If access over http is allowed | diff --git a/docs/content/advanced/metrics/prometheus.md b/docs/content/advanced/metrics/prometheus.md new file mode 100644 index 00000000..b690890d --- /dev/null +++ b/docs/content/advanced/metrics/prometheus.md @@ -0,0 +1,7 @@ +--- +title: Prometheus +--- + +TODO + + diff --git a/docs/content/advanced/migrate/index.md b/docs/content/advanced/migrate/index.md new file mode 100644 index 00000000..82cd1903 --- /dev/null +++ b/docs/content/advanced/migrate/index.md @@ -0,0 +1,7 @@ +--- +title: Migrate +--- + +If you want to migrate from an older version of `wg-easy` to the new version, you can find the migration guides listed below. + +- [Migrate from v14 to v15](./from-14-to-15.md) : This guide should also work for any version before `v14`. diff --git a/docs/content/examples/tutorials/adguard.md b/docs/content/examples/tutorials/adguard.md new file mode 100644 index 00000000..ba0f6da5 --- /dev/null +++ b/docs/content/examples/tutorials/adguard.md @@ -0,0 +1,5 @@ +--- +title: AdGuard Home +--- + +TODO diff --git a/docs/content/examples/tutorials/auto-updates.md b/docs/content/examples/tutorials/auto-updates.md new file mode 100644 index 00000000..008c057b --- /dev/null +++ b/docs/content/examples/tutorials/auto-updates.md @@ -0,0 +1,34 @@ +--- +title: Auto Updates +--- + +## Docker Compose + +With Docker Compose WireGuard Easy can be updated with a single command: + +Replace `$DIR` with the directory where your `docker-compose.yml` is located. + +```shell +cd $DIR +sudo docker compose -f up -d --pull always +``` + +## Docker Run + +```shell +sudo docker stop wg-easy +sudo docker rm wg-easy +sudo docker pull ghcr.io/wg-easy/wg-easy +``` + +And then run the `docker run -d \ ...` command from [Docker Run][docker-run] again. + +[docker-run]: ./docker-run.md + +## Podman + +To update `wg-easy` (and every container that has auto updates enabled), you can run the following commands: + +```shell +sudo podman auto-update +``` diff --git a/docs/content/examples/tutorials/basic-installation.md b/docs/content/examples/tutorials/basic-installation.md index 91946264..31ee4dcf 100644 --- a/docs/content/examples/tutorials/basic-installation.md +++ b/docs/content/examples/tutorials/basic-installation.md @@ -27,7 +27,7 @@ Follow the Docs here: and install Dock 2. Download docker compose file ```shell - sudo curl -o $URL/docker-compose.yml https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.yml + sudo curl -o $DIR/docker-compose.yml https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.yml ``` 3. Start `wg-easy` @@ -54,3 +54,18 @@ TODO Open your browser and navigate to `https://:51821` or `https://:51821`. Follow the instructions to set up your WireGuard VPN. + +## Update `wg-easy` + +To update `wg-easy` to the latest version, run: + +```shell +sudo docker-compose -f $DIR/docker-compose.yml pull +sudo docker-compose -f $DIR/docker-compose.yml up -d +``` + +## Auto Update + +If you want to enable auto-updates, follow the instructions here: [Auto Updates][auto-updates] + +[auto-updates]: ./auto-updates.md diff --git a/docs/content/examples/tutorials/caddy.md b/docs/content/examples/tutorials/caddy.md new file mode 100644 index 00000000..2f02f2f9 --- /dev/null +++ b/docs/content/examples/tutorials/caddy.md @@ -0,0 +1,5 @@ +--- +title: Caddy +--- + +TODO diff --git a/docs/content/examples/tutorials/docker-run.md b/docs/content/examples/tutorials/docker-run.md new file mode 100644 index 00000000..d0ff6f4a --- /dev/null +++ b/docs/content/examples/tutorials/docker-run.md @@ -0,0 +1,43 @@ +--- +title: Docker Run +--- + +To setup the IPv6 Network, simply run once: + +```bash + docker network create \ + -d bridge --ipv6 \ + -d default \ + --subnet 10.42.42.0/24 \ + --subnet fdcc:ad94:bacf:61a3::/64 wg \ +``` + + + +To automatically install & run wg-easy, simply run: + +```bash + docker run -d \ + --net wg \ + -e INSECURE=true \ + --name wg-easy \ + --ip6 fdcc:ad94:bacf:61a3::2a \ + --ip 10.42.42.42 \ + -v ~/.wg-easy:/etc/wireguard \ + -v /lib/modules:/lib/modules:ro \ + -p 51820:51820/udp \ + -p 51821:51821/tcp \ + --cap-add NET_ADMIN \ + --cap-add SYS_MODULE \ + --sysctl net.ipv4.ip_forward=1 \ + --sysctl net.ipv4.conf.all.src_valid_mark=1 \ + --sysctl net.ipv6.conf.all.disable_ipv6=0 \ + --sysctl net.ipv6.conf.all.forwarding=1 \ + --sysctl net.ipv6.conf.default.forwarding=1 \ + --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` diff --git a/docs/content/examples/tutorials/nginx.md b/docs/content/examples/tutorials/nginx.md new file mode 100644 index 00000000..c2ae2eac --- /dev/null +++ b/docs/content/examples/tutorials/nginx.md @@ -0,0 +1,5 @@ +--- +title: NGINX +--- + +TODO diff --git a/docs/content/examples/tutorials/podman.md b/docs/content/examples/tutorials/podman.md index 7e908d86..33381f74 100644 --- a/docs/content/examples/tutorials/podman.md +++ b/docs/content/examples/tutorials/podman.md @@ -19,16 +19,23 @@ sudo mkdir -p /etc/containers/volumes/wg-easy Create a file `/etc/containers/systemd/wg-easy/wg-easy.container` with the following content: + + ```ini [Container] ContainerName=wg-easy -Image=ghcr.io/wg-easy/wg-easy:latest +Image=ghcr.io/wg-easy/wg-easy:15 +AutoUpdate=registry Volume=/etc/containers/volumes/wg-easy:/etc/wireguard:Z Network=wg-easy.network PublishPort=51820:51820/udp PublishPort=51821:51821/tcp +# this is used to allow access over HTTP +# remove this when using a reverse proxy +Environment=INSECURE=true + AddCapability=NET_ADMIN AddCapability=SYS_MODULE AddCapability=NET_RAW @@ -90,6 +97,16 @@ In the Admin Panel of your WireGuard server, go to the `Hooks` tab and add the f nft delete table inet wg_table ``` +If you don't have iptables loaded on your server, you could see many errors in the logs or in the UI. You can ignore them. + +## Restart the Container + +Restart the container to apply the new hooks: + +```shell +sudo systemctl restart wg-easy +``` +