Skip to main content

Services engines

Full catalog of the managed services module. Run loch services engines to see what your server offers right now.

Engines​

EngineIDMenuTopologyPortBuilt-in versionsOldest supported
PostgreSQLpostgresDatabasesshared543218, 17, 16, 1515
MariaDBmariadbDatabasesshared330611.8, 11.4, 10.1110.11
MySQLmysqlDatabasesshared33068.45.6 (offered only when pinned)
MongoDBmongodbDatabasesshared270178.0, 7.0, 6.06.0
RabbitMQrabbitmqMessagingshared56724.2, 4.1, 4.04.0
RedisredisCachededicated63798.4, 8.2, 7.47.2
ValkeyvalkeyCachededicated63799.0, 8.1, 7.27.2
NATSnatsMessagingdedicated42222.12, 2.11, 2.102.10
ElasticMQ (SQS-compatible)elasticmqQueuesdedicated93241.71.7
Eclipse Mosquitto (MQTT)mosquittoQueuesdedicated18832.02.0
Loch S3 (S3-compatible)s3Storagededicated80801.41.4
  • Shared: one instance per version; a resource is a database and its user (a virtual host and its user for RabbitMQ).
  • Dedicated: one container per resource, named and sized at creation.
  • Built-in versions are used until the first version discovery succeeds. After that, creation offers the latest supported version of each of the 3 latest majors, plus the versions pinned with SERVICES_<ENGINE>_PINNED_VERSIONS.
  • Existing instances stay managed whatever their version, from the oldest supported one.

Images and version sources​

EngineTags listed onPulled fromSupport dates
PostgreSQLdocker.io/library/postgres (17)mirror.gcr.ioendoflife.date
MariaDBdocker.io/library/mariadb (11.4)mirror.gcr.ioendoflife.date
MySQLdocker.io/library/mysql (8.4)mirror.gcr.ioendoflife.date
MongoDBdocker.io/library/mongo (8.0)mirror.gcr.ioendoflife.date
RabbitMQdocker.io/library/rabbitmq (4.2)mirror.gcr.ioendoflife.date
Redisdocker.io/library/redis (8.4-alpine)mirror.gcr.ioendoflife.date
Valkeydocker.io/valkey/valkey (9.0-alpine)mirror.gcr.ioendoflife.date
NATSdocker.io/library/nats (2.12-alpine)mirror.gcr.ionone: published means supported
ElasticMQdocker.io/softwaremill/elasticmq-native (1.7.1)mirror.gcr.ionone
Mosquittodocker.io/library/eclipse-mosquitto (2.0.22)mirror.gcr.ionone
Loch S3ghcr.io/loch-sh/s3 (1.4.0)ghcr.ionone

ElasticMQ, Mosquitto and Loch S3 use exact patch tags: a version runs its highest patch tag.

Options of dedicated engines​

Pass them with --option key=value in the CLI. "Changeable" means editable later (Edit button, loch services update); the others are set at creation.

EngineOptionAllowed valuesDefaultChangeable
Redis, Valkeymemory (container MB; data gets half)128, 256, 512, 1024, 2048, 4096256yes
policy (when memory is full)noeviction, allkeys-lru, allkeys-lfu, volatile-lru, volatile-lfu, volatile-ttlnoevictionyes
persistenceaof, rdb, noneaofno
scripting (Lua)on, offonyes
Redis onlymodules (JSON, search, time series…; Redis 8 and later)off, onoffyes
NATSmemory (container MB; in-memory streams get a quarter)128, 256, 512, 1024256yes
storage (JetStream disk, MB)1024, 5120, 10240, 512001024yes
payload (largest message, MB)1, 8, 641yes
ElasticMQmemory (container MB)128, 256, 512, 1024256yes
limits (strict: Amazon SQS limits; relaxed: larger messages, longer delays)strict, relaxedstrictyes
Mosquittomemory (container MB)64, 128, 256, 512128yes
persistence (retained messages, persistent sessions)on, offonyes
message-size (largest message, MB)1, 10, 1001yes
queued (messages kept per offline or slow client)1000, 10000, 1000001000yes
Loch S3memory (container MB)128, 256, 512, 1024256yes
quota (MB)1024, 5120, 10240, 51200, 102400, 51200010240yes
encryption (SSE-S3 on every object; Loch S3 1.4 and later)off, onoffno

Custom sizes​

Besides the listed values, these options accept any multiple of the step within the range (Custom card in GB, --option memory=3G in the CLI):

EngineOptionRangeStep
Redis, Valkeymemory128 MB to 64 GB128 MB
NATSmemory128 MB to 16 GB128 MB
storage1 GB to 1 TB1 GB
ElasticMQmemory128 MB to 8 GB128 MB
Mosquittomemory64 MB to 4 GB64 MB
Loch S3memory128 MB to 8 GB128 MB
quota1 GB to 10 TB1 GB

Shared engines​

Shared engines have no options. One setting is chosen per database:

SettingEnginesEffect
Legacy authentication (--legacy-auth)MySQL 8.4 to 8.x, PostgreSQLmysql_native_password (MySQL) or md5 (PostgreSQL) for old clients. Fixed at creation

Names and limits​

ItemRule
Shared resource name[a-z][a-z0-9_], 32 characters max (16 on MySQL 5.6)
Dedicated instance name[a-z][a-z0-9], 24 characters max (it becomes a host name)
Reserved names (all engines)admin, all, default, healthcheck, loch, none, root, test, user, and the loch_ prefix
Resources per shared instanceSERVICES_MAX_RESOURCES_PER_INSTANCE (default 50)
Dedicated instances per engineSERVICES_MAX_DEDICATED_INSTANCES (default 20)

Engine notes​

EngineNote
ElasticMQNo authentication. Refused on the services network, loopback-only when published
MySQL 5.6, MongoDB 6.0Out of support: loopback-only when published
MongoDBCannot require TLS: loopback-only when published while SERVICES_TLS=auto
Loch S3Path-style URLs only; no TLS (publishing on a public address requires SERVICES_TLS=off). SERVICES_S3_ADMIN_API_KEY (shared mode) is not available yet and disables the engine
MosquittoOne MQTT user, no anonymous access