mirror of https://github.com/h44z/wg-portal.git
				
				
				
			prepare for v2 release
This commit is contained in:
		
							parent
							
								
									020ebb64e7
								
							
						
					
					
						commit
						2c8304417b
					
				|  | @ -4,7 +4,7 @@ on: | ||||||
|   pull_request: |   pull_request: | ||||||
|     branches: [master] |     branches: [master] | ||||||
|   push: |   push: | ||||||
|     branches: [master, stable] |     branches: [master, stable, legacy] | ||||||
|     # Publish vX.X.X tags as releases. |     # Publish vX.X.X tags as releases. | ||||||
|     tags: ["v*.*.*"] |     tags: ["v*.*.*"] | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,11 @@ name: github-pages | ||||||
| on: | on: | ||||||
|   push: |   push: | ||||||
|     branches: [master] |     branches: [master] | ||||||
|     tags: ["v*"] |     tags: | ||||||
|  |       - 'v*' | ||||||
|  |       - '!v*-alpha*' | ||||||
|  |       - '!v*-beta*' | ||||||
|  |       - '!v*-rc*' | ||||||
| 
 | 
 | ||||||
| permissions: | permissions: | ||||||
|   contents: write |   contents: write | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								README.md
								
								
								
								
							
							
						
						
									
										19
									
								
								README.md
								
								
								
								
							|  | @ -1,4 +1,4 @@ | ||||||
| # WireGuard Portal (v2 - testing) | # WireGuard Portal v2 | ||||||
| 
 | 
 | ||||||
