It’s the final day of Koyeb's Launch Week Round 2, and today we’re announcing the public preview of Volumes!
Volumes on Koyeb are blazing-fast NVMe SSD you can use to persist data across deployments.
After announcing Volumes in technical preview a few months ago, we are now opening the preview to all users on the Starter plan!
Offering high throughput and low latency, Volumes open the door to a wide range of new workloads and use cases to handle the state of your applications.
Whether you’re looking to run:
- Clustered databases
- Object storage
- Queue systems
- Storing model checkpoints and weights for AI workloads
- Or anything else that requires data persistence
Get seamless data persistence by deploying any container image from DockerHub - such as Minio, Neo4j, ClickHouse, or Meilisearch - on Koyeb. With just a few clicks or simple CLI commands, you can leverage volumes and persist your data across deployments.
Right now, Volumes are available in Washington DC and Frankfurt for all Standard CPU instance types. Over the next few months, we will progressively add Volumes to more regions, if you are interested in a specific region, just let us know!
During the public preview, Volumes are completely free, so dive in and start adding persistence to your
services!
{' '}
Getting Started with Volumes
To help you get started, here are a few examples to deploy some popular stateful applications including Minio, ClickHouse, MongoDB, and Neo4j using Volumes to handle data persistence using Koyeb CLI.
Minio
Minio is a high-performance distributed object storage server with an S3 compatible API.
In the following example, we will:
- Create a 10GB Volume in the Washington DC region
- Deploy Minio using the official Minio Docker image
quay.io/minio/minio
- Attach the
minio-data
Volume to the service and mount our volume into the/data
directory of the container
Create a Volume
koyeb volume create minio-data --size 10 --region was
Deploy Minio
koyeb app init minio \
--docker quay.io/minio/minio \
--docker-command server \
--docker-args /data \
--docker-args --console-address \
--docker-args :9001 \
--region was \
--volumes minio-data:/data \
--env MINIO_BROWSER_REDIRECT_URL=https://{{ KOYEB_PUBLIC_DOMAIN }}/console/ \
--port 9000:http \
--port 9001:http \
--route /:9000 \
--route /console:9001
ClickHouse
ClickHouse is a fast and resource efficient open-source column-oriented database management system.
In the following example, we will:
- Create a 10GB Volume in the Washington DC region
- Deploy ClickHouse using the official ClickHouse Docker image
clickhouse/clickhouse-server
- Attach the
clickhouse-data
Volume to the service and mount our volume into the/var/lib/clickhouse
directory of the container
Create a Volume
koyeb volume create clickhouse-data --size 10 --region was
Deploy ClickHouse
koyeb app init clickhouse-server \
--docker clickhouse/clickhouse-server \
--region was \
--volumes clickhouse-data:/var/lib/clickhouse \
--env CLICKHOUSE_USER=main \
--env CLICKHOUSE_PASSOWRd={{ secrets.clickhouse_password }} \
--port 8123:http \
--port 9000:tcp \
--route /:8123
MongoDB
MongoDB is a general-purpose, document-based, distributed database built for modern applications.
In the following example, we will:
- Create a 10GB Volume in the Washington DC region
- Deploy MongoDB using the official MongoDB Docker image
mongo
- Attach the
mongo-data
Volume to the service and mount our volume into the/data/db
directory of the container
Create a Volume
koyeb volume create mongo-data --size 10 --region fra
The command above creates a 10GB Volume in the Frankfurt region.
Deploy MongoDB
koyeb app init mongo \
--docker mongo \
--region was \
--volumes mongo-data:/data/db \
--env MONGO_INITDB_ROOT_USERNAME=main \
--env MONGO_INITDB_ROOT_PASSWORD={{ secrets.mongodb_password }} \
--port 27017:tcp
Neo4j
Neo4j is a highly scalable, robust native graph database.
In the following example, we will:
- Created a 10GB Volume in the Washington DC region
- Deploy Neo4j using the official Neo4j Docker image
neo4j
- Attach the
neo4j-data
Volume to the service and mount our volume into the/data
directory of the container
Create a Volume
koyeb volume create neo4j-data --size 10 --region fra
The command above creates a 10GB Volume in the Frankfurt region.
Deploy Neo4j
koyeb app init neo4j \
--docker neo4j \
--region was \
--volumes neo4j-data:/data \
--env NEO4J_AUTH={{ secrets.neo4j_password }} \
--port 7474:http \
--port 7687:tcp \
--route /:7474
That's it! For each of the example above, in less than 60 seconds, you will have a Minio, ClickHouse, Mongo, or Neo4j service running on Koyeb using a Volume to handle peristence.
You can then start using from your other services using our built-in service mesh for secure service to service communication.
What’s Next?
Volumes is a foundational primitive to build and run stateful applications on Koyeb. We're currently working on adding more features around data mobility to let you attach and detach Volumes from services and support snapshots to create a point-time copy of your Volumes.
We're looking forward to your feedback to help us shape the product, and stay tuned as we roll out even more exciting updates during Launch Week!
Top comments (0)