From 4f153afb0f9822a319472d0d2f07ab9d36ce807b Mon Sep 17 00:00:00 2001 From: Matthias Borremans Date: Sun, 23 May 2021 09:45:43 +0200 Subject: [PATCH] Add Community Guide - Swag Typo in starting-dev-server.md Add swag.md with guide to setup reverse proxy --- docs/docs/community-guide/swag.md | 89 +++++++++++++++++++ .../developers-guide/starting-dev-server.md | 2 +- docs/docs/overrides/api.html | 2 +- docs/mkdocs.yml | 2 + 4 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 docs/docs/community-guide/swag.md diff --git a/docs/docs/community-guide/swag.md b/docs/docs/community-guide/swag.md new file mode 100644 index 000000000..62e70df2b --- /dev/null +++ b/docs/docs/community-guide/swag.md @@ -0,0 +1,89 @@ +# Using SWAG as Reverse Proxy + +To make the setup of a Reverse Proxy much easier, Linuxserver.io developed [SWAG](https://github.com/linuxserver/docker-swag) +SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encryptâ„¢) sets up an Nginx web server and reverse proxy with PHP support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention. + +## Step 1: Get a domain + +The first step is to grab a dynamic DNS if you don't have your own subdomain already. You can get this from for example [DuckDNS](https://www.duckdns.org). + +## Step 2: Set-up SWAG + +Then you will need to set up SWAG, the variables of the docker-compose are explained on the Github page of [SWAG](https://github.com/linuxserver/docker-swag). +This is an example of how to set it up using duckdns and docker-compose. + +!!! example "docker-compose.yml" +```yaml +version: "2.1" +services: +swag: +image: ghcr.io/linuxserver/swag +container_name: swag +cap_add: +- NET_ADMIN +environment: +- PUID=1000 +- PGID=1000 +- TZ=Europe/Brussels +- URL= +- SUBDOMAINS=wildcard +- VALIDATION=duckdns +- CERTPROVIDER= #optional +- DNSPLUGIN= #optional +- DUCKDNSTOKEN= +- EMAIL= #optional +- ONLY_SUBDOMAINS=false #optional +- EXTRA_DOMAINS= #optional +- STAGING=false #optional +volumes: +- /etc/config/swag:/config +ports: +- 443:443 +restart: unless-stopped +``` + +Don't forget to change the mydomain.duckns into your personal domain and the duckdnstoken into your token and remove the brackets. + +## Step 3: Change the config files + +Navigate to the config folder of SWAG and head to proxy-confs. If you used the example above, you should navigate to: /etc/config/swag/nginx/proxy-confs/. +There are a lot of preconfigured files to use for different apps such as radarr,sonarr,overseerr,... + +To use the bundled configuration file, simply rename mealie.subdomain.conf.sample in the proxy-confs folder to mealie.subdomain.conf. +Alternatively, you can create a new file mealie.subdomain.conf in proxy-confs with the following configuration: + +!!! example "mealie.subdomain.conf" +```yaml + server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + + server_name mealie.*; + + include /config/nginx/ssl.conf; + + client_max_body_size 0; + + location / { + include /config/nginx/proxy.conf; + include /config/nginx/resolver.conf; + set $upstream_app mealie; + set $upstream_port 80; + set $upstream_proto http; + proxy_pass $upstream_proto://$upstream_app:$upstream_port; + } + + } +``` + +## Step 4: Port-forward port 443 + +Since SWAG allows you to set up a secure connection, you will need to open port 443 on your router for encrypted traffic. This is way more secure than port 80 for http. + +## Step 5: Restart SWAG + +When you change anything in the config of Nginx, you will need to restart the container using docker restart swag. +If everything went well, you can now access mealie on the subdomain you configured: mealie.mydomain.duckdns.org + + + diff --git a/docs/docs/contributors/developers-guide/starting-dev-server.md b/docs/docs/contributors/developers-guide/starting-dev-server.md index f168229ca..2abb51a61 100644 --- a/docs/docs/contributors/developers-guide/starting-dev-server.md +++ b/docs/docs/contributors/developers-guide/starting-dev-server.md @@ -27,7 +27,7 @@ Once the prerequisites are installed you can cd into the project base directory `make vue` Starts the frontend server on port `8080` -`make mdocs` Starts the documentation server on port `8000` +`make docs` Starts the documentation server on port `8000` `make docker-dev` Builds docker-compose.dev.yml diff --git a/docs/docs/overrides/api.html b/docs/docs/overrides/api.html index 8d1f2e77a..6367d5454 100644 --- a/docs/docs/overrides/api.html +++ b/docs/docs/overrides/api.html @@ -14,7 +14,7 @@
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index df5127f45..2c44b4dd0 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -63,6 +63,8 @@ nav: - User Management: "site-administration/user-management.md" - Backups and Restore: "site-administration/backups-and-exports.md" - Recipe Migration: "site-administration/migration-imports.md" + - Community Guide: + - Reverse Proxy Swag: "community-guide/swag" - API Usage: - Getting Started: "api-usage/getting-started.md" - Home Assistant: "api-usage/home-assistant.md"