@ozoned@social.ozoned.net Thanks for sharing! That was very useful to watch even if painful at times (mostly because I wanted to jump in with pointers but it was prerecorded :D). I took many notes of things to improve with the documentation and tooling.


Overall, the docs and tooling for deploying directly with docker (compared to those using @coopcloud@social.coop which is the recommended and simpler approach) are out of date and too complex mostly because they've been adapted from the dev ones, and we're thinking about how to offer an alternative method with only a compose file and a .env (though I'd welcome advice about how to do so in a simple way, as the just commands are mostly there to reduce the guide to a handful of steps/commands instead of having to copy paste a lot more, and they also set some variables used in the compose file to make it more flexible, but maybe that's not worth it, or there are some other ways to simplify?)


Here's some hints on the main blockers you encountered:


  • you first entered MIX_ENV=ember when you wanted FLAVOUR=ember
  • if you enter ctrl+c in iex it pauses the app so it wouldn't respond unless you unpause it (by pressing c for continue)
  • we recently closed port 4000 which now not open outside of docker's internal network by default (for security since you usually want people to connect through the web proxy in prod) and need to update the docs
  • we need to better document that it's also running a web proxy by default on ports 80/443, and point to where the caddy config is
  • at one point you were looking at docker-compose.yml instead of the release one docker-compose.release.yml
  • during of the following attempts where you tried to run dev you were still following the prod guide instead of the dev guide which uses different just commands and env vars

I'm not sure why you weren't able to connect on port 80 during the first attempt though, as the elixir app logs didn't show anything, and caddy's error log was pretty cryptic, I'd be curious what you'd see on port 4000 if you opened it in docker-compose.release.yml


@bonfire@indieweb.social

For example, I've just improved thejust secrets command based on a suggestion from one of your viewers, so it gives you the whole block (including env names) ready to paste in your .env, for example:

SECRET_KEY_BASE=92ef8434f4d462b4384258fb4191bb69c26485dfd9cb2751b245b90163ea7416644398df3b7ec4e3f7c6482f51045823e6397377fe71e44084763e5e899fdbed705337453499c21691f49951585a3c2555866bde406e37907d55764dcfc429dc381e3a739699c67b1b58381abb956655adde875346b92c1f08a9ee9367caf632
SIGNING_SALT=5a9f16fe2d61581fb8af6d8f062aeed60752603d73f2a0cec96967448290545f56086ba935f2be2bdd9a724b8f96c0f74db5ed8b2ae601f5e3c8ca2911eaae73bad7b6c281ef7bf4da87c3339c8f764a10da3b2c1502f9bee2c36f4fc918560a7371668924b5845f59efe02875b1cfc7d83a755220695db0cb7e60686a92b3f5
ENCRYPTION_SALT=f54695f8449a5b200c27ba5cacfff650e4f3e0ded1bedf59635e320b0077291a299816eb5df13de1277637212d2abc11a3a7b327fb89f3227b7811de06904896f987adcbcf4a5760a41b497b4bee4c14d0f6cc7dd4ad5f4cdf95a010f2e2a93a88b08188bd4e56bfe1846b0a9523d96f913abd5255f1061e856e835ff9811d42
ERLANG_COOKIE=b33ebdc8897ea0ad026ab2eb2c49fb6d9d0fa7a2522d28e83c4f3289dc1cea67dc4a458de60ebf4cc0d7
POSTGRES_PASSWORD=fb1164836b3d505f4c5943248d1ef5d8161a092d4a599f1f4dd0872f9751cc28487389a9e47debe79917
MEILI_MASTER_KEY=b74b3877078c6ccb406f81b952746f9f68e3e929d4a52f63a8cd85df2c23ad86e23508c7378e034d6215

Now the question is how to do something similar if you're shipping only a docker-compose and .env?

@ozoned@social.ozoned.net @bonfire@indieweb.social @coopcloud@social.coop