76 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # 2025-01-02 Hyperling
 | |
| # A dummy test file since true scripts are being kept private.
 | |
| # This will help others understand how to get Nextcloud working.
 | |
| 
 | |
| ## Instructions ##
 | |
| # Add this without the comment to your /etc/hosts to test that it is working,
 | |
| #   YOUR_DOCKER_SERVER_IP cloud.example.com
 | |
| # If testing locally on a workstation,
 | |
| #   127.0.0.1 cloud.example.com
 | |
| # Then to test, first start the container,
 | |
| #   cd $DOCKER_HOME/Config/ReverseProxy && docker compose build && docker compose up -d
 | |
| # Then from the system with the modified /etc/hosts,
 | |
| #   curl --insecure cloud.example.com
 | |
| # You will see activity in the container log as well as the contents of the
 | |
| # proxied website in the terminal, NOT git.example.com. If using a browser then you
 | |
| # will notice that the URL is still git.example.com but the website is correct.
 | |
| 
 | |
| server {
 | |
|     listen 80;
 | |
|     server_name cloud.example.com nextcloud.example.com;
 | |
| 
 | |
|     location /.well-known/acme-challenge/ {
 | |
|         default_type "text/plain";
 | |
|         root /etc/nginx/letsencrypt/;
 | |
|     }
 | |
| 
 | |
|     location / {
 | |
|         return 301 https://$host$request_uri;
 | |
|     }
 | |
| }
 | |
| 
 | |
| server {
 | |
|     listen 443 ssl;
 | |
|     server_name cloud.example.com nextcloud.example.com;
 | |
| 
 | |
|     ssl_certificate /etc/nginx/certs/nextcloud.example.com/fullchain.pem; # managed by Certbot
 | |
|     ssl_certificate_key /etc/nginx/certs/nextcloud.example.com/privkey.pem; # managed by Certbot
 | |
| 
 | |
|     # https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html#nginx
 | |
|     rewrite ^/\.well-known/carddav https://$server_name/remote.php/dav/ redirect;
 | |
|     rewrite ^/\.well-known/caldav https://$server_name/remote.php/dav/ redirect;
 | |
| 
 | |
|     location /.well-known/acme-challenge/ {
 | |
|         default_type "text/plain";
 | |
|         root /etc/nginx/letsencrypt/;
 | |
|     }
 | |
| 
 | |
|     # Attempt to make OnlyOffice work both internally and externally.
 | |
|     # https://helpcenter.onlyoffice.com/installation/docs-nextcloud-proxy.aspx
 | |
|     proxy_set_header Upgrade $http_upgrade;
 | |
|     proxy_set_header X-Forwarded-Host $http_host/office;
 | |
| 
 | |
|     # Send traffic to upstream server
 | |
|     location / {
 | |
|         expires epoch;
 | |
|         add_header Pragma public;
 | |
|         add_header Cache-Control "private, no-store";
 | |
|         add_header Strict-Transport-Security "max-age=15552000; includeSubDomains; preload";
 | |
| 
 | |
|         # Fix upload errors (HTTP Error: Request Entity Too Large).
 | |
|         client_max_body_size 0;
 | |
|         client_body_buffer_size 100M;
 | |
| 
 | |
|         # Attempt to make OnlyOffice work both internally and externally.
 | |
|         # https://helpcenter.onlyoffice.com/installation/docs-nextcloud-proxy.asp
 | |
|         proxy_pass_header Server;
 | |
|         proxy_pass http://example-cloud;
 | |
|     }
 | |
| 
 | |
|     # Attempt to make OnlyOffice work both internally and externally.
 | |
|     # https://helpcenter.onlyoffice.com/installation/docs-nextcloud-proxy.aspx
 | |
|     location /office/ {
 | |
|        proxy_pass http://example-office-http;
 | |
|     }
 | |
| }
 |