knadh / dictpress

A stand-alone web server application for building and publishing full fledged dictionary websites and APIs for any language.
https://dict.press
GNU Affero General Public License v3.0
356 stars 41 forks source link

Add Docker support #22

Open nandedamana opened 1 year ago

nandedamana commented 1 year ago

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:

Please share your thoughts.

knadh commented 1 year ago

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.

subins2000 commented 10 months ago

@asdofindia had made a Dockerfile, ping ping

asdofindia commented 9 months ago

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