Skip to content

Service drivers

The driver set is closed. A declaration naming a driver outside it is refused with unknown_service_driver, listing the drivers Onebox can run and directing you to a daemon workload.

That is deliberate: inventing an image from a name produces a container that starts and stores nothing durable.

DriverTypical useConnection parts
postgresRelational databaseurl host port user password database
mysqlRelational databaseurl host port user password database
mariadbRelational databaseurl host port user password database
mongodbDocument databaseurl host port user password database
clickhouseAnalytical databaseurl host port user password database
redisCache, queueurl host port user password
valkeyCache, queueurl host port user password
rabbitmqMessage brokerurl host port user password
natsMessaging, JetStreamurl host port password
minioS3-compatible object storageurl host port user password
meilisearchSearchurl host port password

A part the driver does not have — a database on a cache — is omitted rather than written empty. Every driver has a password part; redis and valkey have a user part because Redis 6+ authenticates the built-in default user, and a URL with an empty username fails AUTH outright.

services:
postgres: 17

The image, a durable volume, a health check (every driver but nats), a credential generated on the target, and the connection details your application reads.

  • The service outlives every release. Its own Compose project; no deploy and no rollback stops it or removes its volume.
  • The credential is generated on the server, once. Not in your project, the generated runtime, or the digest. Never rotated by a re-apply.
  • The version binds into the release digest, so a database upgrade under an untouched application cannot pass unnoticed.
services:
postgres:
version: 17
settings:
max_connections: 200

A setting is applied through the mechanism its driver actually reads. One the driver has no way to apply is refused with service_settings_unsupported, rather than silently ignored.

Run it as a daemon workload and you own it: the image, the credential, the volumes, the backup. See Add a database for the comparison.