[Chore/Refactor] Remove PM2 #20477

Open
opened 2026-02-21 20:07:37 -05:00 by yindo · 1 comment
Owner

Originally created by @DavideDelbianco on GitHub (Nov 21, 2025).

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • This is only for refactoring, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
  • Please do not modify this template :) and fill in all the required fields.

Description

You should remove the obsolete PM2, that defaults to 2 instanced per container, and allow user to handle replicas by orchestrator's native means. it would reduce unneeded overhead of 300mb in the web image

Motivation

No response

Additional Context

No response

Originally created by @DavideDelbianco on GitHub (Nov 21, 2025). ### Self Checks - [x] I have read the [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) and [Language Policy](https://github.com/langgenius/dify/issues/1542). - [x] This is only for refactoring, if you would like to ask a question, please head to [Discussions](https://github.com/langgenius/dify/discussions/categories/general). - [x] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones. - [x] I confirm that I am using English to submit this report, otherwise it will be closed. - [x] 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :) - [x] Please do not modify this template :) and fill in all the required fields. ### Description You should remove the obsolete PM2, that defaults to 2 instanced per container, and allow user to handle replicas by orchestrator's native means. it would reduce unneeded overhead of 300mb in the web image ### Motivation _No response_ ### Additional Context _No response_
yindo added the good first issuerefactor labels 2026-02-21 20:07:37 -05:00
Author
Owner

@xtallp commented on GitHub (Nov 22, 2025):

Hi! I'd like to work on removing PM2 from the web container.

I've analyzed the codebase and found PM2 is used in:

  • web/Dockerfile - installation and ENV variable
  • web/docker/entrypoint.sh - startup command
  • docker/docker-compose.yaml and docker-compose-template.yaml - PM2_INSTANCES env var
  • web/README.md - documentation (line 82)

My plan:

  1. Remove PM2 installation from Dockerfile
  2. Remove ENV PM2_INSTANCES=2
  3. Replace PM2 startup with exec node server.js in entrypoint.sh
  4. Remove PM2_INSTANCES from docker-compose files
  5. Update README with native scaling examples

What do you think? I'm ready to work on this if it looks good

@xtallp commented on GitHub (Nov 22, 2025): Hi! I'd like to work on removing PM2 from the web container. I've analyzed the codebase and found PM2 is used in: - `web/Dockerfile` - installation and ENV variable - `web/docker/entrypoint.sh` - startup command - `docker/docker-compose.yaml` and `docker-compose-template.yaml` - PM2_INSTANCES env var - `web/README.md` - documentation (line 82) My plan: 1. Remove PM2 installation from Dockerfile 2. Remove `ENV PM2_INSTANCES=2` 3. Replace PM2 startup with `exec node server.js` in entrypoint.sh 4. Remove PM2_INSTANCES from docker-compose files 5. Update README with native scaling examples What do you think? I'm ready to work on this if it looks good
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#20477