Skip to content

⭐ StartKeydb

Terrence Daniels edited this page Jul 9, 2026 · 2 revisions

StartKeydb StartKeydb is the provisioning action responsible for launching KeyDB containers with secure defaults, persistent volumes, optional TLS/SSL support, engine‑specific runtime flags, and predictable startup behavior. KeyDB is a high‑performance, multi‑threaded drop‑in replacement for Redis, but it introduces additional runtime capabilities and configuration options that must be handled during provisioning.

This page explains how StartKeydb works, what it generates, and how it fits into the broader provisioning system.

Purpose of StartKeydb The StartKeydb action handles all logic required to start a KeyDB instance, including:

Validating configuration

Generating SSL certificates

Creating persistent volumes

Building environment variables

Generating Docker Compose

Applying KeyDB‑specific runtime flags

Configuring healthchecks

Starting the container

It ensures KeyDB is provisioned consistently and securely across all deployments.

KeyDB‑Specific Requirements KeyDB is Redis‑compatible but has several unique features:

  1. Multi‑Threaded Engine KeyDB supports multi‑threading, unlike Redis. This may require runtime flags such as:

Code --server-threads 2. Optional Password Authentication KeyDB supports Redis‑style authentication:

Code requirepass This is applied automatically when configured.

  1. Optional TLS/SSL KeyDB supports TLS similarly to Redis, but with additional flags:

Code --tls-port --tls-cert-file --tls-key-file --tls-ca-cert-file Your StartKeydb action handles this automatically.

  1. Data Directory KeyDB stores data in:

Code /data This directory is mapped to a persistent volume.

  1. Config File KeyDB may require a custom config file when:

TLS is enabled

Passwords are enabled

Multi‑threading is configured

Custom runtime flags are used

StartKeydb generates and mounts this file when needed.

StartKeydb Lifecycle mermaid flowchart TD A[StartKeydb] --> B[Validate Configuration] B --> C[Generate SSL Certificates] C --> D[Generate Persistent Volumes] D --> E[Build Environment Variables] E --> F[Generate Docker Compose] F --> G[Start KeyDB Container]

  1. Validate Configuration StartKeydb checks:

Port availability

Password (if enabled)

Volume paths

SSL/TLS settings

Multi‑threading options

Custom runtime flags

KeyDB is flexible, but misconfiguration can break TLS or persistence.

  1. Generate SSL Certificates (Optional) If TLS is enabled:

A CA certificate is generated

A server certificate is generated

A server key is generated

Certificates are mounted into the container

KeyDB is configured to use TLS

Certificates are stored under:

Code /data/coolify/ssl// 3. Generate Persistent Volumes Using GeneratesLocalPersistentVolumes, StartKeydb creates:

Local data directory

SSL directory (if TLS enabled)

Config directory (if needed)

Volumes are mapped into the container:

Code /data /etc/keydb/ssl /etc/keydb/conf This ensures KeyDB persistence across restarts.

  1. Build Environment Variables KeyDB uses fewer environment variables than SQL engines, but StartKeydb still builds:

Optional Code KEYDB_PASSWORD System Internal variables required for provisioning.

SSL If TLS is enabled:

Code KEYDB_SSL_CA KEYDB_SSL_CERT KEYDB_SSL_KEY 5. Generate Docker Compose StartKeydb generates a full Compose service definition including:

Image Code eqalpha/keydb: Ports Code 6379:6379 Volumes Data directory

SSL directory

Config directory

Environment Variables All normalized variables.

Healthcheck KeyDB healthcheck typically uses:

Code keydb-cli ping Runtime Options KeyDB‑specific flags such as:

--server-threads

--requirepass

TLS flags

Custom config file path

  1. Start the Container The generated Compose file is passed to the provisioning engine, which:

Creates the container

Applies resource limits

Connects networks

Starts KeyDB

Verifies healthcheck

Marks the database as running

Example Compose Snippet (Conceptual example — your implementation generates this dynamically.)

Code services: keydb: image: eqalpha/keydb:latest ports: - "6379:6379" volumes: - /data/coolify/keydb//data:/data - /data/coolify/ssl/:/etc/keydb/ssl - /data/coolify/keydb//conf:/etc/keydb/conf command: - keydb-server - /etc/keydb/conf/keydb.conf healthcheck: test: ["CMD", "keydb-cli", "ping"] interval: 10s timeout: 5s retries: 5 Why StartKeydb Is Important StartKeydb ensures:

Secure defaults

Predictable provisioning

Multi‑threading support

Optional TLS/SSL

Persistent storage

Clean environment variable handling

Consistent Docker orchestration

KeyDB is a powerful Redis alternative, and StartKeydb ensures it is provisioned reliably and securely.

Clone this wiki locally