standalone etherpad
This commit is contained in:
		| @@ -192,6 +192,10 @@ matrix_nginx_proxy_proxy_matrix_federation_port: 8448 | ||||
| matrix_nginx_proxy_proxy_dimension_enabled: false | ||||
| matrix_nginx_proxy_proxy_dimension_hostname: "{{ matrix_server_fqn_dimension }}" | ||||
|  | ||||
| # Controls whether proxying the etherpad domain should be done. | ||||
| matrix_nginx_proxy_proxy_etherpad_enabled: false | ||||
| matrix_nginx_proxy_proxy_etherpad_hostname: "{{ matrix_server_fqn_etherpad }}" | ||||
|  | ||||
| # Controls whether proxying the goneb domain should be done. | ||||
| matrix_nginx_proxy_proxy_bot_go_neb_enabled: false | ||||
| matrix_nginx_proxy_proxy_bot_go_neb_hostname: "{{ matrix_server_fqn_bot_go_neb }}" | ||||
| @@ -373,6 +377,9 @@ matrix_nginx_proxy_proxy_buscarron_additional_server_configuration_blocks: [] | ||||
| # A list of strings containing additional configuration blocks to add to Dimension's server configuration (matrix-dimension.conf). | ||||
| matrix_nginx_proxy_proxy_dimension_additional_server_configuration_blocks: [] | ||||
|  | ||||
| # A list of strings containing additional configuration blocks to add to etherpad's server configuration (matrix-etherpad.conf). | ||||
| matrix_nginx_proxy_proxy_etherpad_additional_server_configuration_blocks: [] | ||||
|  | ||||
| # A list of strings containing additional configuration blocks to add to GoNEB's server configuration (matrix-bot-go-neb.conf). | ||||
| matrix_nginx_proxy_proxy_bot_go_neb_additional_server_configuration_blocks: [] | ||||
|  | ||||
|   | ||||
| @@ -123,6 +123,13 @@ | ||||
|     mode: 0644 | ||||
|   when: matrix_nginx_proxy_proxy_dimension_enabled | bool | ||||
|  | ||||
| - name: Ensure Matrix nginx-proxy configuration for etherpad domain exists | ||||
|   ansible.builtin.template: | ||||
|     src: "{{ role_path }}/templates/nginx/conf.d/matrix-etherpad.conf.j2" | ||||
|     dest: "{{ matrix_nginx_proxy_confd_path }}/matrix-etherpad.conf" | ||||
|     mode: 0644 | ||||
|   when: matrix_nginx_proxy_proxy_etherpad_enabled | bool | ||||
|  | ||||
| - name: Ensure Matrix nginx-proxy configuration for goneb domain exists | ||||
|   ansible.builtin.template: | ||||
|     src: "{{ role_path }}/templates/nginx/conf.d/matrix-bot-go-neb.conf.j2" | ||||
|   | ||||
| @@ -0,0 +1,108 @@ | ||||
| #jinja2: lstrip_blocks: "True" | ||||
|  | ||||
| {% macro render_vhost_directives() %} | ||||
| 	gzip on; | ||||
| 	gzip_types text/plain application/json application/javascript text/css image/x-icon font/ttf image/gif; | ||||
| 	{% if matrix_nginx_proxy_hsts_preload_enabled %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; | ||||
| 	{% else %} | ||||
| 		add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | ||||
| 	{% endif %} | ||||
| 	add_header X-XSS-Protection "{{ matrix_nginx_proxy_xss_protection }}"; | ||||
| 	add_header X-Content-Type-Options nosniff; | ||||
| 	{% if matrix_nginx_proxy_floc_optout_enabled %} | ||||
| 		add_header Permissions-Policy interest-cohort=() always; | ||||
| 	{% endif %} | ||||
|  | ||||
| {% for configuration_block in matrix_nginx_proxy_proxy_etherpad_additional_server_configuration_blocks %} | ||||
| 	{{- configuration_block }} | ||||
| {% endfor %} | ||||
|  | ||||
| 	location / { | ||||
| 		{% if matrix_nginx_proxy_enabled %} | ||||
|       {# Use the embedded DNS resolver in Docker containers to discover the service #} | ||||
| 			resolver {{ matrix_nginx_proxy_http_level_resolver }} valid=5s; | ||||
| 			set $backend "matrix-etherpad:9001"; | ||||
| 			proxy_pass http://$backend; | ||||
| 			{# These are proxy directives needed specifically by Etherpad #} | ||||
| 			proxy_buffering off; | ||||
| 			proxy_http_version 1.1;  {# recommended with keepalive connections #} | ||||
| 			proxy_pass_header Server; | ||||
| 			proxy_set_header Host $host; | ||||
| 			proxy_set_header X-Forwarded-Proto {{ matrix_nginx_proxy_x_forwarded_proto_value }}; {# for EP to set secure cookie flag when https is used #} | ||||
| 			{# WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html #} | ||||
| 			proxy_set_header Upgrade $http_upgrade; | ||||
| 			proxy_set_header Connection $connection_upgrade; | ||||
| 		{% else %} | ||||
| 			{# Generic configuration for use outside of our container setup #} | ||||
| 			# A good guide for setting up your Etherpad behind nginx: | ||||
| 			# https://docs.gandi.net/en/cloud/tutorials/etherpad_lite.html | ||||
| 			proxy_pass http://127.0.0.1:9001/; | ||||
| 		{% endif %} | ||||
| 	} | ||||
| {% endmacro %} | ||||
|  | ||||
| server { | ||||
| 	listen {{ 8080 if matrix_nginx_proxy_enabled else 80 }}; | ||||
| 	listen [::]:{{ 8080 if matrix_nginx_proxy_enabled else 80 }}; | ||||
|  | ||||
| 	server_name {{ matrix_nginx_proxy_proxy_etherpad_hostname }}; | ||||
|  | ||||
| 	server_tokens off; | ||||
| 	root /dev/null; | ||||
|  | ||||
| 	{% if matrix_nginx_proxy_https_enabled %} | ||||
| 		location /.well-known/acme-challenge { | ||||
| 			{% if matrix_nginx_proxy_enabled %} | ||||
| 				{# Use the embedded DNS resolver in Docker containers to discover the service #} | ||||
| 				resolver {{ matrix_nginx_proxy_http_level_resolver }} valid=5s; | ||||
| 				set $backend "matrix-certbot:8080"; | ||||
| 				proxy_pass http://$backend; | ||||
| 			{% else %} | ||||
| 				{# Generic configuration for use outside of our container setup #} | ||||
| 				proxy_pass http://127.0.0.1:{{ matrix_ssl_lets_encrypt_certbot_standalone_http_port }}; | ||||
| 			{% endif %} | ||||
| 		} | ||||
|  | ||||
| 		location / { | ||||
| 			return 301 https://$http_host$request_uri; | ||||
| 		} | ||||
| 	{% else %} | ||||
| 		{{ render_vhost_directives() }} | ||||
| 	{% endif %} | ||||
| } | ||||
|  | ||||
| {% if matrix_nginx_proxy_https_enabled %} | ||||
| server { | ||||
| 	listen {{ 8443 if matrix_nginx_proxy_enabled else 443 }} ssl http2; | ||||
| 	listen [::]:{{ 8443 if matrix_nginx_proxy_enabled else 443 }} ssl http2; | ||||
|  | ||||
| 	server_name {{ matrix_nginx_proxy_proxy_etherpad_hostname }}; | ||||
|  | ||||
| 	server_tokens off; | ||||
| 	root /dev/null; | ||||
|  | ||||
| 	ssl_certificate {{ matrix_ssl_config_dir_path }}/live/{{ matrix_nginx_proxy_proxy_etherpad_hostname }}/fullchain.pem; | ||||
| 	ssl_certificate_key {{ matrix_ssl_config_dir_path }}/live/{{ matrix_nginx_proxy_proxy_etherpad_hostname }}/privkey.pem; | ||||
|  | ||||
| 	ssl_protocols {{ matrix_nginx_proxy_ssl_protocols }}; | ||||
| 	{% if matrix_nginx_proxy_ssl_ciphers != '' %} | ||||
| 	ssl_ciphers {{ matrix_nginx_proxy_ssl_ciphers }}; | ||||
| 	{% endif %} | ||||
| 	ssl_prefer_server_ciphers {{ matrix_nginx_proxy_ssl_prefer_server_ciphers }}; | ||||
|  | ||||
| 	{% if matrix_nginx_proxy_ocsp_stapling_enabled %} | ||||
| 		ssl_stapling on; | ||||
| 		ssl_stapling_verify on; | ||||
| 		ssl_trusted_certificate {{ matrix_ssl_config_dir_path }}/live/{{ matrix_nginx_proxy_proxy_etherpad_hostname }}/chain.pem; | ||||
| 	{% endif %} | ||||
|  | ||||
| 	{% if matrix_nginx_proxy_ssl_session_tickets_off %} | ||||
| 		ssl_session_tickets off; | ||||
| 	{% endif %} | ||||
| 	ssl_session_cache {{ matrix_nginx_proxy_ssl_session_cache }}; | ||||
| 	ssl_session_timeout {{ matrix_nginx_proxy_ssl_session_timeout }}; | ||||
|  | ||||
| 	{{ render_vhost_directives() }} | ||||
| } | ||||
| {% endif %} | ||||
		Reference in New Issue
	
	Block a user