diff --git a/docs/content/config/migrate/from-14-to-15.md b/docs/content/config/migrate/from-14-to-15.md new file mode 100644 index 00000000..b471fa18 --- /dev/null +++ b/docs/content/config/migrate/from-14-to-15.md @@ -0,0 +1,47 @@ +--- +title: Migrate from v14 to v15 +--- + +This guide will help you migrate from `v14` to version `v15` of `wg-easy`. + +## Changes + +This is a complete rewrite of the `wg-easy` project. Therefore the configuration files and the way you interact with the project have changed. + +## Migration + +### Backup + +Before you start the migration, make sure to backup your existing configuration files. + +Go into the Web Ui and click the Backup button, this should download a `wg0.json` file. + +Or download the `wg0.json` file from your container volume to your pc. + +You will need this file for the migration + +### Remove old container + +1. Stop the running container + +If you are using `docker run` + +```shell +docker stop wg-easy +``` + +If you are using `docker-compose` + +```shell +docker-compose down +``` + +### Start new container + +Follow the instructions in the [Getting Started](../../usage.md) or [Basic Installation](../../examples/tutorials/basic-installation.md) guide to start the new container. + +In the setup wizard, select that you already already have a configuration file and upload the `wg0.json` file you downloaded in the backup step. + +### Done + +You have now successfully migrated to `v15` of `wg-easy`. diff --git a/docs/content/examples/tutorials/basic-installation.md b/docs/content/examples/tutorials/basic-installation.md index 2ec62572..534bccec 100644 --- a/docs/content/examples/tutorials/basic-installation.md +++ b/docs/content/examples/tutorials/basic-installation.md @@ -4,4 +4,49 @@ title: Basic Installation -TODO +## Requirements + +1. You need to have a host that you can manage +2. You need to have a domain name or a public IP address +3. You need a supported architecture (x86_64, arm64) +4. You need curl installed on your host + +## Install Docker + +Follow the Docs here: and install Docker on your host. + +## Install `wg-easy` + +1. Create a directory for the configuration files (you can choose any directory you like): + + ```shell + DIR=/docker/wg-easy + sudo mkdir -p $DIR + ``` + +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 + ``` + +3. Start `wg-easy` + + ```shell + sudo docker-compose -f $DIR/docker-compose.yml 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. + +## Access the Web UI + +Open your browser and navigate to `https://:51821` or `https://:51821`. + +Follow the instructions to set up your WireGuard VPN. diff --git a/docs/content/examples/tutorials/podman.md b/docs/content/examples/tutorials/podman.md index bd1d6982..7e908d86 100644 --- a/docs/content/examples/tutorials/podman.md +++ b/docs/content/examples/tutorials/podman.md @@ -2,8 +2,6 @@ title: Podman --- -# Podman - This guide will show you how to run `wg-easy` with rootful Podman and nftables. ## Requirements @@ -82,16 +80,17 @@ In the Admin Panel of your WireGuard server, go to the `Hooks` tab and add the f 1. PostUp -```shell -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 \; }; nft add rule inet wg_table input udp dport {{port}} accept; nft add chain inet wg_table forward { type filter hook forward priority 0 \; }; nft add rule inet wg_table forward iifname "wg0" accept; nft add rule inet wg_table forward oifname "wg0" accept; -``` + ```shell + 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 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; + ``` 2. PostDown -```shell -nft delete table inet wg_table -``` + ```shell + nft delete table inet wg_table + ``` diff --git a/docs/content/usage.md b/docs/content/usage.md index 50d3140a..5d4717fd 100644 --- a/docs/content/usage.md +++ b/docs/content/usage.md @@ -46,8 +46,11 @@ All workflows are using the tagging convention listed below. It is subsequently | `cron` on `master` | `nightly` | | `push` a tag (`v1.2.3`) | `1.2.3`, `1.2`, `1`, `latest` | +When publishing a tag we follow the [Semantic Versioning][semver] specification. The `latest` tag is always pointing to the latest stable release. If you want to avoid breaking changes, use the major version tag (e.g. `15`). + [github-ci]: https://github.com/wg-easy/wg-easy/actions [ghcr-image]: https://github.com/wg-easy/wg-easy/pkgs/container/wg-easy +[semver]: https://semver.org/ ### Get All Files