Volúmenes y bases de datos
Volúmenes persistentes para servicios, Postgres, MySQL, Redis y MongoDB con un clic desde plantillas, conexión con `skiffly connect` y respaldos.
Volúmenes#
Un volumen es un disco persistente montado en un servicio en una ruta. Los datos sobreviven a redespliegues, reinicios y cambios de imagen; se eliminan junto con el servicio o el entorno.
skiffly volume add --mount-path /data --size 5 # GB
skiffly volume list- Los volúmenes son por servicio y entorno;
stagingrecibe su propio volumen vacío. - Un servicio con volumen corre con una sola réplica (el almacenamiento en bloque no se puede compartir).
- Crear un volumen vuelve a desplegar el servicio para que aparezca el montaje.
- Los volúmenes se facturan por GB-mes aprovisionado mientras existen, incluso mientras el servicio está en reposo.
- Cambiar el tamaño todavía no está soportado: crea un volumen más grande, copia los datos con
skiffly sshy luego elimina el antiguo.volumeInstanceUpdatecambia la ruta de montaje o el servicio.
Bases de datos#
Las bases de datos son servicios normales creados desde plantillas: una imagen oficial, un volumen en el directorio de datos, una contraseña generada y una cadena de conexión que otros servicios referencian.
| Plantilla | Imagen | Puerto | Volumen | Variable a referenciar |
|---|---|---|---|---|
postgres (también postgres-16, postgis, pgvector, timescaledb) | postgres:17 | 5432 | /var/lib/postgresql/data, 10 GB | ${{Postgres.DATABASE_URL}} |
mysql, mariadb | mysql:8.4 | 3306 | /var/lib/mysql, 10 GB | ${{MySQL.MYSQL_URL}} |
redis (también valkey, keydb, dragonfly) | redis:7-alpine | 6379 | /data, 2 GB | ${{Redis.REDIS_URL}} |
mongodb | mongo:7 | 27017 | /data/db, 10 GB | ${{MongoDB.MONGO_URL}} |
Más motores en el catálogo: ClickHouse, CockroachDB, Cassandra, ScyllaDB, Neo4j, SurrealDB, InfluxDB, QuestDB, Meilisearch, Typesense, Qdrant, Weaviate, Elasticsearch, RabbitMQ, NATS, Kafka/Redpanda, MinIO.
Nuevo servicio → Plantilla → PostgreSQL. El servicio, el volumen y las variables se crean juntos y arranca el primer despliegue.
La base de datos escucha solo en la red privada. Dale más memoria en Configuración → Recursos cuando la carga crezca (1 vCPU / 1 GiB es el valor predeterminado de la plantilla).
Conectarse desde tu máquina#
skiffly connect abre un proxy TCP y el cliente correspondiente con las credenciales del servicio:
skiffly connect postgres # psql
skiffly connect mysql # mysql
skiffly connect redis # redis-cli
skiffly connect mongo # mongosh
skiffly connect postgres --print # solo imprime la URL de conexiónEl cliente debe estar instalado localmente. El proxy se queda hasta que lo elimines (skiffly proxy delete), así que mantén una contraseña fuerte. Importa un volcado a través del proxy:
pg_restore -h edge.skiffly.cloud -p 21543 -U postgres -d app backup.dumpo desde dentro del contenedor con skiffly ssh:
skiffly ssh -s postgres -T -- pg_dump -U postgres app > backup.sqlRespaldos#
De cada volumen se toma un snapshot diario (03:00 UTC) con restic hacia almacenamiento cifrado compatible con S3 en la UE, conservando 7 snapshots diarios, 4 semanales y 3 mensuales. Los servicios de Postgres y MySQL reciben además un volcado lógico (pg_dumpall / mysqldump) en la misma ejecución, así que una restauración es consistente incluso si el snapshot a nivel de archivos captó una escritura en curso.
Hoy las restauraciones las hace soporte: escribe a support@skiffly.dev con el proyecto, el servicio y el momento en el tiempo. La restauración self-service desde el panel y los snapshots bajo demanda están en el roadmap. Guarda tus propios volcados de todo lo que no puedas permitirte perder; skiffly ssh y skiffly connect lo convierten en una sola línea dentro de una tarea cron.