- Each connect attempt, including initialization, times out after 1 minute,
and PostgreSQL DSNs without connect_timeout get connect_timeout=30, since
lib/pq honours the context only while dialing.
- A service increments right after connecting, so a restart writes even
when the interval outlasts the process.
- A config path that is a directory (Docker's stand-in for a missing
bind-mount source) fails with a clear message.
- Generated service names take the first free suffix, and suffixed names
are reserved so an explicit name cannot silently collide with them.
- counter_key inside a service's config map is rejected instead of being
overwritten.
- Unknown keys in the config file log a warning without blocking start.
- A .dockerignore keeps local configs and .env out of the build context.
A failed connect or tick now closes the connection and reconnects after one
minute, re-running initialization so a dropped table or row is recreated.
Before, a failing tick logged every interval forever and connect retries
logged every 10 seconds.
Connection URLs that fail to parse no longer appear in logs, since their
error repeats the password.
An unknown adapter or a missing required config key now stops keepalive at
startup instead of silently idling one service.
Drop container_name and the local image tag, which conflict with Coolify's own container and image naming, and expose the configured app port without publishing it. Document the Coolify file storage for config.yml.
Consolidates the *-keepalive family (redis, valkey, postgresql, mysql,
mongodb, couchbase) into a single binary with a runtime DB_TYPE dispatch
and an Adapter interface. Original repos archived with a pointer here.