mirror of https://github.com/wg-easy/wg-easy
19 changed files with 338 additions and 258 deletions
@ -0,0 +1,5 @@ |
|||||
|
{ |
||||
|
"tabWidth": 4, |
||||
|
"semi": true, |
||||
|
"singleQuote": true |
||||
|
} |
||||
@ -0,0 +1,31 @@ |
|||||
|
--- |
||||
|
title: No Reverse Proxy |
||||
|
--- |
||||
|
|
||||
|
# asd |
||||
|
|
||||
|
/// warning | Insecure |
||||
|
|
||||
|
This is insecure. You should use a reverse proxy to secure the connection. |
||||
|
|
||||
|
Only use this method if you know what you are doing. |
||||
|
/// |
||||
|
|
||||
|
If you only allow access to the web UI from your local network, you can skip the reverse proxy setup. This is not recommended, but it is possible. |
||||
|
|
||||
|
## Setup |
||||
|
|
||||
|
- Edit the `docker-compose.yml` file and uncomment `environment` and `INSECURE` |
||||
|
|
||||
|
- Set `INSECURE` to `true` to allow access to the web UI over a non-secure connection. |
||||
|
|
||||
|
- The `docker-compose.yml` file should look something like this: |
||||
|
|
||||
|
```yaml |
||||
|
environment: |
||||
|
- INSECURE=true |
||||
|
``` |
||||
|
|
||||
|
- Save the file and restart `wg-easy`. |
||||
|
|
||||
|
- Make sure that the Web UI is not accessible from outside your local network. |
||||
@ -20,25 +20,25 @@ File: `/etc/docker/containers/traefik/docker-compose.yml` |
|||||
|
|
||||
```yaml |
```yaml |
||||
services: |
services: |
||||
traefik: |
traefik: |
||||
image: traefik:3.3 |
image: traefik:3.3 |
||||
container_name: traefik |
container_name: traefik |
||||
restart: unless-stopped |
restart: unless-stopped |
||||
ports: |
ports: |
||||
- "80:80" |
- '80:80' |
||||
- "443:443/tcp" |
- '443:443/tcp' |
||||
- "443:443/udp" |
- '443:443/udp' |
||||
volumes: |
volumes: |
||||
- /var/run/docker.sock:/var/run/docker.sock |
- /var/run/docker.sock:/var/run/docker.sock |
||||
- /etc/docker/volumes/traefik/traefik.yml:/traefik.yml:ro |
- /etc/docker/volumes/traefik/traefik.yml:/traefik.yml:ro |
||||
- /etc/docker/volumes/traefik/traefik_dynamic.yml:/traefik_dynamic.yml:ro |
- /etc/docker/volumes/traefik/traefik_dynamic.yml:/traefik_dynamic.yml:ro |
||||
- /etc/docker/volumes/traefik/acme.json:/acme.json |
- /etc/docker/volumes/traefik/acme.json:/acme.json |
||||
networks: |
networks: |
||||
- traefik |
- traefik |
||||
|
|
||||
networks: |
networks: |
||||
traefik: |
traefik: |
||||
external: true |
external: true |
||||
``` |
``` |
||||
|
|
||||
## Create traefik.yml |
## Create traefik.yml |
||||
@ -47,47 +47,47 @@ File: `/etc/docker/volumes/traefik/traefik.yml` |
|||||
|
|
||||
```yaml |
```yaml |
||||
log: |
log: |
||||
level: INFO |
level: INFO |
||||
|
|
||||
entryPoints: |
entryPoints: |
||||
web: |
web: |
||||
address: ":80/tcp" |
address: ':80/tcp' |
||||
http: |
http: |
||||
redirections: |
redirections: |
||||
entryPoint: |
entryPoint: |
||||
to: websecure |
to: websecure |
||||
scheme: https |
scheme: https |
||||
websecure: |
websecure: |
||||
address: ":443/tcp" |
address: ':443/tcp' |
||||
http: |
http: |
||||
middlewares: |
middlewares: |
||||
- compress@file |
- compress@file |
||||
- hsts@file |
- hsts@file |
||||
tls: |
tls: |
||||
certResolver: letsencrypt |
certResolver: letsencrypt |
||||
http3: {} |
http3: {} |
||||
|
|
||||
api: |
api: |
||||
dashboard: true |
dashboard: true |
||||
|
|
||||
certificatesResolvers: |
certificatesResolvers: |
||||
letsencrypt: |
letsencrypt: |
||||
acme: |
acme: |
||||
email: [email protected]$ |
email: [email protected]$ |
||||
storage: acme.json |
storage: acme.json |
||||
httpChallenge: |
httpChallenge: |
||||
entryPoint: web |
entryPoint: web |
||||
|
|
||||
providers: |
providers: |
||||
docker: |
docker: |
||||
watch: true |
watch: true |
||||
network: traefik |
network: traefik |
||||
exposedByDefault: false |
exposedByDefault: false |
||||
file: |
file: |
||||
filename: traefik_dynamic.yml |
filename: traefik_dynamic.yml |
||||
|
|
||||
serversTransport: |
serversTransport: |
||||
insecureSkipVerify: true |
insecureSkipVerify: true |
||||
``` |
``` |
||||
|
|
||||
## Create traefik_dynamic.yml |
## Create traefik_dynamic.yml |
||||
@ -96,33 +96,33 @@ File: `/etc/docker/volumes/traefik/traefik_dynamic.yml` |
|||||
|
|
||||
```yaml |
```yaml |
||||
http: |
http: |
||||
middlewares: |
middlewares: |
||||
services: |
services: |
||||
basicAuth: |
basicAuth: |
||||
users: |
users: |
||||
- "$username$:$password$" |
- '$username$:$password$' |
||||
compress: |
compress: |
||||
compress: {} |
compress: {} |
||||
hsts: |
hsts: |
||||
headers: |
headers: |
||||
stsSeconds: 2592000 |
stsSeconds: 2592000 |
||||
routers: |
routers: |
||||
api: |
api: |
||||
rule: Host(`traefik.$example.com$`) |
rule: Host(`traefik.$example.com$`) |
||||
entrypoints: |
entrypoints: |
||||
- websecure |
- websecure |
||||
middlewares: |
middlewares: |
||||
- services |
- services |
||||
service: api@internal |
service: api@internal |
||||
|
|
||||
tls: |
tls: |
||||
options: |
options: |
||||
default: |
default: |
||||
cipherSuites: |
cipherSuites: |
||||
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 |
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 |
||||
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 |
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 |
||||
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 |
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 |
||||
sniStrict: true |
sniStrict: true |
||||
``` |
``` |
||||
|
|
||||
## Create acme.json |
## Create acme.json |
||||
|
|||||
@ -1,5 +0,0 @@ |
|||||
--- |
|
||||
title: Edit Account |
|
||||
--- |
|
||||
|
|
||||
TODO |
|
||||
@ -1,5 +0,0 @@ |
|||||
--- |
|
||||
title: Login |
|
||||
--- |
|
||||
|
|
||||
TODO |
|
||||
@ -1,87 +1,87 @@ |
|||||
site_name: "wg-easy" |
site_name: 'wg-easy' |
||||
site_description: "The easiest way to run WireGuard VPN + Web-based Admin UI." |
site_description: 'The easiest way to run WireGuard VPN + Web-based Admin UI.' |
||||
site_author: "WireGuard Easy" |
site_author: 'WireGuard Easy' |
||||
copyright: > |
copyright: > |
||||
<p> |
<p> |
||||
© <a href="https://github.com/wg-easy"><em>Wireguard Easy</em></a><br/> |
© <a href="https://github.com/wg-easy"><em>Wireguard Easy</em></a><br/> |
||||
<span>This project is licensed under AGPL-3.0-only.</span><br/> |
<span>This project is licensed under AGPL-3.0-only.</span><br/> |
||||
<span>This project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Jason A. Donenfeld, ZX2C4 or Edge Security</span><br/> |
<span>This project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Jason A. Donenfeld, ZX2C4 or Edge Security</span><br/> |
||||
<span>"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld</span> |
<span>"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld</span> |
||||
</p> |
</p> |
||||
|
|
||||
repo_url: https://github.com/wg-easy/wg-easy |
repo_url: https://github.com/wg-easy/wg-easy |
||||
repo_name: wg-easy |
repo_name: wg-easy |
||||
|
|
||||
edit_uri: "edit/master/docs/content" |
edit_uri: 'edit/master/docs/content' |
||||
|
|
||||
docs_dir: "content/" |
docs_dir: 'content/' |
||||
|
|
||||
site_url: https://wg-easy.github.io/wg-easy |
site_url: https://wg-easy.github.io/wg-easy |
||||
|
|
||||
theme: |
theme: |
||||
name: material |
name: material |
||||
favicon: assets/logo/favicon.png |
favicon: assets/logo/favicon.png |
||||
logo: assets/logo/logo.png |
logo: assets/logo/logo.png |
||||
icon: |
icon: |
||||
repo: fontawesome/brands/github |
repo: fontawesome/brands/github |
||||
features: |
features: |
||||
- navigation.tabs |
- navigation.tabs |
||||
- navigation.top |
- navigation.top |
||||
- navigation.expand |
- navigation.expand |
||||
- navigation.instant |
- navigation.instant |
||||
- content.action.edit |
- content.action.edit |
||||
- content.action.view |
- content.action.view |
||||
- content.code.annotate |
- content.code.annotate |
||||
palette: |
palette: |
||||
# Light mode |
# Light mode |
||||
- media: "(prefers-color-scheme: light)" |
- media: '(prefers-color-scheme: light)' |
||||
scheme: default |
scheme: default |
||||
primary: grey |
primary: grey |
||||
accent: red |
accent: red |
||||
toggle: |
toggle: |
||||
icon: material/weather-night |
icon: material/weather-night |
||||
name: Switch to dark mode |
name: Switch to dark mode |
||||
# Dark mode |
# Dark mode |
||||
- media: "(prefers-color-scheme: dark)" |
- media: '(prefers-color-scheme: dark)' |
||||
scheme: slate |
scheme: slate |
||||
primary: grey |
primary: grey |
||||
accent: red |
accent: red |
||||
toggle: |
toggle: |
||||
icon: material/weather-sunny |
icon: material/weather-sunny |
||||
name: Switch to light mode |
name: Switch to light mode |
||||
|
|
||||
extra: |
extra: |
||||
version: |
version: |
||||
provider: mike |
provider: mike |
||||
|
|
||||
markdown_extensions: |
markdown_extensions: |
||||
- toc: |
- toc: |
||||
anchorlink: true |
anchorlink: true |
||||
- abbr |
- abbr |
||||
- attr_list |
- attr_list |
||||
- pymdownx.blocks.admonition: |
- pymdownx.blocks.admonition: |
||||
types: |
types: |
||||
- danger |
- danger |
||||
- note |
- note |
||||
- info |
- info |
||||
- question |
- question |
||||
- warning |
- warning |
||||
- pymdownx.details |
- pymdownx.details |
||||
- pymdownx.superfences: |
- pymdownx.superfences: |
||||
custom_fences: |
custom_fences: |
||||
- name: mermaid |
- name: mermaid |
||||
class: mermaid |
class: mermaid |
||||
format: !!python/name:pymdownx.superfences.fence_code_format |
format: !!python/name:pymdownx.superfences.fence_code_format |
||||
- pymdownx.tabbed: |
- pymdownx.tabbed: |
||||
alternate_style: true |
alternate_style: true |
||||
slugify: !!python/object/apply:pymdownx.slugs.slugify |
slugify: !!python/object/apply:pymdownx.slugs.slugify |
||||
kwds: |
kwds: |
||||
case: lower |
case: lower |
||||
- pymdownx.tasklist: |
- pymdownx.tasklist: |
||||
custom_checkbox: true |
custom_checkbox: true |
||||
- pymdownx.magiclink |
- pymdownx.magiclink |
||||
- pymdownx.inlinehilite |
- pymdownx.inlinehilite |
||||
- pymdownx.tilde |
- pymdownx.tilde |
||||
- pymdownx.emoji: |
- pymdownx.emoji: |
||||
emoji_index: !!python/name:material.extensions.emoji.twemoji |
emoji_index: !!python/name:material.extensions.emoji.twemoji |
||||
emoji_generator: !!python/name:material.extensions.emoji.to_svg |
emoji_generator: !!python/name:material.extensions.emoji.to_svg |
||||
|
|||||
Loading…
Reference in new issue