Skip to content

Conversation

xuatz
Copy link
Collaborator

@xuatz xuatz commented Jun 17, 2025

Summary

  • add simple script to start local dev environment

Details

Actually, i would prefer doing docker compose up -d, but it's not working perfectly at the moment. Even when it's perfect, there might be people who prefer not to use docker for dev, so maybe we can keep this even after that.

But I'm not sure if we want this or not yet, but if this is welcomed, I'll update the docs as well to mention this.

@irobot
Copy link
Contributor

irobot commented Jun 17, 2025

To me this would be useful. A few things I'm wondering:

  • Shouldn't there also be a check to ensure the Chrome container is up and running?
  • Personally I would start workers and web in separate terminals. This way the logs remain distinct and easier to navigate. Would there be a way to somehow achieve the same here? OTOH I could see some value in them being intermingled, so probably not that important.
  • Have you tried docker-compose.dev? If so, I briefly looked at Dockerfile.dev and it seems like it's missing the yt-dlp dependency. Could that be (part of) the problem you were having?

@xuatz
Copy link
Collaborator Author

xuatz commented Jun 18, 2025

@irobot

Shouldn't there also be a check to ensure the Chrome container is up and running?

mmm I haven't had to test anything that required it so i haven't thought about it lol.
i think running the current 3 services represents the bare minimum, so maybe we can keep it as default, and add additional flags to run "everything else" or "full", which tentatively includes the chrome container. What do you think about that?

Personally I would start workers and web in separate terminals. This way the logs remain distinct and easier to navigate. Would there be a way to somehow achieve the same here? OTOH I could see some value in them being intermingled, so probably not that important.

If i need to dig deeper into the logs, I would run the separately, but usually I just want to start the dev environment to run a PR branch locally.

Have you tried docker-compose.dev? If so, I briefly looked at Dockerfile.dev and it seems like it's missing the yt-dlp dependency. Could that be (part of) the problem you were having?

I was trying to get the volumes setup "nicely" and also getting the relative paths to the .env aligned, but i run into some problem when trying to do the db migration. I can probably find out what my actual problem is with some time, but since there is an open PR to fix/improve it, I decided I'll just spend my time elsewhere instead

@irobot
Copy link
Contributor

irobot commented Jun 18, 2025

Shouldn't there also be a check to ensure the Chrome container is up and running?

mmm I haven't had to test anything that required it so i haven't thought about it lol. i think running the current 3 services represents the bare minimum, so maybe we can keep it as default, and add additional flags to run "everything else" or "full", which tentatively includes the chrome container. What do you think about that?

@xuatz Here's my understanding so far:

  • Ingestion - chrome is essential in the process of saving hoarded pages, e.g. reader view, screenshot capture. meilisearch has no role in any of that.
  • Viewing - chrome is not relevant for viewing already stored links, while meilisearch is.

In summary, depending on what you're working on, you might need only one or the other, or both. If we had to choose only one, it would be difficult for me to pick which one would be more useful to have as a default. Otherwise, for consistency it seems appropriate to have both.

@xuatz
Copy link
Collaborator Author

xuatz commented Jun 18, 2025

Shouldn't there also be a check to ensure the Chrome container is up and running?

mmm I haven't had to test anything that required it so i haven't thought about it lol. i think running the current 3 services represents the bare minimum, so maybe we can keep it as default, and add additional flags to run "everything else" or "full", which tentatively includes the chrome container. What do you think about that?

@xuatz Here's my understanding so far:

  • Ingestion - chrome is essential in the process of saving hoarded pages, e.g. reader view, screenshot capture. meilisearch has no role in any of that.
  • Viewing - chrome is not relevant for viewing already stored links, while meilisearch is.

In summary, depending on what you're working on, you might need only one or the other, or both. If we had to choose only one, it would be difficult for me to pick which one would be more useful to have as a default. Otherwise, for consistency it seems appropriate to have both.

@irobot
let's have both by default then ^^

Copy link
Contributor

@irobot irobot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! Thank you!

@MohamedBassem
Copy link
Collaborator

This is pretty cool, thanks @xuatz!

@MohamedBassem MohamedBassem merged commit 88e4ea9 into karakeep-app:main Jun 21, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants