dictpress icon indicating copy to clipboard operation
dictpress copied to clipboard

Add Docker support

Open nandedamana opened this issue 2 years ago • 3 comments

The current codebase requires the user to set up and link a Postgres instance manually. The time and effort required for this would cause many people not to give dictpress a try. Of course one could use Docker themselves, but providing a basic docker-compose file would still be useful and attractive, I believe.

Here's a basic Docker Compose support (just for the DB) that I added to try out dictpress for the first time: https://github.com/nandedamana/dictpress/tree/add-docker-support

It also contains an option to auto-generate the postgres password env file and sync it with config.toml. However, I'm not satisfied with the changes, and that's why I'm not filing a PR now.

There are multiple things in the current state of the branch that might be frowned upon, including:

  • The added docker support is partial (just for DB, not the server itself)
  • Placeholder DB name and username changed to "postgres" in config.sample.toml
  • Generation of pg.secret.env and its syncing with config.toml is written in the Go program itself, rather than in a shell script or something

Please share your thoughts.

nandedamana avatar Oct 25 '22 16:10 nandedamana

Thanks @nandedamana. I think we can copy https://github.com/knadh/listmonk/blob/master/docker-compose.yml almost as-is. listmonk and dictpress as very similar in their startup/setup/DB behaviour. Just haven't had a chance to port it to dictpress and test. If you're able to, please feel free to send a PR.

knadh avatar Oct 27 '22 06:10 knadh

@asdofindia had made a Dockerfile, ping ping

subins2000 avatar Nov 15 '23 19:11 subins2000

Made a docker compose based setup in https://gitlab.com/smc/samam/-/blob/master/dictpress/docker/docker-compose.yml - but the goal there was to be able to recreate the whole site from scratch. It works nevertheless.

What I do observe, though, is that

  1. Dictpress is a single binary. So not much advantage in building a docker image with that and running that.
  2. The configurations are pretty much core to the whole setup. Unless it is for a demo site, there's no way to predict how to configure the dictpress
  3. One might or might not have data to import.

So, eventually, for the above project we just stopped using docker.

I think the scope of what docker (or docker compose) should be doing should be made clear. If it is for someone who doesn't want to touch their system postgres, we could document 1) how to create a new postgres cluster, or 2) how to run postgres via docker run

asdofindia avatar Nov 21 '23 12:11 asdofindia