Suggestions for Optimizing Twenty's Installation and Performance with Podman-Compose #13479
Lord-KalEl
started this conversation in
Engineering vision
Replies: 1 comment
-
To add to point 2: is there a reason why the Alpine version for Redis is not used either? ❯ docker images "redis*"
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest cc2dfb8f5151 7 days ago 222MB
redis alpine 987c376c7276 7 days ago 98.8MB For production workloads, saving on disk space can be crucial. It’s a ~55% difference in image size here, so unless Twenty sees a performance drop when using the Alpine version, it’s probably better to use it. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
During the installation of Twenty, I noticed a few areas that could potentially be improved. Twenty is a fantastic project, and I was eager to try it out. I opted for the Podman-Compose method, which is the focus of this post.
Postgres: There are multiple Postgres images available, and users should choose what suits their needs. In my case, as I use many container images, I try to be mindful of disk space (and thus performance). There’s a standard version and a lighter Alpine version. When I used the 50% smaller Alpine version, I couldn’t install the program properly because the database was allegedly not empty, causing issues with the init script (according to AI analysis).
My question is: Is this expected behavior?
The image itself is 2.07 GB, which is quite large for a project like this. Making the project even larger by using oversized images isn’t ideal for performance.
Redis: This isn’t something you can directly control, but it’s worth considering. I use Dragonfly as an alternative to Redis, which can be up to 25x faster. However, Twenty uses functions that Dragonfly doesn’t yet support—this isn’t your fault. My question is: How critical are these functions, and what can be done to ensure compatibility with Dragonfly relatively quickly?
General:
I’m wondering how the program is structured to result in such a large footprint. Since it needs to be loaded twice, it becomes very resource-heavy. Is there a way to make it smaller without sacrificing functionality? Could developers explore optimizations or ensure the images aren’t overly bloated? (It doesn’t need to be completely minimal.)
For example: Each image includes an operating system. Is it necessary to load the OS twice? Couldn’t it be loaded once, with the process started twice within the container? This could reduce overhead and potentially optimize performance.
This is meant to spark discussion, not to directly criticize the developers. Overall, I’d like to thank you for the effort and work you’ve put into this project.
Thank you,
Best regards,
Kal
Beta Was this translation helpful? Give feedback.
All reactions