diff --git a/docker-compose.yml b/docker-compose.yml index 5fb01ca..b7ed86c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -59,8 +59,6 @@ services: SMTP_SECURE: ${SMTP_SECURE} NODE_ENV: production volumes: - - - ./public/footage:/app/public/footage - ./public/applications:/app/public/applications - ./public/cases:/app/public/cases @@ -84,6 +82,12 @@ services: - ./nginx/conf.d:/etc/nginx/conf.d:ro - ./certbot/conf:/etc/letsencrypt:ro - ./certbot/www:/var/www/certbot:ro + - ./public/cases:/srv/cases:ro + - ./public/applications:/srv/applications:ro + - ./public/news:/srv/news:ro + - ./public/parts:/srv/parts:ro + - ./public/footage:/srv/footage:ro + - ./public/operations-inbox:/srv/operations-inbox:ro depends_on: - app networks: diff --git a/nginx/conf.d/flux.conf b/nginx/conf.d/flux.conf index 8f538d2..7a352ab 100644 --- a/nginx/conf.d/flux.conf +++ b/nginx/conf.d/flux.conf @@ -43,13 +43,6 @@ server { access_log off; } - location /footage/ { - proxy_pass http://nextjs; - expires 30d; - add_header Cache-Control "public"; - access_log off; - } - location /hq-command/login { limit_req zone=login burst=10 nodelay; proxy_pass http://nextjs; @@ -59,6 +52,31 @@ server { proxy_set_header X-Forwarded-Proto $scheme; } +# Asset uploads (large files, long timeout) + location /api/assets { + client_max_body_size 500M; + proxy_pass http://nextjs; + 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_read_timeout 600s; + proxy_send_timeout 600s; + proxy_request_buffering off; + } + + location /api/public-upload { + client_max_body_size 500M; + proxy_pass http://nextjs; + 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_read_timeout 600s; + proxy_send_timeout 600s; + proxy_request_buffering off; + } + location /hq-command/ { proxy_pass http://nextjs; proxy_set_header Host $host; @@ -85,6 +103,49 @@ server { proxy_pass http://nextjs; access_log off; } + + # Serve uploaded assets directly from disk (bypass Next.js) + + location /cases/ { + alias /srv/cases/; + expires 30d; + add_header Cache-Control "public"; + access_log off; + } + + location /applications/ { + alias /srv/applications/; + expires 30d; + add_header Cache-Control "public"; + access_log off; + } + + location /news/ { + alias /srv/news/; + expires 30d; + add_header Cache-Control "public"; + access_log off; + } + + location /parts/ { + alias /srv/parts/; + expires 30d; + add_header Cache-Control "public"; + access_log off; + } + + location /operations-inbox/ { + alias /srv/operations-inbox/; + expires 7d; + access_log off; + } + + location /footage/ { + alias /srv/footage/; + expires 30d; + add_header Cache-Control "public"; + access_log off; + } location / { proxy_pass http://nextjs; diff --git a/public/applications/digital-print/prova.jpg b/public/applications/digital-print/prova.jpg new file mode 100644 index 0000000..8e13933 Binary files /dev/null and b/public/applications/digital-print/prova.jpg differ diff --git a/public/cases/dreamhouse-studios/portada_raw.png b/public/cases/dreamhouse-studios/portada_raw.png new file mode 100644 index 0000000..f947e91 Binary files /dev/null and b/public/cases/dreamhouse-studios/portada_raw.png differ diff --git a/public/cases/dreamhouse-studios/screenshot-2025-12-22-at-6.17.22-am.png b/public/cases/dreamhouse-studios/screenshot-2025-12-22-at-6.17.22-am.png new file mode 100644 index 0000000..5d96255 Binary files /dev/null and b/public/cases/dreamhouse-studios/screenshot-2025-12-22-at-6.17.22-am.png differ