| [](https://github.com/h44z/wg-portal/actions/workflows/docker-publish.yml) | [](https://github.com/h44z/wg-portal/actions/workflows/docker-publish.yml) | ||||||
| [](https://opensource.org/licenses/MIT) | [](https://opensource.org/licenses/MIT) | ||||||
|  | @ -8,14 +8,6 @@ | ||||||
|  |  | ||||||
| [](https://hub.docker.com/r/wgportal/wg-portal/) | [](https://hub.docker.com/r/wgportal/wg-portal/) | ||||||
| 
 | 
 | ||||||
| > [!CAUTION] |  | ||||||
| > Version 2 is currently under development and may contain bugs and breaking changes. |  | ||||||
| > It is not advised to use this version in production. Use version [v1](https://github.com/h44z/wg-portal/tree/stable) instead. |  | ||||||
| 
 |  | ||||||
| > [!IMPORTANT] |  | ||||||
| > Since the project was accepted by the Docker-Sponsored Open Source Program, the Docker image location has moved to [wgportal/wg-portal](https://hub.docker.com/r/wgportal/wg-portal). |  | ||||||
| > Please update the Docker image from **h44z/wg-portal** to **wgportal/wg-portal**. |  | ||||||
| 
 |  | ||||||
| ## Introduction | ## Introduction | ||||||
| <!-- Text from this line # is included in docs/documentation/overview.md --> | <!-- Text from this line # is included in docs/documentation/overview.md --> | ||||||
| **WireGuard Portal** is a simple, web-based configuration portal for [WireGuard](https://wireguard.com) server management. | **WireGuard Portal** is a simple, web-based configuration portal for [WireGuard](https://wireguard.com) server management. | ||||||
|  | @ -23,7 +15,7 @@ The portal uses the WireGuard [wgctrl](https://github.com/WireGuard/wgctrl-go) l | ||||||
| interfaces. This allows for the seamless activation or deactivation of new users without disturbing existing VPN | interfaces. This allows for the seamless activation or deactivation of new users without disturbing existing VPN | ||||||
| connections. | connections. | ||||||
| 
 | 
 | ||||||
| The configuration portal supports using a database (SQLite, MySQL, MsSQL or Postgres), OAuth or LDAP | The configuration portal supports using a database (SQLite, MySQL, MsSQL, or Postgres), OAuth or LDAP | ||||||
| (Active Directory or OpenLDAP) as a user source for authentication and profile data. | (Active Directory or OpenLDAP) as a user source for authentication and profile data. | ||||||
| 
 | 
 | ||||||
| ## Features | ## Features | ||||||
|  | @ -44,7 +36,7 @@ The configuration portal supports using a database (SQLite, MySQL, MsSQL or Post | ||||||
| * Handles route and DNS settings like wg-quick does | * Handles route and DNS settings like wg-quick does | ||||||
| * Exposes Prometheus metrics for monitoring and alerting | * Exposes Prometheus metrics for monitoring and alerting | ||||||
| * REST API for management and client deployment | * REST API for management and client deployment | ||||||
| * Webhook for custom actions on peer, interface or user updates | * Webhook for custom actions on peer, interface, or user updates | ||||||
| 
 | 
 | ||||||
| <!-- Text to this line # is included in docs/documentation/overview.md --> | <!-- Text to this line # is included in docs/documentation/overview.md --> | ||||||
|  |  | ||||||
|  | @ -68,3 +60,8 @@ For the complete documentation visit [wgportal.org](https://wgportal.org). | ||||||
| ## License | ## License | ||||||
| 
 | 
 | ||||||
| * MIT License. [MIT](LICENSE.txt) or <https://opensource.org/licenses/MIT> | * MIT License. [MIT](LICENSE.txt) or <https://opensource.org/licenses/MIT> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | > [!IMPORTANT] | ||||||
|  | > Since the project was accepted by the Docker-Sponsored Open Source Program, the Docker image location has moved to [wgportal/wg-portal](https://hub.docker.com/r/wgportal/wg-portal). | ||||||
|  | > Please update the Docker image from **h44z/wg-portal** to **wgportal/wg-portal**. | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| --- | --- | ||||||
| services: | services: | ||||||
|   wg-portal: |   wg-portal: | ||||||
|     image: wgportal/wg-portal:latest |     image: wgportal/wg-portal:v2 | ||||||
|     container_name: wg-portal |     container_name: wg-portal | ||||||
|     restart: unless-stopped |     restart: unless-stopped | ||||||
|     logging: |     logging: | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ You can supply these configurations in a **YAML** file (e.g. `config.yaml`) when | ||||||
| The path of the configuration file defaults to **config/config.yaml** (or config/config.yml) in the working directory of the executable.   | The path of the configuration file defaults to **config/config.yaml** (or config/config.yml) in the working directory of the executable.   | ||||||
| It is possible to override configuration filepath using the environment variable `WG_PORTAL_CONFIG`. | It is possible to override configuration filepath using the environment variable `WG_PORTAL_CONFIG`. | ||||||
| For example: `WG_PORTAL_CONFIG=/etc/wg-portal/config.yaml ./wg-portal`.   | For example: `WG_PORTAL_CONFIG=/etc/wg-portal/config.yaml ./wg-portal`.   | ||||||
| Also, environment variable substitution in config file is supported. Refer to [syntax](https://github.com/a8m/envsubst?tab=readme-ov-file#docs). | Also, environment variable substitution in the config file is supported. Refer to [syntax](https://github.com/a8m/envsubst?tab=readme-ov-file#docs). | ||||||
| 
 | 
 | ||||||
| Configuration examples are available on the [Examples](./examples.md) page. | Configuration examples are available on the [Examples](./examples.md) page. | ||||||
| 
 | 
 | ||||||
|  | @ -15,6 +15,7 @@ Configuration examples are available on the [Examples](./examples.md) page. | ||||||
| core: | core: | ||||||
|   admin_user: admin@wgportal.local |   admin_user: admin@wgportal.local | ||||||
|   admin_password: wgportal |   admin_password: wgportal | ||||||
|  |   admin_api_token: "" | ||||||
|   editable_keys: true |   editable_keys: true | ||||||
|   create_default_peer: false |   create_default_peer: false | ||||||
|   create_default_peer_on_creation: false |   create_default_peer_on_creation: false | ||||||
|  | @ -35,6 +36,7 @@ advanced: | ||||||
|   config_storage_path: "" |   config_storage_path: "" | ||||||
|   expiry_check_interval: 15m |   expiry_check_interval: 15m | ||||||
|   rule_prio_offset: 20000 |   rule_prio_offset: 20000 | ||||||
|  |   route_table_offset: 20000 | ||||||
|   api_admin_only: true |   api_admin_only: true | ||||||
| 
 | 
 | ||||||
| database: | database: | ||||||
|  | @ -42,6 +44,7 @@ database: | ||||||
|   slow_query_threshold: "0" |   slow_query_threshold: "0" | ||||||
|   type: sqlite |   type: sqlite | ||||||
|   dsn: data/sqlite.db |   dsn: data/sqlite.db | ||||||
|  |   encryption_passphrase: "" | ||||||
| 
 | 
 | ||||||
| statistics: | statistics: | ||||||
|   use_ping_checks: true |   use_ping_checks: true | ||||||
|  | @ -79,6 +82,7 @@ web: | ||||||
|   session_secret: very_secret |   session_secret: very_secret | ||||||
|   csrf_secret: extremely_secret |   csrf_secret: extremely_secret | ||||||
|   request_logging: false |   request_logging: false | ||||||
|  |   expose_host_info: false | ||||||
|   cert_file: "" |   cert_file: "" | ||||||
|   key_File: "" |   key_File: "" | ||||||
| 
 | 
 | ||||||
|  | @ -607,6 +611,10 @@ Without a valid `external_url`, the login process may fail due to CSRF protectio | ||||||
| - **Default:** `false` | - **Default:** `false` | ||||||
| - **Description:** Log all HTTP requests. | - **Description:** Log all HTTP requests. | ||||||
| 
 | 
 | ||||||
|  | ### `expose_host_info` | ||||||
|  | - **Default:** `false` | ||||||
|  | - **Description:** Expose the hostname and version of the WireGuard Portal server in an HTTP header. This is useful for debugging but may expose sensitive information. | ||||||
|  | 
 | ||||||
| ### `cert_file` | ### `cert_file` | ||||||
| - **Default:** *(empty)* | - **Default:** *(empty)* | ||||||
| - **Description:** (Optional) Path to the TLS certificate file. | - **Description:** (Optional) Path to the TLS certificate file. | ||||||
|  |  | ||||||
|  | @ -3,23 +3,31 @@ These binary versions can be manually downloaded and installed. | ||||||
| 
 | 
 | ||||||
| ## Download | ## Download | ||||||
| 
 | 
 | ||||||
|  | Make sure that you download the correct binary for your architecture. The available binaries are: | ||||||
|  | 
 | ||||||
|  | - `wg-portal_linux_amd64` - Linux x86_64 | ||||||
|  | - `wg-portal_linux_arm64` - Linux ARM 64-bit | ||||||
|  | - `wg-portal_linux_arm_v7` - Linux ARM 32-bit | ||||||
|  | 
 | ||||||
| With `curl`: | With `curl`: | ||||||
| 
 | 
 | ||||||
|   ```shell | ```shell | ||||||
|   curl -L -o wg-portal https://github.com/h44z/wg-portal/releases/download/${WG_PORTAL_VERSION}/wg-portal_linux_amd64  | curl -L -o wg-portal https://github.com/h44z/wg-portal/releases/download/${WG_PORTAL_VERSION}/wg-portal_linux_amd64  | ||||||
|   ``` | ``` | ||||||
| 
 | 
 | ||||||
| With `wget`: | With `wget`: | ||||||
| 
 | 
 | ||||||
|   ```shell | ```shell | ||||||
|   wget -O wg-portal https://github.com/h44z/wg-portal/releases/download/${WG_PORTAL_VERSION}/wg-portal_linux_amd64 | wget -O wg-portal https://github.com/h44z/wg-portal/releases/download/${WG_PORTAL_VERSION}/wg-portal_linux_amd64 | ||||||
|   ``` | ``` | ||||||
| 
 | 
 | ||||||
| with `gh cli`: | with `gh cli`: | ||||||
| 
 | 
 | ||||||
|   ```shell | ```shell | ||||||
|   gh release download ${WG_PORTAL_VERSION} --repo h44z/wg-portal --output wg-portal --pattern '*amd64' | gh release download ${WG_PORTAL_VERSION} --repo h44z/wg-portal --output wg-portal --pattern '*amd64' | ||||||
|   ``` | ``` | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| ## Install | ## Install | ||||||
| 
 | 
 | ||||||
|  | @ -28,7 +36,7 @@ sudo mkdir -p /opt/wg-portal | ||||||
| sudo install wg-portal /opt/wg-portal/ | sudo install wg-portal /opt/wg-portal/ | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ## Unreleased | ## Unreleased versions (master branch builds) | ||||||
|  | 
 | ||||||
|  | Unreleased versions can be fetched directly from the artifacts section of the [GitHub Workflow](https://github.com/h44z/wg-portal/actions/workflows/docker-publish.yml?query=branch%3Amaster). | ||||||
| 
 | 
 | ||||||
| Unreleased versions could be downloaded from |  | ||||||
| [GitHub Workflow](https://github.com/h44z/wg-portal/actions/workflows/docker-publish.yml?query=branch%3Amaster) artifacts also. |  | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ The recommended method for deploying WireGuard Portal is via Docker Compose for | ||||||
| A sample docker-compose.yml (managing WireGuard interfaces directly on the host) is provided below: | A sample docker-compose.yml (managing WireGuard interfaces directly on the host) is provided below: | ||||||
| 
 | 
 | ||||||
| ```yaml | ```yaml | ||||||
| --8<-- "docker-compose.yml::17" | --8<-- "docker-compose.yml::18" | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| By default, the webserver is listening on port **8888**. | By default, the webserver is listening on port **8888**. | ||||||
|  | @ -39,7 +39,7 @@ WireGuard Portal supports managing WireGuard interfaces through three distinct d | ||||||
|    ```yaml |    ```yaml | ||||||
|    services: |    services: | ||||||
|      wg-portal: |      wg-portal: | ||||||
|        image: wgportal/wg-portal:latest |        image: wgportal/wg-portal:v2 | ||||||
|        container_name: wg-portal |        container_name: wg-portal | ||||||
|        ... |        ... | ||||||
|        cap_add: |        cap_add: | ||||||
|  | @ -65,7 +65,7 @@ WireGuard Portal supports managing WireGuard interfaces through three distinct d | ||||||
|    ```yaml |    ```yaml | ||||||
|    services: |    services: | ||||||
|      wg-portal: |      wg-portal: | ||||||
|        image: wgportal/wg-portal:latest |        image: wgportal/wg-portal:v2 | ||||||
|        container_name: wg-portal |        container_name: wg-portal | ||||||
|        ... |        ... | ||||||
|        cap_add: |        cap_add: | ||||||
|  | @ -118,11 +118,11 @@ These are official releases of WireGuard Portal. They correspond to the GitHub t | ||||||
| 
 | 
 | ||||||
| Once these tags show up in this repository, they will never change. | Once these tags show up in this repository, they will never change. | ||||||
| 
 | 
 | ||||||
| For production deployments of WireGuard Portal, we strongly recommend using one of these tags, e.g. **wgportal/wg-portal:1.0.19**, instead of the latest or canary tags. | For production deployments of WireGuard Portal, we strongly recommend using one of these tags, e.g. **wgportal/wg-portal:2.0.0**, instead of the latest or canary tags. | ||||||
| 
 | 
 | ||||||
| If you only want to stay at the same major or major+minor version, use either `v[MAJOR]` or `[MAJOR].[MINOR]` tags. For example `v1` or `1.0`. | If you only want to stay at the same major or major+minor version, use either `v[MAJOR]` or `[MAJOR].[MINOR]` tags. For example `v2` or `2.0`. | ||||||
| 
 | 
 | ||||||
| Version **1** is currently **stable**, version **2** is in **development**. | Version **2** is the current stable release. Version **1** has moved to legacy status and is no longer recommended. | ||||||
| 
 | 
 | ||||||
| #### latest | #### latest | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -44,7 +44,7 @@ services: | ||||||
|       - 'traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https' |       - 'traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https' | ||||||
| 
 | 
 | ||||||
|   wg-portal: |   wg-portal: | ||||||
|     image: wgportal/wg-portal:latest |     image: wgportal/wg-portal:v2 | ||||||
|     container_name: wg-portal |     container_name: wg-portal | ||||||
|     restart: unless-stopped |     restart: unless-stopped | ||||||
|     logging: |     logging: | ||||||
|  |  | ||||||
|  | @ -13,7 +13,7 @@ By default, WG-Portal exposes Prometheus metrics on port `8787` if interface/pee | ||||||
| 
 | 
 | ||||||
| ## Prometheus Config | ## Prometheus Config | ||||||
| 
 | 
 | ||||||
| Add following scrape job to your Prometheus config file: | Add the following scrape job to your Prometheus config file: | ||||||
| 
 | 
 | ||||||
| ```yaml | ```yaml | ||||||
| # prometheus.yaml | # prometheus.yaml | ||||||
|  |  | ||||||
|  | @ -1 +1 @@ | ||||||
| --8<-- "README.md:20:47" | --8<-- "README.md:12:41" | ||||||
|  |  | ||||||
|  | @ -1,5 +1,4 @@ | ||||||
| For production deployments of WireGuard Portal, we strongly recommend using version 1. | Major upgrades between different versions may require special procedures, which are described in the following sections. | ||||||
| If you want to use version 2, please be aware that it is still a release candidate and not yet fully stable. |  | ||||||
| 
 | 
 | ||||||
| ## Upgrade from v1 to v2 | ## Upgrade from v1 to v2 | ||||||
| 
 | 
 | ||||||
|  | @ -29,7 +28,7 @@ If you are using Docker, you can adapt the docker-compose.yml file to start the | ||||||
| ```yaml | ```yaml | ||||||
| services: | services: | ||||||
|   wg-portal: |   wg-portal: | ||||||
|     image: wgportal/wg-portal:latest |     image: wgportal/wg-portal:v2 | ||||||
|     # ... other settings |     # ... other settings | ||||||
|     restart: no |     restart: no | ||||||
|     command: ["-migrateFrom=/app/data/wg_portal.db"] |     command: ["-migrateFrom=/app/data/wg_portal.db"] | ||||||
|  |  | ||||||
|  | @ -30,6 +30,15 @@ plugins: | ||||||
|   - minify: |   - minify: | ||||||
|       minify_html: true |       minify_html: true | ||||||
|   - swagger-ui-tag |   - swagger-ui-tag | ||||||
|  |   - mike: | ||||||
|  |       # These fields are all optional; the defaults are as below... | ||||||
|  |       alias_type: symlink | ||||||
|  |       redirect_template: null | ||||||
|  |       deploy_prefix: '' | ||||||
|  |       canonical_version: null | ||||||
|  |       version_selector: true | ||||||
|  |       css_dir: css | ||||||
|  |       javascript_dir: js | ||||||
| 
 | 
 | ||||||
| extra: | extra: | ||||||
|   version: |   version: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue