I am wanting to use timescaledb db image instead of the normal postgres image. I can get this working fine and everything works okay by editing the docker-compose.yml like the screenshot below.
The only problem is every time I go into the settings and it restarted ie. adding a extension etc… it defaults back to the normal Postgres image. Is there any way to set this so it won’t change?
Tried also changing the package.json but this still also overwritten the value.
The reason your TimescaleDB image keeps getting overwritten is that Wappler regenerates docker-compose.yml whenever you change project settings. It always uses the image defined in the project’s server model, so manual edits to docker-compose.yml won’t persist.
To make TimescaleDB stick, you need to override the database service in a way Wappler won’t regenerate:
Try this workaround:
Create a separate override file
Add a docker-compose.override.yml in your project root.
Wappler doesn’t touch this file, and theoretically, Docker automatically merges it.
The only thing I can think of is making the compose file read only so it hasn’t got permission to update it. Not sure if this will cause further problems though.
Making the compose file read‑only will stop Wappler from overwriting it, but it also breaks legitimate updates (extensions, ports, volumes, etc.), so it’s not a good long‑term solution.
At the moment Wappler doesn’t merge docker-compose.override.yml, even though Docker itself supports it. The deployment engine only reads and regenerates the main docker-compose.yml, so any override file is ignored.
Because of that, the built‑in DB service will always revert to the standard Postgres image whenever Wappler updates the target.
The only reliable workaround right now is to run TimescaleDB as an external container and point Wappler’s DB connection to it. This keeps your TimescaleDB image stable and avoids Wappler touching the DB service at all.
Hopefully override support gets added — that would solve this cleanly.