DesarrolladoresVolúmenes y tráfico
Volúmenes, almacenamiento y tráfico
Volúmenes persistentes#
Los archivos propios de un contenedor se reemplazan en cada despliegue. Todo lo que tu app deba conservar, como archivos subidos o un archivo SQLite, va en un volumen montado en el contenedor.
hw $API/applications/$APP/storages | jq
hw -X POST $API/applications/$APP/storages -d '{"type": "persistent", "name": "uploads", "mount_path": "/app/uploads"}'
hw -X POST $API/applications/$APP/start # mounts it
| Llamada | Qué hace |
|---|---|
GET /applications/{uuid}/storages | {persistent_storages, file_storages} |
POST /applications/{uuid}/storages | Añade un volumen (type: persistent, name, mount_path) o un archivo montado (type: file, mount_path, content) |
PATCH /applications/{uuid}/storages | Cambia una (por uuid) |
DELETE /applications/{uuid}/storages/{storage_uuid} | Elimínala junto con sus datos |
Los archivos montados colocan un archivo que tú aportas (un archivo de configuración, por ejemplo) en mount_path. Un volumen vive en un solo servidor: con varias copias, cada servidor tiene el suyo. Los datos que deben ver todas las copias van en una base de datos gestionada.
Copias de seguridad de volúmenes#
Haz copias de seguridad de un volumen según una programación y conserva un número de archivos en el servidor:
hw -X PUT $API/applications/$APP/storages/$VOLUME/backups -d '{"frequency": "0 3 * * *", "retention_amount_locally": 7}'
hw -X POST $API/applications/$APP/storages/$VOLUME/backups/run # one now
hw -X DELETE $API/applications/$APP/storages/$VOLUME/backups # schedule and archives
frequencyes una expresión cron ohourly,daily,weeklyomonthly.stop_during_backup: truedetiene la app mientras se archiva el volumen, para obtener una copia coherente de los archivos en uso.- Para guardar también los archivos fuera del servidor, añade un bucket compatible con S3 (
POST /s3-storages) y pasasave_s3: truecon sus3_storage_uuid.
Volúmenes de almacenamiento#
Cuando el disco propio de un servidor se queda pequeño, añádele un volumen de almacenamiento: de 10 a 1000 GB de almacenamiento en bloque, montado en /mnt/volume-<id> en el servidor y facturado por hora en la suscripción del servidor. Apunta a esa ruta el volumen de una app (host_path) o un volcado de base de datos.
SRV=$(hw $API/hostwolf/servers | jq -r '[.[] | select(.status == "ready")][0].uuid') # a ready purchased server (app server or VPS)
hw "$API/hostwolf/servers/$SRV/volumes/offer?size_gb=50" | jq # sizes allowed in its city and the price
# Without "confirm": true nothing is bought; the 422 answer has the price.
hw -X POST $API/hostwolf/servers/$SRV/volumes -H "Idempotency-Key: $(uuidgen)" -d '{"size_gb": 50, "backups": true, "autogrow_max_gb": 200, "confirm": true}'
hw $API/hostwolf/servers/$SRV/volumes | jq '.[] | {id, status, size_gb, mount_path, monthly_price}'
| Llamada | Qué hace |
|---|---|
GET /hostwolf/servers/{uuid}/volumes | Los volúmenes del servidor, con tamaño, uso, copias de seguridad y precio |
GET /hostwolf/servers/{uuid}/volumes/offer | Tamaños permitidos en la ciudad del servidor y el precio de size_gb |
POST /hostwolf/servers/{uuid}/volumes | Añade uno (size_gb, backups, autogrow_max_gb, confirm) |
PATCH /hostwolf/servers/{uuid}/volumes/{id} | Amplíalo (size_gb), activa o desactiva las copias de seguridad, fija el límite de crecimiento automático |
POST /hostwolf/servers/{uuid}/volumes/{id}/detach | Desmóntalo y desvincúlalo del servidor |
DELETE /hostwolf/servers/{uuid}/volumes/{id} | Elimínalo junto con sus archivos |
GET /hostwolf/volumes | Todos los volúmenes del equipo; ?status=detached para los desvinculados |
POST /hostwolf/volumes/{id}/attach | Vincula un volumen desvinculado a un servidor de la misma ciudad (server_uuid, confirm) |
- Precio: lo fija el proveedor de la ciudad, a través del catálogo. En las ciudades de Vultr un volumen cuesta 1,24 $ al mes por 10 GB, 3,11 $ por 25 GB y 12,38 $ por 100 GB, facturado por hora (mensual ÷ 730).
- Confirmación: un volumen nuevo, un tamaño mayor, activar las copias de seguridad y un límite de crecimiento automático aumentan la factura, así que necesitan
"confirm": true. Sin él no cambia nada, y la respuesta422traeconfirm_required: true, unmessagelegible y el precio enquote. - La ampliación se hace en línea: el sistema de archivos crece con el volumen y nada se detiene. Los volúmenes no se pueden reducir; en su lugar, añade uno más pequeño y elimina el antiguo.
- Los cambios en volúmenes están limitados a 10 por minuto, junto con los botones de la consola.
Crecimiento automático#
Fija autogrow_max_gb y el volumen crece solo cuando está lleno al 85 %: un 25 %, al menos 10 GB, hasta tu límite. El sistema de archivos crece en línea y el nuevo tamaño se factura desde ese momento. 0 lo desactiva.
Copias de seguridad#
Las copias de seguridad nocturnas están activadas por defecto. Se cifran, se guardan fuera del servidor en Ámsterdam y se conservan 7 días. Pagas por el espacio que ocupan: 0,23 $ al mes por 10 GB guardados, 2,23 $ por 100 GB.
hw $API/hostwolf/volumes/$VOL/backups | jq # newest first
hw -X POST $API/hostwolf/servers/$SRV/volumes/$VOL/backups # one now
hw -X POST $API/hostwolf/servers/$SRV/volumes/$VOL/restore -d '{"backup_id": "4f1c2a9b", "target": "new", "confirm": true}'
target: "same"restaura en el propio volumen: los archivos escritos después de la copia de seguridad se eliminan, y el volumen no está disponible hasta que termina la restauración.target: "new"restaura en un volumen nuevo del mismo tamaño en el mismo servidor, que se factura como cualquier volumen.PATCH … {"backups": false}las desactiva; las copias de seguridad existentes se eliminan pasados 7 días.
Desvincular, vincular y el periodo de gracia de 7 días#
- Desvincular (
POST …/detach) desmonta un volumen y lo quita de su servidor. Conserva sus archivos y se sigue facturando hasta que lo vuelvas a vincular o lo elimines. Antes, detén lo que esté escribiendo en él. - Cuando se elimina un servidor, sus volúmenes se desvinculan y se conservan 7 días, sin coste.
kept_untilmuestra la fecha; después, el volumen y sus archivos se eliminan. - Vincula un volumen desvinculado a cualquiera de tus servidores listos en la misma ciudad con
POST /hostwolf/volumes/{id}/attach. Se monta en la misma ruta en alrededor de un minuto. Un volumen de un servidor eliminado vuelve a facturarse desde ese momento, así que eso necesita"confirm": true. - Las copias de seguridad de un volumen desvinculado se pueden restaurar en un volumen nuevo en otro servidor de la misma ciudad:
POST /hostwolf/volumes/{id}/restoreconbackup_id,server_uuidyconfirm. DELETE /hostwolf/volumes/{id}elimina ahora mismo un volumen desvinculado.
Tráfico#
Cada servidor incluye 1 TB de tráfico saliente al mes. Por encima de eso, cada GB cuesta 0,01 $, que se añade a la factura de ese servidor. El tráfico entrante es gratis.
hw $API/hostwolf/servers/$SRV/traffic | jq
# {"month": "2026-10", "outbound_bytes": 12400000000, "outbound": "12.4 GB", "included_bytes": 1000000000000,
# "overage_bytes": 0, "price_per_gb": 0.01, "bill_so_far": 0, "sampled_at": "…"}
hw "$API/hostwolf/traffic?month=2026-09" | jq '.bill_so_far, .servers[].outbound' # every server, any month
El tráfico se lee cada 10 minutos. La página Analíticas de la consola muestra las peticiones por app.
El puerto 25 (email saliente) está bloqueado en todos los servidores; envía el email mediante la API de un proveedor o por el puerto 587.