mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 22:01:09 +02:00
Complete rename across the entire monorepo pre-launch: - Module, routes, API, i18n, standalone landing app directories - All code identifiers, display names, logo component - German user-facing label: "Essen" (English brand stays "Food") - Dexie table nutriFavorites -> foodFavorites - Infra configs (docker-compose, cloudflared, nginx, wrangler) Zero residue of nutriphi remains. No data migration needed (pre-launch). Follow-up: run pnpm install, update Cloudflare DNS (food.mana.how), rename Cloudflare Pages project. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
142 lines
3.5 KiB
Text
142 lines
3.5 KiB
Text
# 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;
|
|
}
|
|
|
|
# cards.mana.how — Cards Landing
|
|
server {
|
|
listen 80;
|
|
server_name cards.mana.how;
|
|
root /srv/landings/cards;
|
|
index index.html;
|
|
include /etc/nginx/snippets/landing-common.conf;
|
|
}
|
|
|
|
# food.mana.how — Food Landing
|
|
server {
|
|
listen 80;
|
|
server_name food.mana.how;
|
|
root /srv/landings/food;
|
|
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;
|
|
|
|
# Allow ManaScore page to fetch status.json
|
|
add_header Access-Control-Allow-Origin "*" always;
|
|
add_header Access-Control-Allow-Methods "GET" always;
|
|
|
|
location / {
|
|
try_files $uri /index.html;
|
|
}
|
|
|
|
# Serve status.json directly (do not rewrite to index.html)
|
|
location = /status.json {
|
|
add_header Content-Type "application/json" always;
|
|
add_header Cache-Control "no-store" always;
|
|
add_header Access-Control-Allow-Origin "*" always;
|
|
try_files $uri =404;
|
|
}
|
|
|
|
location /health {
|
|
access_log off;
|
|
return 200 "healthy\n";
|
|
add_header Content-Type text/plain;
|
|
}
|
|
}
|