# Public FilyX virtual hosts. filyx.fr is canonical. The legacy hostname # sends browser and OBS requests to the canonical URL while retaining only # short-lived webhook endpoints that third-party dashboards may still call. server { server_name filyx.hom3r-off.fr; root /srv/filyx/apps/web/public; index index.php; client_max_body_size 32m; # Keep non-browser webhook deliveries alive during the provider-side # transition. Newly issued FilyX URLs always use filyx.fr. location = /api/kick/webhook { try_files $uri /index.php?$query_string; } location = /api/discord/interactions { try_files $uri /index.php?$query_string; } location = /api/billing/paypal/webhook { try_files $uri /index.php?$query_string; } location / { return 308 https://filyx.fr$request_uri; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_param HTTP_X_FORWARDED_PROTO $http_x_forwarded_proto; fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_read_timeout 60s; } listen [::]:443 ssl; listen 443 ssl; ssl_certificate /etc/letsencrypt/live/filyx.hom3r-off.fr/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/filyx.hom3r-off.fr/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; } server { listen 80; listen [::]:80; server_name filyx.hom3r-off.fr; return 308 https://filyx.fr$request_uri; } server { server_name filyx.fr; root /srv/filyx/apps/web/public; index index.php; client_max_body_size 32m; include /etc/nginx/snippets/filyx-oauth-callback.conf; include /etc/nginx/snippets/filyx-media.conf; include /etc/nginx/snippets/filyx-music-bridge.conf; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_param HTTP_X_FORWARDED_PROTO $http_x_forwarded_proto; fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_read_timeout 60s; } location ~ /\. { deny all; } location ~* \.(?:env|sql|log|bak)$ { deny all; } listen [::]:443 ssl; listen 443 ssl; ssl_certificate /etc/letsencrypt/live/filyx.fr/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/filyx.fr/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; } server { listen [::]:443 ssl; listen 443 ssl; server_name www.filyx.fr; ssl_certificate /etc/letsencrypt/live/filyx.fr/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/filyx.fr/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location / { return 308 https://filyx.fr$request_uri; } } server { listen 80; listen [::]:80; server_name filyx.fr www.filyx.fr; location ^~ /.well-known/acme-challenge/ { root /srv/filyx/apps/web/public; default_type text/plain; try_files $uri =404; } location / { return 308 https://filyx.fr$request_uri; } }