Getting Started
Create your first database instance on Zektor.io in under 60 seconds.
Create an Account
- Go to zektor.io and click Get Started
- Register with your email or sign in with Google/GitHub
- You'll be redirected to your dashboard
Deploy Your First Instance
Valkey (Cache)
- From the dashboard, click Cache Instances in the sidebar
- Click New Cache (or navigate to
/new?type=cache) - Choose your cluster size (starting at 128MB RAM)
- Select a region (Nuremberg, Falkenstein, or Helsinki)
- Click Deploy — your instance will be ready in under 60 seconds
PostgreSQL (Database)
- From the dashboard, click Database Instances in the sidebar
- Click New Database (or navigate to
/new?type=database) - Choose your cluster size — select the Free tier for a zero-cost database perfect for learning and prototyping, or pick a paid tier starting at 512MB RAM + 5GB SSD
- Select a region and PostgreSQL version (v17 or v18)
- Click Deploy
What You Get
Once your instance is provisioned (typically under 60 seconds), you'll have:
- Connection credentials — Host, port, username, password, and a ready-to-use connection string available in the Settings tab
- Monitoring dashboard — Real-time CPU, memory, and storage metrics
- TLS encryption — All connections are encrypted by default
- Automated daily backups — (PostgreSQL) A default backup schedule is created automatically
- AOF persistence — (Valkey) Data survives restarts out of the box
Connect to Your Instance
Once your instance is provisioned, you'll see connection details on the instance dashboard.
Valkey
valkey-cli -h <your-host> -p <port> -a <password> --tlsPostgreSQL
psql 'postgresql://<username>:<password>@<your-host>:5432/<database>?sslmode=require'Connection strings and credentials are available in the Settings tab of your instance.
Quick Start: Build Your First App
Node.js + PostgreSQL
import pg from 'pg';
const pool = new pg.Pool({
connectionString: process.env.DATABASE_URL // from your Settings tab
});
// Create a table
await pool.query(`
CREATE TABLE IF NOT EXISTS tasks (
id SERIAL PRIMARY KEY,
title TEXT NOT NULL,
completed BOOLEAN DEFAULT false,
created_at TIMESTAMP DEFAULT NOW()
)
`);
// Insert a row
await pool.query(
'INSERT INTO tasks (title) VALUES ($1)',
['My first task on Zektor.io']
);
// Query
const result = await pool.query('SELECT * FROM tasks');
console.log(result.rows);Node.js + Valkey
import Redis from 'ioredis';
const redis = new Redis({
host: '<your-host>', // from your Settings tab
port: 6379,
password: '<password>',
tls: {},
});
// Set and get a value
await redis.set('hello', 'world');
const value = await redis.get('hello');
console.log(value); // 'world'
// Use with expiry for caching
await redis.set('cache:user:1', JSON.stringify({ name: 'Alice' }), 'EX', 3600);Python + PostgreSQL
import psycopg2
conn = psycopg2.connect(
host="<your-host>",
port=5432,
user="<username>",
password="<password>",
dbname="<database>",
sslmode="require"
)
cur = conn.cursor()
cur.execute("SELECT version()")
print(cur.fetchone())
conn.close()Next Steps
- Connecting — Full client library reference and TLS details
- Pricing — Understand what you'll pay
- Set Up Backups — Configure backup schedules (PostgreSQL)
- Valkey Guide — Persistence, memory management, and best practices
- Migration Guide — Import data from another provider