|
|
|
|
# Nginx por delante del servidor de Node.
|
|
|
|
|
#
|
Cantos menos redondos, tarjetas coherentes y portada a ras
Los botones dejan de ser cápsulas y las tarjetas pierden la mitad del canto. De
paso se ordena el sistema: había tres radios sueltos y una píldora de 999px
repetida en quince archivos, y quedan dos —uno para lo que se pulsa, otro para
las superficies—. Los botones de icono suelto siguen redondos, que ahí sí tiene
sentido.
Las fichas del taller no usaban la tarjeta compartida: tenían su propio borde,
su propio canto y su propio hover, así que se veían de otra familia que las de
música. Ahora usan `.tarjeta`, con el mismo reflejo bajo el puntero y el mismo
subrayado.
Y la portada arranca en el borde de la ventana, con la cabecera flotando encima.
Para eso la cabecera pasa a medir su propio alto y publicarlo: estaba escrito a
mano en 4,75rem cuando mide 68px, y todo lo que dependía de ese número —el salto
a un ancla, las barras laterales pegajosas— quedaba desplazado.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 month ago
|
|
|
# sudo cp senzapaura.nginx.conf /etc/nginx/sites-available/senzapaura
|
|
|
|
|
# sudo ln -sf /etc/nginx/sites-available/senzapaura /etc/nginx/sites-enabled/
|
|
|
|
|
# sudo rm -f /etc/nginx/sites-enabled/default
|
|
|
|
|
# sudo nginx -t && sudo systemctl reload nginx
|
|
|
|
|
#
|
Cantos menos redondos, tarjetas coherentes y portada a ras
Los botones dejan de ser cápsulas y las tarjetas pierden la mitad del canto. De
paso se ordena el sistema: había tres radios sueltos y una píldora de 999px
repetida en quince archivos, y quedan dos —uno para lo que se pulsa, otro para
las superficies—. Los botones de icono suelto siguen redondos, que ahí sí tiene
sentido.
Las fichas del taller no usaban la tarjeta compartida: tenían su propio borde,
su propio canto y su propio hover, así que se veían de otra familia que las de
música. Ahora usan `.tarjeta`, con el mismo reflejo bajo el puntero y el mismo
subrayado.
Y la portada arranca en el borde de la ventana, con la cabecera flotando encima.
Para eso la cabecera pasa a medir su propio alto y publicarlo: estaba escrito a
mano en 4,75rem cuando mide 68px, y todo lo que dependía de ese número —el salto
a un ancla, las barras laterales pegajosas— quedaba desplazado.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 month ago
|
|
|
# Ese `rm` del sitio por defecto importa: mientras esté, es él quien contesta a
|
|
|
|
|
# quien entra por IP, y se ve la página de bienvenida de Nginx en lugar de la
|
|
|
|
|
# web.
|
|
|
|
|
#
|
Cantos menos redondos, tarjetas coherentes y portada a ras
Los botones dejan de ser cápsulas y las tarjetas pierden la mitad del canto. De
paso se ordena el sistema: había tres radios sueltos y una píldora de 999px
repetida en quince archivos, y quedan dos —uno para lo que se pulsa, otro para
las superficies—. Los botones de icono suelto siguen redondos, que ahí sí tiene
sentido.
Las fichas del taller no usaban la tarjeta compartida: tenían su propio borde,
su propio canto y su propio hover, así que se veían de otra familia que las de
música. Ahora usan `.tarjeta`, con el mismo reflejo bajo el puntero y el mismo
subrayado.
Y la portada arranca en el borde de la ventana, con la cabecera flotando encima.
Para eso la cabecera pasa a medir su propio alto y publicarlo: estaba escrito a
mano en 4,75rem cuando mide 68px, y todo lo que dependía de ese número —el salto
a un ancla, las barras laterales pegajosas— quedaba desplazado.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 month ago
|
|
|
# Tal como está, sirve por IP y sin cifrar, que es lo que se puede hacer en una
|
|
|
|
|
# red local sin dominio. Al final del archivo está lo que hay que cambiar
|
|
|
|
|
# cuando lo haya.
|
|
|
|
|
|
|
|
|
|
server {
|
Cantos menos redondos, tarjetas coherentes y portada a ras
Los botones dejan de ser cápsulas y las tarjetas pierden la mitad del canto. De
paso se ordena el sistema: había tres radios sueltos y una píldora de 999px
repetida en quince archivos, y quedan dos —uno para lo que se pulsa, otro para
las superficies—. Los botones de icono suelto siguen redondos, que ahí sí tiene
sentido.
Las fichas del taller no usaban la tarjeta compartida: tenían su propio borde,
su propio canto y su propio hover, así que se veían de otra familia que las de
música. Ahora usan `.tarjeta`, con el mismo reflejo bajo el puntero y el mismo
subrayado.
Y la portada arranca en el borde de la ventana, con la cabecera flotando encima.
Para eso la cabecera pasa a medir su propio alto y publicarlo: estaba escrito a
mano en 4,75rem cuando mide 68px, y todo lo que dependía de ese número —el salto
a un ancla, las barras laterales pegajosas— quedaba desplazado.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 month ago
|
|
|
# `default_server` es lo que hace que este sitio conteste a quien entra por
|
|
|
|
|
# la IP o por un nombre que no coincida con ninguno. Sin esto, Nginx elige
|
|
|
|
|
# el sitio `default` y enseña su bienvenida.
|
|
|
|
|
listen 80 default_server;
|
|
|
|
|
listen [::]:80 default_server;
|
|
|
|
|
|
Cantos menos redondos, tarjetas coherentes y portada a ras
Los botones dejan de ser cápsulas y las tarjetas pierden la mitad del canto. De
paso se ordena el sistema: había tres radios sueltos y una píldora de 999px
repetida en quince archivos, y quedan dos —uno para lo que se pulsa, otro para
las superficies—. Los botones de icono suelto siguen redondos, que ahí sí tiene
sentido.
Las fichas del taller no usaban la tarjeta compartida: tenían su propio borde,
su propio canto y su propio hover, así que se veían de otra familia que las de
música. Ahora usan `.tarjeta`, con el mismo reflejo bajo el puntero y el mismo
subrayado.
Y la portada arranca en el borde de la ventana, con la cabecera flotando encima.
Para eso la cabecera pasa a medir su propio alto y publicarlo: estaba escrito a
mano en 4,75rem cuando mide 68px, y todo lo que dependía de ese número —el salto
a un ancla, las barras laterales pegajosas— quedaba desplazado.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 month ago
|
|
|
# `_` no casa con ningún nombre real: es la forma de decir «cualquiera».
|
|
|
|
|
# Cuando haya dominio, aquí va el dominio.
|
|
|
|
|
server_name _;
|
|
|
|
|
|
|
|
|
|
# Los mp3 completos pesan varios megas; los fragmentos, cientos de kilos.
|
|
|
|
|
client_max_body_size 20m;
|
|
|
|
|
|
|
|
|
|
gzip on;
|
|
|
|
|
gzip_vary on;
|
|
|
|
|
gzip_min_length 1024;
|
|
|
|
|
gzip_types
|
|
|
|
|
text/plain text/css application/javascript application/json
|
|
|
|
|
image/svg+xml application/xml application/rss+xml;
|
|
|
|
|
|
|
|
|
|
# -----------------------------------------------------------------------
|
|
|
|
|
# Estáticos con huella en el nombre
|
|
|
|
|
#
|
|
|
|
|
# Todo lo de `_app/immutable` lleva el hash del contenido en el nombre: si
|
|
|
|
|
# cambia el archivo, cambia la URL. Por eso se puede cachear para siempre y
|
Cantos menos redondos, tarjetas coherentes y portada a ras
Los botones dejan de ser cápsulas y las tarjetas pierden la mitad del canto. De
paso se ordena el sistema: había tres radios sueltos y una píldora de 999px
repetida en quince archivos, y quedan dos —uno para lo que se pulsa, otro para
las superficies—. Los botones de icono suelto siguen redondos, que ahí sí tiene
sentido.
Las fichas del taller no usaban la tarjeta compartida: tenían su propio borde,
su propio canto y su propio hover, así que se veían de otra familia que las de
música. Ahora usan `.tarjeta`, con el mismo reflejo bajo el puntero y el mismo
subrayado.
Y la portada arranca en el borde de la ventana, con la cabecera flotando encima.
Para eso la cabecera pasa a medir su propio alto y publicarlo: estaba escrito a
mano en 4,75rem cuando mide 68px, y todo lo que dependía de ese número —el salto
a un ancla, las barras laterales pegajosas— quedaba desplazado.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 month ago
|
|
|
# servirlo desde Nginx sin molestar a Node, que es lo que hace que abrir la
|
|
|
|
|
# web no despierte al proceso para devolver un CSS.
|
|
|
|
|
# -----------------------------------------------------------------------
|
|
|
|
|
location /_app/immutable/ {
|
|
|
|
|
root /var/www/senzapaura/build/client;
|
|
|
|
|
access_log off;
|
|
|
|
|
expires 1y;
|
|
|
|
|
add_header Cache-Control "public, immutable";
|
|
|
|
|
try_files $uri =404;
|
|
|
|
|
}
|
|
|
|
|
|
Cantos menos redondos, tarjetas coherentes y portada a ras
Los botones dejan de ser cápsulas y las tarjetas pierden la mitad del canto. De
paso se ordena el sistema: había tres radios sueltos y una píldora de 999px
repetida en quince archivos, y quedan dos —uno para lo que se pulsa, otro para
las superficies—. Los botones de icono suelto siguen redondos, que ahí sí tiene
sentido.
Las fichas del taller no usaban la tarjeta compartida: tenían su propio borde,
su propio canto y su propio hover, así que se veían de otra familia que las de
música. Ahora usan `.tarjeta`, con el mismo reflejo bajo el puntero y el mismo
subrayado.
Y la portada arranca en el borde de la ventana, con la cabecera flotando encima.
Para eso la cabecera pasa a medir su propio alto y publicarlo: estaba escrito a
mano en 4,75rem cuando mide 68px, y todo lo que dependía de ese número —el salto
a un ancla, las barras laterales pegajosas— quedaba desplazado.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 month ago
|
|
|
# Imágenes, fuentes, vídeo, los fragmentos de muestra y el panel. No llevan
|
|
|
|
|
# huella, así que se cachean un día: lo justo para no pedirlos en cada
|
|
|
|
|
# visita sin que un cambio tarde una semana en verse.
|
|
|
|
|
location ~* ^/(images|background|video|muestras|admin)/ {
|
|
|
|
|
root /var/www/senzapaura/build/client;
|
|
|
|
|
access_log off;
|
|
|
|
|
expires 1d;
|
|
|
|
|
add_header Cache-Control "public";
|
|
|
|
|
try_files $uri $uri/ =404;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# -----------------------------------------------------------------------
|
|
|
|
|
# Todo lo demás, a Node
|
|
|
|
|
#
|
|
|
|
|
# Incluidas /descargas/… —que comprueban la compra antes de entregar el
|
|
|
|
|
# archivo— y el webhook de Stripe. Ojo: las descargas NO se pueden servir
|
Cantos menos redondos, tarjetas coherentes y portada a ras
Los botones dejan de ser cápsulas y las tarjetas pierden la mitad del canto. De
paso se ordena el sistema: había tres radios sueltos y una píldora de 999px
repetida en quince archivos, y quedan dos —uno para lo que se pulsa, otro para
las superficies—. Los botones de icono suelto siguen redondos, que ahí sí tiene
sentido.
Las fichas del taller no usaban la tarjeta compartida: tenían su propio borde,
su propio canto y su propio hover, así que se veían de otra familia que las de
música. Ahora usan `.tarjeta`, con el mismo reflejo bajo el puntero y el mismo
subrayado.
Y la portada arranca en el borde de la ventana, con la cabecera flotando encima.
Para eso la cabecera pasa a medir su propio alto y publicarlo: estaba escrito a
mano en 4,75rem cuando mide 68px, y todo lo que dependía de ese número —el salto
a un ancla, las barras laterales pegajosas— quedaba desplazado.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 month ago
|
|
|
# desde Nginx; el audio completo vive fuera de `build/` justamente para que
|
|
|
|
|
# no haya forma de pedirlo por URL sin haberlo comprado.
|
|
|
|
|
# -----------------------------------------------------------------------
|
|
|
|
|
location / {
|
|
|
|
|
proxy_pass http://127.0.0.1:3000;
|
|
|
|
|
proxy_http_version 1.1;
|
|
|
|
|
|
|
|
|
|
proxy_set_header Host $host;
|
|
|
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
|
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
|
|
proxy_set_header X-Forwarded-Host $host;
|
|
|
|
|
|
|
|
|
|
# El limitador de envíos cuenta por IP. Sin las cabeceras de arriba,
|
|
|
|
|
# todas las peticiones parecerían venir de 127.0.0.1 y el límite global
|
|
|
|
|
# se dispararía con una sola persona insistiendo.
|
|
|
|
|
|
|
|
|
|
# Un mp3 completo tarda en salir por una conexión lenta.
|
|
|
|
|
proxy_read_timeout 300s;
|
|
|
|
|
# Sin buffer: la descarga empieza a fluir en cuanto Node la manda, en
|
Cantos menos redondos, tarjetas coherentes y portada a ras
Los botones dejan de ser cápsulas y las tarjetas pierden la mitad del canto. De
paso se ordena el sistema: había tres radios sueltos y una píldora de 999px
repetida en quince archivos, y quedan dos —uno para lo que se pulsa, otro para
las superficies—. Los botones de icono suelto siguen redondos, que ahí sí tiene
sentido.
Las fichas del taller no usaban la tarjeta compartida: tenían su propio borde,
su propio canto y su propio hover, así que se veían de otra familia que las de
música. Ahora usan `.tarjeta`, con el mismo reflejo bajo el puntero y el mismo
subrayado.
Y la portada arranca en el borde de la ventana, con la cabecera flotando encima.
Para eso la cabecera pasa a medir su propio alto y publicarlo: estaba escrito a
mano en 4,75rem cuando mide 68px, y todo lo que dependía de ese número —el salto
a un ancla, las barras laterales pegajosas— quedaba desplazado.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 month ago
|
|
|
# vez de esperar a que Nginx tenga el archivo entero.
|
|
|
|
|
proxy_buffering off;
|
|
|
|
|
}
|
|
|
|
|
}
|
Cantos menos redondos, tarjetas coherentes y portada a ras
Los botones dejan de ser cápsulas y las tarjetas pierden la mitad del canto. De
paso se ordena el sistema: había tres radios sueltos y una píldora de 999px
repetida en quince archivos, y quedan dos —uno para lo que se pulsa, otro para
las superficies—. Los botones de icono suelto siguen redondos, que ahí sí tiene
sentido.
Las fichas del taller no usaban la tarjeta compartida: tenían su propio borde,
su propio canto y su propio hover, así que se veían de otra familia que las de
música. Ahora usan `.tarjeta`, con el mismo reflejo bajo el puntero y el mismo
subrayado.
Y la portada arranca en el borde de la ventana, con la cabecera flotando encima.
Para eso la cabecera pasa a medir su propio alto y publicarlo: estaba escrito a
mano en 4,75rem cuando mide 68px, y todo lo que dependía de ese número —el salto
a un ancla, las barras laterales pegajosas— quedaba desplazado.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 month ago
|
|
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
# Cuando haya dominio
|
|
|
|
|
#
|
|
|
|
|
# 1. Cambiar `server_name _;` por `server_name DOMINIO www.DOMINIO;` y quitar
|
|
|
|
|
# `default_server` de las dos líneas `listen` de arriba.
|
|
|
|
|
# 2. Poner el certificado:
|
|
|
|
|
#
|
|
|
|
|
# sudo apt install -y certbot python3-certbot-nginx
|
|
|
|
|
# sudo certbot --nginx -d DOMINIO -d www.DOMINIO
|
|
|
|
|
#
|
|
|
|
|
# Certbot añade solo el bloque de 443 y la redirección desde el 80.
|
|
|
|
|
# 3. Cambiar `ORIGIN` en /var/www/senzapaura/.env a `https://DOMINIO` y
|
|
|
|
|
# reiniciar el servicio. Sin eso, SvelteKit rechaza todos los formularios
|
|
|
|
|
# con un 403 por comprobación de origen, y parece que la web está rota.
|
|
|
|
|
#
|
|
|
|
|
# Sin HTTPS no se puede publicar de cara al exterior: aquí se escriben correos
|
|
|
|
|
# y se paga.
|
|
|
|
|
# ---------------------------------------------------------------------------
|