Real serverName: nextcloud_serverIP: *Internal server IPv4*Port: *server port*SSL: checkVerify SSL Certificate: checkSSL Verify CA: LE Authority X3Backend poolName: nextcloud_backendHealth Checking: uncheckedServers: nextcloud_serverRules: redirect_sslPublic servicesName: http_publicListen Adresses: *public IPv6*:80X-Forwarded-For header: checkedrules: redirect_sslName: https_publicListen Adresses: *public IPv6*:443Enable SSL offloading: checkCertificates: *LE certificate*X-Forwarded-For header: checkedrules: nextcloudConditionsName: not-sslCondition type: Traffic is SSL (locally deciphered)Negate condition: checkName: nextcloudCondition type: Host ends withHost Suffix: *URL pointing to public IPv6*RulesName: redirect_sslTest type: IFSelect conditions: not-sslExecute function: http-request redirectHTTP Redirect: scheme https code 301Name: nextcloudTest type: IFSelect conditions: nextcloudExecute function: Use specific Backend PoolHTTP Redirect: nextcloud_backend
upstream php-handler {server 127.0.0.1:9000;}server { listen 80; listen [::]:80; server_name *URL pointing to public IPv6*; return 301 https://$server_name:443$request_uri;}server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name *URL pointing to public IPv6*; ssl_certificate /config/keys/cert.crt; ssl_certificate_key /config/keys/cert.key; # Add headers to serve security related headers # Before enabling Strict-Transport-Security headers please read into this # topic first. #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always; # # WARNING: Only add the preload option once you read about # the consequences in https://hstspreload.org/. This option # will add the domain to a hardcoded list that is shipped # in all major browsers and getting removed from this list # could take several months. add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Permitted-Cross-Domain-Policies none; add_header Referrer-Policy no-referrer; fastcgi_hide_header X-Powered-By; root /config/www/nextcloud/; # display real ip in nginx logs when connected through reverse proxy via docker network set_real_ip_from 172.0.0.0/8; real_ip_header X-Forwarded-For; location = /robots.txt { allow all; log_not_found off; access_log off; } location = /.well-known/carddav { return 301 $scheme://$host:$server_port/remote.php/dav; } location = /.well-known/caldav { return 301 $scheme://$host:$server_port/remote.php/dav; } client_max_body_size 10G; fastcgi_buffers 64 4K; gzip on; gzip_vary on; gzip_comp_level 4; gzip_min_length 256; gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; location / { rewrite ^ /index.php; } location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ { deny all; } location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) { deny all; } location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) { fastcgi_split_path_info ^(.+?\.php)(\/.*|)$; set $path_info $fastcgi_path_info; try_files $fastcgi_script_name =404; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $path_info; fastcgi_param HTTPS on; fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass php-handler; fastcgi_intercept_errors on; fastcgi_request_buffering off; } location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) { try_files $uri/ =404; index index.php; } location ~ \.(?:css|js|woff2?|svg|gif|map)$ { try_files $uri /index.php$request_uri; add_header Cache-Control "public, max-age=15778463"; # Add headers to serve security related headers # Before enabling Strict-Transport-Security headers please read into this # topic first. #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always; # # WARNING: Only add the preload option once you read about # the consequences in https://hstspreload.org/. This option # will add the domain to a hardcoded list that is shipped # in all major browsers and getting removed from this list # could take several months. add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Permitted-Cross-Domain-Policies none; add_header Referrer-Policy no-referrer; access_log off; } location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ { try_files $uri /index.php$request_uri; access_log off; }}
<?php$CONFIG = array ( 'memcache.local' => '\\OC\\Memcache\\APCu', 'datadirectory' => '/data', 'instanceid' => '***', 'passwordsalt' => '***', 'secret' => '***', 'trusted_domains' => array ( 0 => '*URL pointing to public IPv6*', 1 => '*Internal server IPv4*:*Server Port*', ), 'trusted_proxies' => array ( 0 => '*IPv4 OPNsense*', 1 => '*link-local IPv6 OPNsense*', ), 'dbtype' => 'mysql', 'version' => '18.0.3.0', 'overwrite.cli.url' => 'https://*URL pointing to public IPv6*', 'overwritehost' => '*URL pointing to public IPv6*', 'overwriteprotocol' => 'https', 'dbname' => '***', 'dbhost' => '***', 'dbport' => '', 'dbtableprefix' => 'oc_', 'mysql.utf8mb4' => true, 'dbuser' => '***', 'dbpassword' => '***', 'installed' => true, 'mail_from_address' => '***', 'mail_smtpmode' => 'smtp', 'mail_sendmailmode' => 'smtp', 'mail_domain' => '***', 'mail_smtpauthtype' => 'LOGIN', 'mail_smtpauth' => 1, 'mail_smtphost' => '***', 'mail_smtpport' => '465', 'mail_smtpsecure' => 'ssl', 'mail_smtpname' => '***', 'mail_smtppassword' => '***', 'maintenance' => false, );
SSL: checkVerify SSL Certificate: checkSSL Verify CA: LE Authority X3
either via IPv4 from inside my network or URL from inside/outside my network.