S3 (buckets)
Qué es "S3" como estándar y en qué partes de nuestro stack lo usamos (backups de Dokploy + uploads de los backends).
1. Qué es S3
S3 (Simple Storage Service) es el almacenamiento de objetos de AWS. Guarda archivos binarios (imágenes, videos, backups, zips) en buckets (una carpeta raíz con nombre único), accesibles por HTTP: PUT sube, GET baja, DELETE borra. Cada archivo es un objeto con una key (su ruta, ej. backups/2026-07-14/db.sql.gz).
El "protocolo S3" es un estándar de facto: otros proveedores lo implementan igual. Cuando Dokploy pide "S3 Bucket", no significa AWS — sirve cualquiera:
| Proveedor | Producto S3-compatible |
|---|---|
| AWS | S3 |
| DigitalOcean | Spaces |
| Cloudflare | R2 |
| Backblaze | B2 |
| MinIO | self-hosted |
Todos usan las mismas credenciales Access Key ID / Secret Access Key + un Endpoint distinto.
2. Dónde usamos S3
2.1 Como destino de backups (Dokploy)
Ver Backups de bases de datos y Volume Backups. Dokploy sube ahí los .sql.gz, .dump o snapshots, con un cron y un prefijo. Es infraestructura — se configura una vez en Settings → Destinations.
2.2 Como almacenamiento de archivos subidos por la app (uploads)
Distinto: aquí S3 es parte del backend, no de Dokploy. Ejemplo real en queruva-totems_quiz-back:
- La API usa
express-fileuploadconuseTempFiles: true, que escribe temporal enos.tmpdir()(disco efímero) antes de subir el archivo final al bucket. - El temporal se borra solo al reiniciar el contenedor — no hace falta respaldarlo.
- El archivo real vive en el bucket, con sus propias env vars (
AWS_ACCESS_KEY,AWS_SECRET_KEY,AWS_BUCKET,AWS_ENDPOINT).
Por qué importa para recuperación: si el servidor muere, los archivos subidos sobreviven — nunca vivieron en el disco del droplet.
2.3 Los dos usos son independientes
| Backup destination (2.1) | Uploads (2.2) | |
|---|---|---|
| Quién lo usa | Dokploy (el panel) | El código del backend |
| Qué guarda | Copias de BD / volúmenes | Archivos de los usuarios |
| Se configura en | Settings → Destinations | Env vars del proyecto |
| Si falta | Pierdes histórico de backups | La app no puede subir archivos |
Pueden apuntar al mismo bucket o a buckets distintos.
3. Configurar un destino S3 en Dokploy
Settings → Destinations → Create Destination:
| Campo | Valor típico |
|---|---|
| Provider | AWS S3 / DigitalOcean Spaces / etc. |
| Access Key ID / Secret Access Key | credenciales del bucket |
| Bucket | nombre del bucket |
| Region | región del bucket |
| Endpoint | vacío para AWS; requerido para Spaces y otros (ej. https://nyc3.digitaloceanspaces.com) |
Una vez creado, queda disponible en Backups, Restore y Volume Backups.