# SPDX-FileCopyrightText: 2026 Progmasoft # SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.1 # The language pages remain closed during the redesign. Keep the retired # ViGet hostname working as a redirect; it is not a website API or page. server { listen 80; listen [::]:80; server_name xsharp-lang.xyz www.xsharp-lang.xyz docs.xsharp-lang.xyz spec.xsharp-lang.xyz; location ^~ /.well-known/acme-challenge/ { root /var/lib/letsencrypt; default_type text/plain; } location / { return 308 https://$host$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; http2 on; server_name xsharp-lang.xyz www.xsharp-lang.xyz docs.xsharp-lang.xyz spec.xsharp-lang.xyz; server_tokens off; ssl_certificate /etc/letsencrypt/live/xsharp-lang.xyz/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/xsharp-lang.xyz/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; add_header Retry-After "3600" always; add_header Cache-Control "no-store" always; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; add_header X-Content-Type-Options "nosniff" always; add_header X-Frame-Options "DENY" always; add_header Content-Security-Policy "default-src 'none'; style-src 'unsafe-inline'; base-uri 'none'; frame-ancestors 'none'" always; error_page 503 /maintenance.html; location = /maintenance.html { internal; alias /usr/share/nginx/html/maintenance/xsharp.html; } location / { return 503; } } server { listen 80; listen [::]:80; server_name viget.xsharp-lang.xyz; server_tokens off; location ^~ /.well-known/acme-challenge/ { root /var/lib/letsencrypt; default_type text/plain; } location / { return 308 https://viget.progmasoft.com$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; http2 on; server_name viget.xsharp-lang.xyz; server_tokens off; ssl_certificate /etc/letsencrypt/live/xsharp-lang.xyz/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/xsharp-lang.xyz/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; return 308 https://viget.progmasoft.com$request_uri; }