# Vhost nginx hôte pour l'admin WordPress headless (VPS srv1255941).
# À placer dans /etc/nginx/sites-available/covalba-admin + symlink sites-enabled.
# Le TLS est ajouté par : certbot --nginx -d covalba-admin.paf-studio.dev
server {
    listen 80;
    server_name covalba-admin.paf-studio.dev;

    client_max_body_size 64M;

    # Le BO ne doit jamais être indexé
    add_header X-Robots-Tag "noindex, nofollow" always;

    # XML-RPC : vecteur d'attaque classique, inutile en headless
    location = /xmlrpc.php { return 403; }

    # Les seeds et assets de seed servent uniquement à WP-CLI. Ils peuvent
    # contenir structure éditoriale, IDs de formulaires et mapping CRM.
    location ^~ /wp-content/seed/ { return 404; }
    location ^~ /wp-content/seed-assets/ { return 404; }

    location ~ ^/(wp-config\.php|readme\.html|license\.txt)$ { return 404; }
    location = /wp-content/debug.log { return 404; }

    server_tokens off;
    proxy_hide_header X-Powered-By;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "strict-origin-when-cross-origin" always;
    add_header X-Frame-Options "SAMEORIGIN" always;

    # Basic auth devant le login WP (2e barrière avant le vrai login)
    location = /wp-login.php {
        auth_basic "Covalba Admin";
        auth_basic_user_file /etc/nginx/covalba-admin.htpasswd;
        proxy_pass http://127.0.0.1:8080;
        include /etc/nginx/snippets/covalba-admin-proxy.conf;
    }

    location / {
        proxy_pass http://127.0.0.1:8080;
        include /etc/nginx/snippets/covalba-admin-proxy.conf;
    }
}
