From f3d93a9546008190234269f80c32d5f01dead0f4 Mon Sep 17 00:00:00 2001 From: Erik Date: Mon, 9 Mar 2026 17:38:03 -0300 Subject: [PATCH] fix: increase upload limits and timeouts for backup restoration --- docker-compose.yml | 2 ++ frontend/src/app/admin/backup/emergency/page.tsx | 7 ++++--- frontend/src/app/api/admin/backup/full/route.ts | 9 +++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 2d67561..c226923 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,6 +23,8 @@ services: - "traefik.http.routers.occto-frontend.entrypoints=websecure" - "traefik.http.routers.occto-frontend.tls=true" - "traefik.http.routers.occto-frontend.tls.certresolver=letsencrypt" + - "traefik.http.routers.occto-frontend.middlewares=limit-body" + - "traefik.http.middlewares.limit-body.buffering.maxRequestBodyBytes=104857600" - "traefik.http.services.occto-frontend.loadbalancer.server.port=3000" - "traefik.docker.network=dokploy-network" networks: diff --git a/frontend/src/app/admin/backup/emergency/page.tsx b/frontend/src/app/admin/backup/emergency/page.tsx index c226622..bc39c38 100644 --- a/frontend/src/app/admin/backup/emergency/page.tsx +++ b/frontend/src/app/admin/backup/emergency/page.tsx @@ -34,7 +34,8 @@ export default function EmergencyBackupPage() { } } catch (err) { setStatus('error'); - setMessage('Erro de conexão ao restaurar backup.'); + setMessage('A conexão caiu, mas o servidor pode ainda estar processando. Aguarde 2 minutos e tente logar. Se não funcionar, verifique os logs do Dokploy.'); + console.error('Erro de restauração:', err); } }; @@ -78,8 +79,8 @@ export default function EmergencyBackupPage() { {message && (
{message}
diff --git a/frontend/src/app/api/admin/backup/full/route.ts b/frontend/src/app/api/admin/backup/full/route.ts index 5a61d0b..64f0200 100644 --- a/frontend/src/app/api/admin/backup/full/route.ts +++ b/frontend/src/app/api/admin/backup/full/route.ts @@ -6,6 +6,15 @@ import jwt from 'jsonwebtoken'; import JSZip from 'jszip'; import { PutObjectCommand } from '@aws-sdk/client-s3'; +export const maxDuration = 300; // 5 minutos de execução +export const config = { + api: { + bodyParser: { + sizeLimit: '100mb', + }, + }, +}; + async function authenticate() { const cookieStore = await cookies(); const token = cookieStore.get('auth_token')?.value;