mirror of
				https://github.com/linuxserver/docker-swag.git
				synced 2025-10-31 13:07:44 +09:00 
			
		
		
		
	Merge remote-tracking branch 'origin/authelia-subdomain' into nemchik-tik
This commit is contained in:
		| @@ -335,7 +335,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 | |||||||
|  |  | ||||||
| ## Versions | ## Versions | ||||||
|  |  | ||||||
| * **05.02.23:** - [Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) proxy.conf - Add includable confs for authentik | * **09.02.23:** - [Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) proxy.conf, authelia-location.conf and authelia-server.conf - Add Authentik configs, update Authelia configs. | ||||||
| * **21.01.23:** - Unpin certbot version (allow certbot 2.x). !!BREAKING CHANGE!! We are temporarily removing the certbot porkbun plugin until a new version is released that is compatible with certbot 2.x. | * **21.01.23:** - Unpin certbot version (allow certbot 2.x). !!BREAKING CHANGE!! We are temporarily removing the certbot porkbun plugin until a new version is released that is compatible with certbot 2.x. | ||||||
| * **20.01.23:** - Rebase to alpine 3.17 with php8.1. | * **20.01.23:** - Rebase to alpine 3.17 with php8.1. | ||||||
| * **16.01.23:** - Remove nchan module because it keeps causing crashes. | * **16.01.23:** - Remove nchan module because it keeps causing crashes. | ||||||
|   | |||||||
| @@ -154,7 +154,7 @@ app_setup_block: | | |||||||
|  |  | ||||||
| # changelog | # changelog | ||||||
| changelogs: | changelogs: | ||||||
|   - { date: "09.02.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) proxy.conf - Add includable confs for authentik" } |   - { date: "09.02.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) proxy.conf, authelia-location.conf and authelia-server.conf - Add Authentik configs, update Authelia configs." } | ||||||
|   - { date: "21.01.23:", desc: "Unpin certbot version (allow certbot 2.x). !!BREAKING CHANGE!! We are temporarily removing the certbot porkbun plugin until a new version is released that is compatible with certbot 2.x." } |   - { date: "21.01.23:", desc: "Unpin certbot version (allow certbot 2.x). !!BREAKING CHANGE!! We are temporarily removing the certbot porkbun plugin until a new version is released that is compatible with certbot 2.x." } | ||||||
|   - { date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1." } |   - { date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1." } | ||||||
|   - { date: "16.01.23:", desc: "Remove nchan module because it keeps causing crashes." } |   - { date: "16.01.23:", desc: "Remove nchan module because it keeps causing crashes." } | ||||||
|   | |||||||
| @@ -1,15 +1,32 @@ | |||||||
| ## Version 2022/08/20 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-location.conf.sample | ## Version 2023/02/05 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-location.conf.sample | ||||||
| # Make sure that your authelia container is in the same user defined bridge network and is named authelia | # Make sure that your authelia container is in the same user defined bridge network and is named authelia | ||||||
| # Make sure that the authelia configuration.yml has 'path: "authelia"' defined | # Make sure that the authelia configuration.yml has 'path: "authelia"' defined | ||||||
|  |  | ||||||
|  | ## Send a subrequest to Authelia to verify if the user is authenticated and has permission to access the resource. | ||||||
| auth_request /authelia/api/verify; | auth_request /authelia/api/verify; | ||||||
| auth_request_set $target_url $scheme://$http_host$request_uri; | ## If the subreqest returns 200 pass to the backend, if the subrequest returns 401 redirect to the portal. | ||||||
|  | error_page 401 = @authelia_proxy_signin; | ||||||
|  |  | ||||||
|  | ## Save the upstream authorization response headers from Authelia to variables. | ||||||
|  | auth_request_set $authorization $upstream_http_authorization; | ||||||
|  | auth_request_set $proxy_authorization $upstream_http_proxy_authorization; | ||||||
|  |  | ||||||
|  | ## Inject the authorization response headers from the variables into the request made to the backend. | ||||||
|  | proxy_set_header Authorization $authorization; | ||||||
|  | proxy_set_header Proxy-Authorization $proxy_authorization; | ||||||
|  |  | ||||||
|  | ## Save the upstream metadata response headers from Authelia to variables. | ||||||
| auth_request_set $user $upstream_http_remote_user; | auth_request_set $user $upstream_http_remote_user; | ||||||
| auth_request_set $groups $upstream_http_remote_groups; | auth_request_set $groups $upstream_http_remote_groups; | ||||||
| auth_request_set $name $upstream_http_remote_name; | auth_request_set $name $upstream_http_remote_name; | ||||||
| auth_request_set $email $upstream_http_remote_email; | auth_request_set $email $upstream_http_remote_email; | ||||||
|  |  | ||||||
|  | ## Inject the metadata response headers from the variables into the request made to the backend. | ||||||
| proxy_set_header Remote-User $user; | proxy_set_header Remote-User $user; | ||||||
| proxy_set_header Remote-Groups $groups; | proxy_set_header Remote-Groups $groups; | ||||||
| proxy_set_header Remote-Name $name; | proxy_set_header Remote-Name $name; | ||||||
| proxy_set_header Remote-Email $email; | proxy_set_header Remote-Email $email; | ||||||
| error_page 401 =302 https://$http_host/authelia/?rd=$target_url; |  | ||||||
|  | ## Include the Set-Cookie header if present. | ||||||
|  | auth_request_set $set_cookie $upstream_http_set_cookie; | ||||||
|  | add_header Set-Cookie $set_cookie; | ||||||
|   | |||||||
| @@ -1,6 +1,8 @@ | |||||||
| ## Version 2022/09/22 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-server.conf.sample | ## Version 2023/02/05 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-server.conf.sample | ||||||
| # Make sure that your authelia container is in the same user defined bridge network and is named authelia | # Make sure that your authelia container is in the same user defined bridge network and is named authelia | ||||||
|  | # Make sure that the authelia configuration.yml has 'path: "authelia"' defined | ||||||
|  |  | ||||||
|  | # location for authelia subfolder requests | ||||||
| location ^~ /authelia { | location ^~ /authelia { | ||||||
|     include /config/nginx/proxy.conf; |     include /config/nginx/proxy.conf; | ||||||
|     include /config/nginx/resolver.conf; |     include /config/nginx/resolver.conf; | ||||||
| @@ -8,43 +10,47 @@ location ^~ /authelia { | |||||||
|     proxy_pass http://$upstream_authelia:9091; |     proxy_pass http://$upstream_authelia:9091; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | # location for authelia auth requests | ||||||
| location = /authelia/api/verify { | location = /authelia/api/verify { | ||||||
|     internal; |     internal; | ||||||
|  |  | ||||||
|  |     include /config/nginx/proxy.conf; | ||||||
|     include /config/nginx/resolver.conf; |     include /config/nginx/resolver.conf; | ||||||
|     set $upstream_authelia authelia; |     set $upstream_authelia authelia; | ||||||
|     proxy_pass_request_body off; |     proxy_pass http://$upstream_authelia:9091/authelia/api/verify; | ||||||
|     proxy_pass http://$upstream_authelia:9091; |  | ||||||
|  |     ## Headers | ||||||
|     proxy_set_header Content-Length ""; |     proxy_set_header Content-Length ""; | ||||||
|  |  | ||||||
|     # Timeout if the real server is dead |     ## Basic Proxy Configuration | ||||||
|     proxy_next_upstream error timeout invalid_header http_500 http_502 http_503; |     proxy_pass_request_body off; | ||||||
|  |  | ||||||
|     # [REQUIRED] Needed by Authelia to check authorizations of the resource. |  | ||||||
|     # Provide either X-Original-URL and X-Forwarded-Proto or |  | ||||||
|     # X-Forwarded-Proto, X-Forwarded-Host and X-Forwarded-Uri or both. |  | ||||||
|     # Those headers will be used by Authelia to deduce the target url of the user. |  | ||||||
|     # Basic Proxy Config |  | ||||||
|     client_body_buffer_size 128k; |     client_body_buffer_size 128k; | ||||||
|     proxy_set_header Host $host; |  | ||||||
|     proxy_set_header X-Original-URL $scheme://$http_host$request_uri; |  | ||||||
|     proxy_set_header X-Real-IP $remote_addr; |  | ||||||
|     proxy_set_header X-Forwarded-For $remote_addr; |  | ||||||
|     proxy_set_header X-Forwarded-Method $request_method; |  | ||||||
|     proxy_set_header X-Forwarded-Proto $scheme; |  | ||||||
|     proxy_set_header X-Forwarded-Host $http_host; |  | ||||||
|     proxy_set_header X-Forwarded-Uri $request_uri; |  | ||||||
|     proxy_set_header X-Forwarded-Ssl on; |  | ||||||
|     proxy_redirect  http://  $scheme://; |  | ||||||
|     proxy_http_version 1.1; |  | ||||||
|     proxy_set_header Connection ""; |  | ||||||
|     proxy_cache_bypass $cookie_session; |  | ||||||
|     proxy_no_cache $cookie_session; |  | ||||||
|     proxy_buffers 4 32k; |  | ||||||
|  |  | ||||||
|     # Advanced Proxy Config |     ## Advanced Proxy Configuration | ||||||
|     send_timeout 5m; |     send_timeout 5m; | ||||||
|     proxy_read_timeout 240; | } | ||||||
|     proxy_send_timeout 240; |  | ||||||
|     proxy_connect_timeout 240; | # Virtual location for authelia 401 redirects | ||||||
|  | location @authelia_proxy_signin { | ||||||
|  |     internal; | ||||||
|  |  | ||||||
|  |     ## Set the $target_url variable based on the original request. | ||||||
|  |     set_escape_uri $target_url $scheme://$http_host$request_uri; | ||||||
|  |  | ||||||
|  |     ## Include the Set-Cookie header if present. | ||||||
|  |     auth_request_set $set_cookie $upstream_http_set_cookie; | ||||||
|  |     add_header Set-Cookie $set_cookie; | ||||||
|  |  | ||||||
|  |     ## Set $authelia_backend to route requests to the current domain by default | ||||||
|  |     set $authelia_backend $http_host; | ||||||
|  |     ## In order for Webauthn to work with multiple domains authelia must operate on a separate subdomain | ||||||
|  |     ## To use authelia on a separate subdomain: | ||||||
|  |     ##  * comment the $authelia_backend line above | ||||||
|  |     ##  * rename /config/nginx/proxy-confs/authelia.conf.sample to /config/nginx/proxy-confs/authelia.conf | ||||||
|  |     ##  * make sure that your dns has a cname set for authelia | ||||||
|  |     ##  * uncomment the $authelia_backend line below and change example.com to your domain | ||||||
|  |     ##  * restart the swag container | ||||||
|  |     #set $authelia_backend authelia.example.com; | ||||||
|  |  | ||||||
|  |     return 302 https://$authelia_backend/authelia/?rd=$target_url; | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user