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 |
|||
services: |
|||
traefik: |
|||
image: traefik:3.3 |
|||
container_name: traefik |
|||
restart: unless-stopped |
|||
ports: |
|||
- "80:80" |
|||
- "443:443/tcp" |
|||
- "443:443/udp" |
|||
volumes: |
|||
- /var/run/docker.sock:/var/run/docker.sock |
|||
- /etc/docker/volumes/traefik/traefik.yml:/traefik.yml:ro |
|||
- /etc/docker/volumes/traefik/traefik_dynamic.yml:/traefik_dynamic.yml:ro |
|||
- /etc/docker/volumes/traefik/acme.json:/acme.json |
|||
networks: |
|||
- traefik |
|||
traefik: |
|||
image: traefik:3.3 |
|||
container_name: traefik |
|||
restart: unless-stopped |
|||
ports: |
|||
- '80:80' |
|||
- '443:443/tcp' |
|||
- '443:443/udp' |
|||
volumes: |
|||
- /var/run/docker.sock:/var/run/docker.sock |
|||
- /etc/docker/volumes/traefik/traefik.yml:/traefik.yml:ro |
|||
- /etc/docker/volumes/traefik/traefik_dynamic.yml:/traefik_dynamic.yml:ro |
|||
- /etc/docker/volumes/traefik/acme.json:/acme.json |
|||
networks: |
|||
- traefik |
|||
|
|||
networks: |
|||
traefik: |
|||
external: true |
|||
traefik: |
|||
external: true |
|||
``` |
|||
|
|||
## Create traefik.yml |
|||
@ -47,47 +47,47 @@ File: `/etc/docker/volumes/traefik/traefik.yml` |
|||
|
|||
```yaml |
|||
log: |
|||
level: INFO |
|||
level: INFO |
|||
|
|||
entryPoints: |
|||
web: |
|||
address: ":80/tcp" |
|||
http: |
|||
redirections: |
|||
entryPoint: |
|||
to: websecure |
|||
scheme: https |
|||
websecure: |
|||
address: ":443/tcp" |
|||
http: |
|||
middlewares: |
|||
- compress@file |
|||
- hsts@file |
|||
tls: |
|||
certResolver: letsencrypt |
|||
http3: {} |
|||
web: |
|||
address: ':80/tcp' |
|||
http: |
|||
redirections: |
|||
entryPoint: |
|||
to: websecure |
|||
scheme: https |
|||
websecure: |
|||
address: ':443/tcp' |
|||
http: |
|||
middlewares: |
|||
- compress@file |
|||
- hsts@file |
|||
tls: |
|||
certResolver: letsencrypt |
|||
http3: {} |
|||
|
|||
api: |
|||
dashboard: true |
|||
dashboard: true |
|||
|
|||
certificatesResolvers: |
|||
letsencrypt: |
|||
acme: |
|||
email: [email protected]$ |
|||
storage: acme.json |
|||
httpChallenge: |
|||
entryPoint: web |
|||
letsencrypt: |
|||
acme: |
|||
email: [email protected]$ |
|||
storage: acme.json |
|||
httpChallenge: |
|||
entryPoint: web |
|||
|
|||
providers: |
|||
docker: |
|||
watch: true |
|||
network: traefik |
|||
exposedByDefault: false |
|||
file: |
|||
filename: traefik_dynamic.yml |
|||
docker: |
|||
watch: true |
|||
network: traefik |
|||
exposedByDefault: false |
|||
file: |
|||
filename: traefik_dynamic.yml |
|||
|
|||
serversTransport: |
|||
insecureSkipVerify: true |
|||
insecureSkipVerify: true |
|||
``` |
|||
|
|||
## Create traefik_dynamic.yml |
|||
@ -96,33 +96,33 @@ File: `/etc/docker/volumes/traefik/traefik_dynamic.yml` |
|||
|
|||
```yaml |
|||
http: |
|||
middlewares: |
|||
services: |
|||
basicAuth: |
|||
users: |
|||
- "$username$:$password$" |
|||
compress: |
|||
compress: {} |
|||
hsts: |
|||
headers: |
|||
stsSeconds: 2592000 |
|||
routers: |
|||
api: |
|||
rule: Host(`traefik.$example.com$`) |
|||
entrypoints: |
|||
- websecure |
|||
middlewares: |
|||
- services |
|||
service: api@internal |
|||
middlewares: |
|||
services: |
|||
basicAuth: |
|||
users: |
|||
- '$username$:$password$' |
|||
compress: |
|||
compress: {} |
|||
hsts: |
|||
headers: |
|||
stsSeconds: 2592000 |
|||
routers: |
|||
api: |
|||
rule: Host(`traefik.$example.com$`) |
|||
entrypoints: |
|||
- websecure |
|||
middlewares: |
|||
- services |
|||
service: api@internal |
|||
|
|||
tls: |
|||
options: |
|||
default: |
|||
cipherSuites: |
|||
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 |
|||
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 |
|||
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 |
|||
sniStrict: true |
|||
options: |
|||
default: |
|||
cipherSuites: |
|||
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 |
|||
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 |
|||
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 |
|||
sniStrict: true |
|||
``` |
|||
|
|||
## 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_description: "The easiest way to run WireGuard VPN + Web-based Admin UI." |
|||
site_author: "WireGuard Easy" |
|||
site_name: 'wg-easy' |
|||
site_description: 'The easiest way to run WireGuard VPN + Web-based Admin UI.' |
|||
site_author: 'WireGuard Easy' |
|||
copyright: > |
|||
<p> |
|||
© <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 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> |
|||
</p> |
|||
<p> |
|||
© <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 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> |
|||
</p> |
|||
|
|||
repo_url: https://github.com/wg-easy/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 |
|||
|
|||
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 |
|||
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 |
|||
version: |
|||
provider: mike |
|||
|
|||
markdown_extensions: |
|||
- toc: |
|||
anchorlink: true |
|||
- abbr |
|||
- attr_list |
|||
- pymdownx.blocks.admonition: |
|||
types: |
|||
- danger |
|||
- note |
|||
- info |
|||
- question |
|||
- warning |
|||
- 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 |
|||
- toc: |
|||
anchorlink: true |
|||
- abbr |
|||
- attr_list |
|||
- pymdownx.blocks.admonition: |
|||
types: |
|||
- danger |
|||
- note |
|||
- info |
|||
- question |
|||
- warning |
|||
- 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 |
|||
|
|||
Loading…
Reference in new issue