From 7697f61a58afede569058abaa27f852c51813574 Mon Sep 17 00:00:00 2001 From: Bernd Storath <32197462+kaaax0815@users.noreply.github.com> Date: Mon, 9 Sep 2024 07:33:20 +0200 Subject: [PATCH] Feat: Docs (#1361) * basic docs * use semver versioning --- .github/workflows/deploy.yml | 57 +++++++------ docs/content/assets/logo/favicon.png | Bin 0 -> 2948 bytes docs/content/assets/logo/logo.png | Bin 0 -> 3103 bytes docs/{ => content}/changelog.json | 0 .../config/advanced/optional-config.md | 3 + docs/content/config/advanced/podman.md | 5 ++ docs/content/contributing/general.md | 23 ++++++ .../contributing/issues-and-pull-requests.md | 55 +++++++++++++ .../examples/tutorials/basic-installation.md | 0 docs/content/index.md | 34 ++++++++ docs/content/usage.md | 75 ++++++++++++++++++ docs/mkdocs.yml | 75 ++++++++++++++++++ 12 files changed, 304 insertions(+), 23 deletions(-) create mode 100644 docs/content/assets/logo/favicon.png create mode 100644 docs/content/assets/logo/logo.png rename docs/{ => content}/changelog.json (100%) create mode 100644 docs/content/config/advanced/optional-config.md create mode 100644 docs/content/config/advanced/podman.md create mode 100644 docs/content/contributing/general.md create mode 100644 docs/content/contributing/issues-and-pull-requests.md create mode 100644 docs/content/examples/tutorials/basic-installation.md create mode 100644 docs/content/index.md create mode 100644 docs/content/usage.md create mode 100644 docs/mkdocs.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 1ae7ef8b..7374613d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -4,40 +4,51 @@ on: workflow_dispatch: push: branches: - - production + - master jobs: deploy: name: Build & Deploy runs-on: ubuntu-latest - if: github.repository_owner == 'wg-easy' + if: | + github.repository_owner == 'wg-easy' && + startsWith(github.ref, 'refs/tags/v') permissions: packages: write contents: read steps: - - uses: actions/checkout@v4 - with: - ref: production + - uses: actions/checkout@v4 + with: + ref: production - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + - name: Docker meta + id: meta + uses: docker/metadata-action@v3 + with: + images: | + ghcr.io/wg-easy/wg-easy + tags: | + type=semver,pattern={{version}} + type=semver,pattern={{major}} + type=semver,pattern={{major}}.{{minor}} - - name: Set environment variables - run: echo RELEASE=$(cat ./src/package.json | jq -r .release | jq -r .version) >> $GITHUB_ENV + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - - name: Build & Publish Docker Image - uses: docker/build-push-action@v6 - with: - push: true - platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8 - tags: ghcr.io/wg-easy/wg-easy:latest, ghcr.io/wg-easy/wg-easy:${{ env.RELEASE }} + - name: Build & Publish Docker Image + uses: docker/build-push-action@v6 + with: + push: true + platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8 + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/docs/content/assets/logo/favicon.png b/docs/content/assets/logo/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..470e2e9b367b168733e6b51f7d0d59d3d5036154 GIT binary patch literal 2948 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 literal 0 HcmV?d00001 diff --git a/docs/changelog.json b/docs/content/changelog.json similarity index 100% rename from docs/changelog.json rename to docs/content/changelog.json diff --git a/docs/content/config/advanced/optional-config.md b/docs/content/config/advanced/optional-config.md new file mode 100644 index 00000000..74565bce --- /dev/null +++ b/docs/content/config/advanced/optional-config.md @@ -0,0 +1,3 @@ +--- +title: 'Optional Configuration' +--- diff --git a/docs/content/config/advanced/podman.md b/docs/content/config/advanced/podman.md new file mode 100644 index 00000000..dc4ba708 --- /dev/null +++ b/docs/content/config/advanced/podman.md @@ -0,0 +1,5 @@ +--- +title: Podman +--- + +TODO diff --git a/docs/content/contributing/general.md b/docs/content/contributing/general.md new file mode 100644 index 00000000..018f1ca3 --- /dev/null +++ b/docs/content/contributing/general.md @@ -0,0 +1,23 @@ +--- +title: 'General Information' +--- + +## Coding Style + +When refactoring, writing or altering files, adhere to these rules: + +1. **Adjust your style of coding to the style that is already present**! Even if you do not like it, this is due to consistency. There was a lot of work involved in making all files consistent. +2. **Use `pnpm lint` to check your scripts**! Your contributions are checked by GitHub Actions too, so you will need to do this. +3. **Use the provided `.vscode/settings.json`** file. + +## Documentation + +Make sure to select `nightly` in the dropdown menu at the top. Navigate to the page you would like to edit and click the edit button in the top right. This allows you to make changes and create a pull-request. + +Alternatively you can make the changes locally. For that you'll need to have Docker installed. Navigate into the `docs/` directory. Then run: + +```sh +docker run --rm -it -p 8000:8000 -v "${PWD}:/docs" squidfunk/mkdocs-material +``` + +This serves the documentation on your local machine on port `8000`. Each change will be hot-reloaded onto the page you view, just edit, save and look at the result. diff --git a/docs/content/contributing/issues-and-pull-requests.md b/docs/content/contributing/issues-and-pull-requests.md new file mode 100644 index 00000000..b9e51120 --- /dev/null +++ b/docs/content/contributing/issues-and-pull-requests.md @@ -0,0 +1,55 @@ +--- +title: 'Issues and Pull Requests' +--- + +This project is Open Source. That means that you can contribute on enhancements, bug fixing or improving the documentation. + +## Opening an Issue + +!!! attention + + **Before opening an issue**, read the [`README`][github-file-readme] carefully, study the docs for your version (maybe [latest][docs-latest]) and your search engine you trust. The issue tracker is not meant to be used for unrelated questions! + +When opening an issue, please provide details use case to let the community reproduce your problem. + +!!! attention + + **Use the issue templates** to provide the necessary information. Issues which do not use these templates are not worked on and closed. + +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`_). + +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. + +## Pull Requests + +!!! question "Motivation" + + You want to add a feature? Feel free to start creating an issue explaining what you want to do and how you're thinking doing it. Other users may have the same need and collaboration may lead to better results. + +### Submit a Pull-Request + +The development workflow is the following: + +1. Fork the project and clone your fork with `git clone --recurse-submodules ...` or run `git submodule update --init --recursive` after you cloned your fork +2. Write the code that is needed :D +5. Document your improvements if necessary +6. [Commit][commit] (and [sign your commit][gpg]), push and create a pull-request to merge into `master`. Please **use the pull-request template** to provide a minimum of contextual information and make sure to meet the requirements of the checklist. + +Pull requests are automatically tested against the CI and will be reviewed when tests pass. When your changes are validated, your branch is merged. CI builds the new `:nightly` image every night and your changes will be includes in the next version release. + +[docs-latest]: https://wg-easy.github.io/wg-easy/latest +[github-file-readme]: https://github.com/wg-easy/wg-easy/blob/master/README.md +[commit]: https://help.github.com/articles/closing-issues-via-commit-messages/ +[gpg]: https://docs.github.com/en/github/authenticating-to-github/generating-a-new-gpg-key diff --git a/docs/content/examples/tutorials/basic-installation.md b/docs/content/examples/tutorials/basic-installation.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/content/index.md b/docs/content/index.md new file mode 100644 index 00000000..8f0f6c57 --- /dev/null +++ b/docs/content/index.md @@ -0,0 +1,34 @@ +--- +title: Home +hide: + - navigation +--- + +# Welcome to the Documentation for `wg-easy` + +!!! info "This Documentation is Versioned" + + **Make sure** to select the correct version of this documentation! It should match the version of the image you are using. The default version corresponds to the `:latest` image tag - [the most recent stable release][docs-tagging]. + +This documentation provides you not only with the basic setup and configuration of wg-easy but also with advanced configuration, elaborate usage scenarios, detailed examples, hints and more. + +[docs-tagging]: ./usage.md#tagging-convention + +## About + +`wg-easy` is the easiest way to run WireGuard VPN + Web-based Admin UI. + +## Contents + +### Getting Started + +If you're new to wg-easy, make sure to read the [_Usage_ chapter][docs-usage] first. If you want to look at examples for Docker Run and Compose, we have an [_Examples_ page][docs-examples]. + +[docs-usage]: ./usage.md +[docs-examples]: ./examples/tutorials/basic-installation.md + +### Contributing + +We are always happy to welcome new contributors. For guidelines and entrypoints please have a look at the [Contributing section][docs-contributing]. + +[docs-contributing]: ./contributing/issues-and-pull-requests.md diff --git a/docs/content/usage.md b/docs/content/usage.md new file mode 100644 index 00000000..0d274de3 --- /dev/null +++ b/docs/content/usage.md @@ -0,0 +1,75 @@ +--- +title: Usage +hide: + - navigation +--- + +This page explains how to get started with wg-easy. The guide uses Docker Compose as a reference. In our examples, a volume mounts the named volume [`etc_wireguard`][docs::dms-volumes-config] to `/etc/wireguard` inside the container. + +[docs::dms-volumes-config]: ./config/advanced/optional-config.md#volumes-config + +## Preliminary Steps + +Before you can get started with deploying your own VPN, there are some requirements to be met: + +1. You need to have a host that you can manage. + +### Host Setup + +There are a few requirements for a suitable host system: + +TODO: Requirements + +!!! note "About the Container Runtime" + + On the host, you need to have a suitable container runtime (like _Docker_ or _Podman_) installed. We assume [_Docker Compose_][docker-compose] is [installed][docker-compose-installation]. We have aligned file names and configuration conventions with the latest [Docker Compose specification][docker-compose-specification]. + + If you're using podman, make sure to read the related [documentation][docs-podman]. + +[docker-compose]: https://docs.docker.com/compose/ +[docker-compose-installation]: https://docs.docker.com/compose/install/ +[docker-compose-specification]: https://docs.docker.com/compose/compose-file/ +[docs-podman]: ./config/advanced/podman.md + +## Deploying the Actual Image + +### Tagging Convention + +To understand which tags you should use, read this section carefully. [Our CI][github-ci] will automatically build, test and push new images to the following container registry: + +2. GitHub Container Registry ([`ghcr.io/wg-easy/wg-easy`][ghcr-image]) + +All workflows are using the tagging convention listed below. It is subsequently applied to all images. + +| Event | Image Tags | +|-------------------------|-------------------------------| +| `cron` on `master` | `nightly` | +| `push` a tag (`v1.2.3`) | `1.2.3`, `1.2`, `1`, `latest` | + +[github-ci]: https://github.com/wg-easy/wg-easy/actions +[ghcr-image]: https://github.com/wg-easy/wg-easy/pkgs/container/wg-easy + +### Get All Files + +Issue the following command to acquire the necessary file: + +``` BASH +wget "https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.yml" +``` + +### Configuration Steps + +1. First edit `docker-compose.yml` to your liking +2. Then configure the everything in the UI + +### Get Up and Running + +!!! danger "Using the Correct Commands For Stopping and Starting DMS" + + **Use `docker compose up / down`, not `docker compose start / stop`**. Otherwise, the container is not properly destroyed and you may experience problems during startup because of inconsistent state. + + Using `Ctrl+C` **is not supported either**! + +**That's it! It really is that easy**. + + diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml new file mode 100644 index 00000000..194e2a17 --- /dev/null +++ b/docs/mkdocs.yml @@ -0,0 +1,75 @@ +site_name: "wg-easy" +site_description: "The easiest way to run WireGuard VPN + Web-based Admin UI." +site_author: "wg-easy (Github Organization)" +copyright: '

© Wireguard Easy Organization
This project is licensed under the CC BY-NC-SA 4.0 license.

' + +repo_url: https://github.com/wg-easy/wg-easy +repo_name: wg-easy + +edit_uri: "edit/master/docs/content" + +docs_dir: "content/" + +site_url: https://wg-easy.github.io/wg-easy + +theme: + name: material + favicon: assets/logo/favicon.png + logo: assets/logo/logo.png + icon: + repo: fontawesome/brands/github + features: + - navigation.tabs + - navigation.top + - navigation.expand + - navigation.instant + - content.action.edit + - content.action.view + - content.code.annotate + palette: + # Light mode + - media: "(prefers-color-scheme: light)" + scheme: default + primary: grey + accent: red + toggle: + icon: material/weather-night + name: Switch to dark mode + # Dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: grey + accent: red + toggle: + icon: material/weather-sunny + name: Switch to light mode + +extra: + version: + provider: mike + +markdown_extensions: + - toc: + anchorlink: true + - abbr + - attr_list + - admonition + - pymdownx.details + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - pymdownx.tabbed: + alternate_style: true + slugify: !!python/object/apply:pymdownx.slugs.slugify + kwds: + case: lower + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.magiclink + - pymdownx.inlinehilite + - pymdownx.tilde + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg