Skip to content

release Docker image runs with tsx index.ts (development mode), causing high CPU usage and poor performance #1673

@seferdemirci

Description

@seferdemirci

Describe the Bug

The officially published release image on GHCR (ghcr.io/karakeep-app/karakeep:release) appears to run the application using tsx index.ts, resulting in on-the-fly TypeScript transpilation at runtime. This behavior is consistent with development mode, not production.

This leads to consistently high CPU usage and poor performance, especially on resource-constrained hardware such as Intel NUCs. We observed tsx, esbuild, and next-server processes consuming large amounts of CPU time, even during idle periods.

Expected behaviour for a release image is to run precompiled JavaScript (e.g., via node apps/web/server.js), not live compilation via tsx.

Steps to Reproduce

  1. Create a docker-compose.yml using the image ghcr.io/karakeep-app/karakeep:release
  2. Deploy the stack using docker-compose up -d
  3. docker exec into the hoarder_web_1 container
  4. Run top or htop and observe high CPU usage from tsx, esbuild, and next-server
  5. Check the process list and find that the entry point is tsx index.ts, not a precompiled server

Expected Behaviour

The release image should run precompiled production code without invoking tsx, esbuild, or any other live compilation tooling at runtime. This is critical for performance, particularly in production environments.
Expected entrypoint: node apps/web/server.js

Screenshots or Additional Context

Image

We validated that:

  • The image used is ghcr.io/karakeep-app/karakeep:release (image hash: 755dcc8a2355)
  • No local mounts or overrides were involved
  • Container file system shows a monorepo structure, with index.ts as the main entrypoint

Device Details

Intel NUC5CPYH, CPU: Intel Celeron N3050 (2 cores), RAM: 8GB, OS: Ubuntu Server 24.04

Exact Karakeep Version

v0.25.0

Have you checked the troubleshooting guide?

  • I have checked the troubleshooting guide and I haven't found a solution to my problem

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingstatus/untriagedThis issue needs triaging to confirm it

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions