# Nginx Configuration for Self-Hosted Landing Pages # Each server block serves a different landing page from its dist/ directory # All traffic comes through Cloudflare Tunnel → localhost:4400 # Shared settings gzip on; gzip_vary on; gzip_min_length 1024; gzip_types text/plain text/css text/xml text/javascript application/javascript application/json image/svg+xml; # Default server (catch-all → it.mana.how as homepage) server { listen 80 default_server; server_name _; root /srv/landings/it; index index.html; include /etc/nginx/snippets/landing-common.conf; } # it.mana.how — European Tech Independence server { listen 80; server_name it.mana.how; root /srv/landings/it; index index.html; include /etc/nginx/snippets/landing-common.conf; } # chats.mana.how — Chat Landing server { listen 80; server_name chats.mana.how; root /srv/landings/chat; index index.html; include /etc/nginx/snippets/landing-common.conf; } # pics.mana.how — Picture Landing server { listen 80; server_name pics.mana.how; root /srv/landings/picture; index index.html; include /etc/nginx/snippets/landing-common.conf; } # zitares.mana.how — Zitare Landing server { listen 80; server_name zitares.mana.how; root /srv/landings/zitare; index index.html; include /etc/nginx/snippets/landing-common.conf; } # presis.mana.how — Presi Landing server { listen 80; server_name presis.mana.how; root /srv/landings/presi; index index.html; include /etc/nginx/snippets/landing-common.conf; } # clocks.mana.how — Clock Landing server { listen 80; server_name clocks.mana.how; root /srv/landings/clock; index index.html; include /etc/nginx/snippets/landing-common.conf; } # manadeck.mana.how — ManaDeck Landing server { listen 80; server_name manadeck.mana.how; root /srv/landings/manadeck; index index.html; include /etc/nginx/snippets/landing-common.conf; } # nutriphi.mana.how — NutriPhi Landing server { listen 80; server_name nutriphi.mana.how; root /srv/landings/nutriphi; index index.html; include /etc/nginx/snippets/landing-common.conf; } # citycorners.mana.how — CityCorners Landing server { listen 80; server_name citycorners.mana.how; root /srv/landings/citycorners; index index.html; include /etc/nginx/snippets/landing-common.conf; } # docs.mana.how — Documentation server { listen 80; server_name docs.mana.how; root /srv/landings/docs; index index.html; include /etc/nginx/snippets/landing-common.conf; } # status.mana.how — Public Status Page (generated by mana-status-gen every 60s) server { listen 80; server_name status.mana.how; root /srv/landings/status; index index.html; add_header X-Frame-Options "SAMEORIGIN" always; add_header X-Content-Type-Options "nosniff" always; add_header Cache-Control "no-store" always; location / { try_files $uri /index.html; } location /health { access_log off; return 200 "healthy\n"; add_header Content-Type text/plain; } }