Commit Graph
19 Commits
Author SHA1 Message Date
tiennm99 0af652953f fix: bound connects, write on start, and tighten config checks
- 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.
2026-10-09 11:15:59 +07:00
tiennm99 42c8a871cf fix(runner): retry failed services after one minute and fail fast on bad config
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.
2026-10-09 11:10:45 +07:00
tiennm99 77b9a9673b build(compose): drop the misleading port from the keepalive service 2026-10-07 09:11:29 +07:00
tiennm99 c1041e3062 build(compose): adapt compose file for Coolify deployment
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.
2026-10-07 08:47:35 +07:00
tiennm99 720a264e5f docs: point migrated-from section at in-repo absorbed histories 2026-08-05 00:21:03 +07:00
tiennm99 afa710289c docs(config): add interval and counter examples 2026-06-29 11:34:59 +07:00
tiennm99 30660b95f5 docs(config): clarify scoped intervals 2026-06-29 10:40:29 +07:00
tiennm99 4803f990b4 docs(readme): add missing adapter examples 2026-06-29 00:01:18 +07:00
tiennm99 8108288dca feat(redis): add namespace counter key 2026-06-28 19:35:06 +07:00
tiennm99 77b08464b0 fix(couchbase): restore readiness timeout 2026-06-28 19:20:05 +07:00
tiennm99 0ad7fbebfc fix(couchbase): improve readiness timeout 2026-06-28 19:02:31 +07:00
tiennm99 6b0c2f5a4c fix(runtime): initialize resources per service 2026-06-28 18:03:16 +07:00
tiennm99 16cf6277e1 feat(config): use config yml defaults 2026-06-28 14:39:17 +07:00
tiennm99 08da9dcb84 fix(config): discover mounted yml config 2026-06-28 14:05:48 +07:00
tiennm99 f418e4aad7 feat(deploy): add local compose setup 2026-06-28 13:47:29 +07:00
tiennm99 f3a23ee91e feat(config): support multi-service yaml config 2026-06-28 09:27:43 +07:00
tiennm99 655db8dcbf feat(config): standardize keepalive env names 2026-06-27 21:47:14 +07:00
tiennm99 f5218ea327 refactor: rename project to keepalive 2026-06-27 21:24:17 +07:00
tiennm99 e3b7ea5011 feat: initial db-keepalive — pluggable adapters for 6 free-tier DBs
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.
2026-05-11 20:15:35 +07:00