Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

chore(contributions): update local environment setup documentation#41401

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
sebastianiv21 wants to merge2 commits intorelease
base:release
Choose a base branch
Loading
fromchore/update-local-environment-setup-docs

Conversation

@sebastianiv21
Copy link

@sebastianiv21sebastianiv21 commentedNov 20, 2025
edited by coderabbitaibot
Loading

Updated developer documentation to standardize Node.js version requirement to 20.11.1 and added comprehensive RTS (Real-Time Server) setup instructions in ServerSetup.md for both MacOS/Linux and Windows WSL2 environments.

The changes clarify when RTS is needed (for collaborative features, real-time sync, WebSocket communication) versus optional (for basic backend changes), include step-by-step setup instructions with proper version management using nvm/fnm, and position RTS startup before the Java server to reflect the correct initialization order. Also updated environment configuration examples and git root storage folder setup documentation.

Description

Tip

Add a TL;DR when the description is longer than 500 words or extremely technical (helps the content, marketing, and DevRel team).

Please also include relevant motivation and context. List any dependencies that are required for this change. Add links to Notion, Figma or any other documents that might be relevant to the PR.

Fixes #Issue Number
or
FixesIssue URL

Warning

If no issue exists, please create an issue first, and check with the maintainers if the issue is valid.

Automation

/ok-to-test tags=""

🔍 Cypress test results

Warning

Tests have not run on the HEADdf74333 yet


Wed, 26 Nov 2025 23:27:48 UTC

Communication

Should the DevRel and Marketing teams inform users about this change?

  • Yes
  • No

Summary by CodeRabbit

  • Documentation

    • Updated Node.js requirement to 20.11.1 for setup.
    • Added comprehensive Real-Time Server (RTS) setup guidance and step-by-step workflows across all local environments.
    • Clarified and reorganized setup instructions and numbering for Windows, WSL, macOS, and Unix.
  • Chores

    • Added an option to configure a custom Git repository root for local development.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitaibot commentedNov 20, 2025
edited
Loading

Walkthrough

Adds a newAPPSMITH_GIT_ROOT environment variable and updates Node.js version guidance to 20.11.1; expands ServerSetup documentation with Real-Time Server (RTS) setup and related run-flow instructions across supported platforms.

Changes

Cohort / File(s)Summary
Environment Configuration
app/server/envs/dev.env.example
AddedAPPSMITH_GIT_ROOT environment variable with example value./path/to/repo/directory.
Client setup docs
contributions/ClientSetup.md
Updated Node.js version guidance from18.17.1 to20.11.1; minor prompt formatting adjustments.
Server setup docs (RTS + env)
contributions/ServerSetup.md
Added RTS (Real-Time Server) setup and run instructions, integrated RTS steps into Windows/WSL and macOS/Unix flows, introduced example usage ofAPPSMITH_GIT_ROOT, and updated Node.js requirement to20.11.1.

Sequence Diagram(s)

sequenceDiagram  autonumber  participant Dev as Developer  participant Env as Dev Env (.env)  participant RTS as RTS (Real-Time Server)  participant Java as Java Server  participant DB as Database  Dev->>Env: set APPSMITH_GIT_ROOT, Node v20.11.1  Dev->>RTS: start RTS (per docs)  RTS->>Java: coordinate realtime features / proxies  Dev->>Java: start Java server (migrations/status)  Java->>DB: run migrations / serve requests  note right of RTS `#D6EAF8`: RTS is optional but documented for local dev flows
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Focus review on documentation accuracy and consistency of Node.js version references.
  • Verify theAPPSMITH_GIT_ROOT example path and any corresponding references in ServerSetup.
  • Confirm RTS command snippets and step ordering are correct for each platform.

Poem

🛠️ Node twenty arrives, a neat little boost,
A git-root set down so repos find their roost,
RTS whispers, "start me" — the docs give the cue,
Developers smile as the local stack comes through. ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check nameStatusExplanationResolution
Description check❓ InconclusiveThe description provides clear context on what was changed (Node.js 20.11.1, RTS setup, environment config), why it matters (collaborative features, correct startup order), and covers most objectives. However, it does not reference a specific issue number despite the template requiring one.Add a reference to the related issue (e.g., 'Fixes #<issue_number>') to fully comply with the template requirement, or confirm with maintainers if this is a valid exception.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Title check✅ PassedThe title accurately reflects the main change: updating local environment setup documentation with Node.js version standardization and RTS setup instructions.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branchchore/update-local-environment-setup-docs

Tip

📝 Customizable high-level summaries are now available in beta!

You can now customize how CodeRabbit generates thehigh-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide your own instructions using thehigh_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Usehigh_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. 📝 Description — Summarize the main change in 50–60 words, explaining what was done.
  2. 📓 References — List relevant issues, discussions, documentation, or related PRs.
  3. 📦 Dependencies & Requirements — Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. 📊 Contributor Summary — Include a Markdown table showing contributions:
    | Contributor | Lines Added | Lines Removed | Files Changed |
  5. ✔️ Additional Notes — Add any extra reviewer context.
    Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later.


Thanks for usingCodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment@coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitaicoderabbitaibot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (3)
app/server/envs/dev.env.example (1)

7-8:Consider adding an inline comment for APPSMITH_GIT_ROOT.

While consistent with the file's minimal comment style, a brief inline comment explaining this variable's purpose would improve developer experience without requiring them to reference ServerSetup.md.

Example:

+# Directory path where git repositories will be stored for version control features APPSMITH_GIT_ROOT=./path/to/repo/directory
contributions/ServerSetup.md (2)

286-292:Consider structural consistency with macOS section.

The APPSMITH_GIT_ROOT content is identical to the macOS section (lines 159-163), but the placement and heading differ. The macOS section places this as step 8 within the build workflow, while WSL has it as a separate section before the build steps.

This inconsistency might confuse developers switching between platforms. Consider either:

  1. Placing this in the same workflow position for both platforms, or
  2. Adding a note explaining why the placement differs

337-381:LGTM! WSL RTS setup is consistent with macOS section.

The RTS setup instructions are identical to the macOS section (lines 165-209), which is appropriate since the RTS setup process is platform-independent.

For future maintenance, consider consolidating the RTS setup into a shared section and referencing it from both platform-specific sections to avoid duplication. For example:

##Building and running the code...7. Running the RTS (Real-Time Server)   See the[RTS Setup Guide](#rts-setup) for detailed instructions.

This would reduce duplication and make updates easier, though the current approach is also acceptable.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between5b34cf3 and39b62ca.

📒 Files selected for processing (3)
  • app/server/envs/dev.env.example (1 hunks)
  • contributions/ClientSetup.md (2 hunks)
  • contributions/ServerSetup.md (4 hunks)
🧰 Additional context used
🧠 Learnings (6)
📓 Common learnings
Learnt from: sharat87Repo: appsmithorg/appsmith PR: 37341File: deploy/docker/base.dockerfile:49-50Timestamp: 2024-11-12T14:29:18.087ZLearning: In the Appsmith project, avoid pinning the minor Node.js version in Dockerfiles, aligning with the Node.js engine specified in `src/client/package.json` as `^20.11.1`.
📚 Learning: 2024-10-08T15:32:39.374Z
Learnt from: sharat87Repo: appsmithorg/appsmith PR: 29585File: deploy/docker/fs/opt/appsmith/caddy-reconfigure.mjs:8-8Timestamp: 2024-10-08T15:32:39.374ZLearning: The `APPSMITH_CUSTOM_DOMAIN` environment variable is not being deleted and should remain in use as per the current codebase configuration.

Applied to files:

  • app/server/envs/dev.env.example
📚 Learning: 2024-10-08T15:32:34.115Z
Learnt from: sharat87Repo: appsmithorg/appsmith PR: 28081File: deploy/docker/fs/opt/appsmith/caddy-reconfigure.mjs:7-7Timestamp: 2024-10-08T15:32:34.115ZLearning: The `TMP` environment variable is set in the Docker image for the Appsmith project, as clarified by the user sharat87.

Applied to files:

  • app/server/envs/dev.env.example
📚 Learning: 2024-10-07T09:13:14.613Z
Learnt from: abhvsnRepo: appsmithorg/appsmith PR: 36670File: deploy/docker/fs/opt/appsmith/entrypoint.sh:465-483Timestamp: 2024-10-07T09:13:14.613ZLearning: In the `deploy/docker/fs/opt/appsmith/entrypoint.sh` script, `APPSMITH_PG_DATABASE` is a constant with the value `appsmith`, so we can assume it remains constant and doesn't require additional quoting in SQL commands.

Applied to files:

  • app/server/envs/dev.env.example
📚 Learning: 2024-10-25T08:31:07.651Z
Learnt from: abhvsnRepo: appsmithorg/appsmith PR: 37068File: deploy/docker/fs/opt/appsmith/pg-utils.sh:125-132Timestamp: 2024-10-25T08:31:07.651ZLearning: In `deploy/docker/fs/opt/appsmith/pg-utils.sh`, the `POSTGRES_ADMIN_USER` (`postgres`) uses trust-based authentication in the local environment, so password handling changes for local setup may not be needed.

Applied to files:

  • app/server/envs/dev.env.example
📚 Learning: 2024-11-12T14:29:18.087Z
Learnt from: sharat87Repo: appsmithorg/appsmith PR: 37341File: deploy/docker/base.dockerfile:49-50Timestamp: 2024-11-12T14:29:18.087ZLearning: In the Appsmith project, avoid pinning the minor Node.js version in Dockerfiles, aligning with the Node.js engine specified in `src/client/package.json` as `^20.11.1`.

Applied to files:

  • contributions/ClientSetup.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: server-spotless / spotless-check
  • GitHub Check: server-unit-tests / server-unit-tests
🔇 Additional comments (5)
contributions/ClientSetup.md (1)

97-97:LGTM! Node.js version update aligns with requirements.

The update to 20.11.1 is consistent with the RTS server requirements and matches the Node.js engine specification in package.json.

contributions/ServerSetup.md (4)

46-46:LGTM! Node.js version requirement clearly specified.

The update to 20.11.1 with RTS context and version manager suggestions is clear and helpful.


159-163:LGTM! APPSMITH_GIT_ROOT configuration is clear.

The example path and configuration instructions are appropriate for the development environment.


165-209:LGTM! RTS setup guidance is comprehensive and helpful.

The "When do you need to run RTS?" section provides clear use cases, and the step-by-step instructions are well-structured. This significantly improves the developer experience.


232-232:LGTM! WSL Node.js requirement matches macOS section.

Consistent version requirement across platforms.

@github-actions
Copy link

Failed server tests

  • com.appsmith.server.helpers.UserUtilsTest#makeInstanceAdministrator_WhenUserAlreadyAdmin_MaintainsPermissionsSuccessfully

Copy link
Contributor

@coderabbitaicoderabbitaibot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
contributions/ServerSetup.md (1)

233-233:Minor inconsistency: different status check endpoints between macOS and WSL2.

macOS useshttp://localhost:8080/api/v1/users/me while WSL2 uses barehttp://localhost:8080. Both work, but for consistency and clarity, use the same endpoint. The WSL2 section also mentions "HTTP 401 error" which may be misleading on the bare endpoint.

Consider standardizing to the/api/v1/users/me endpoint for both platforms.

Also applies to: 406-406

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between39b62ca anddf74333.

📒 Files selected for processing (1)
  • contributions/ServerSetup.md (4 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: sharat87Repo: appsmithorg/appsmith PR: 37341File: deploy/docker/base.dockerfile:49-50Timestamp: 2024-11-12T14:29:18.087ZLearning: In the Appsmith project, avoid pinning the minor Node.js version in Dockerfiles, aligning with the Node.js engine specified in `src/client/package.json` as `^20.11.1`.
Learnt from: sharat87Repo: appsmithorg/appsmith PR: 29585File: deploy/docker/fs/opt/appsmith/caddy-reconfigure.mjs:8-8Timestamp: 2024-10-08T15:32:39.374ZLearning: The `APPSMITH_CUSTOM_DOMAIN` environment variable is not being deleted and should remain in use as per the current codebase configuration.
Learnt from: sharat87Repo: appsmithorg/appsmith PR: 29585File: deploy/docker/fs/opt/appsmith/caddy-reconfigure.mjs:8-8Timestamp: 2024-07-26T21:12:57.228ZLearning: The `APPSMITH_CUSTOM_DOMAIN` environment variable is not being deleted and should remain in use as per the current codebase configuration.
🪛 markdownlint-cli2 (0.18.1)
contributions/ServerSetup.md

183-183: Headings must start at the beginning of the line

(MD023, heading-start-left)


196-196: Headings must start at the beginning of the line

(MD023, heading-start-left)


355-355: Headings must start at the beginning of the line

(MD023, heading-start-left)


368-368: Headings must start at the beginning of the line

(MD023, heading-start-left)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: server-spotless / spotless-check
  • GitHub Check: server-unit-tests / server-unit-tests
🔇 Additional comments (6)
contributions/ServerSetup.md (6)

46-46:Node.js version standardization looks good.

Pinning to 20.11.1 for local development is clear and appropriate, with fallback instructions for nvm/fnm. Version guidance is consistent across macOS and WSL2 platforms.

Also applies to: 198-205, 246-246, 370-377


179-223:Clarify why RTS must start before the Java server.

The documentation prescribes starting RTS (step 9) before the Java server (step 10), which is atypical. Add a brief note explaining the architectural reason—does the Java server depend on RTS being available at startup, or is this merely a recommended order for feature parity?

This helps developers understand the dependency chain and troubleshoot startup issues more effectively.

Also applies to: 224-227


53-66:Java/Maven version verification section is well-structured.

The new troubleshooting section (detecting misaligned Java versions and providing remediation) is helpful for developers with multiple Java installations. Clear detection, verification, and remediation steps.


224-227:Verify step numbering consistency between macOS and WSL2 sections.

The macOS section has "10. Start the Java server" while WSL2 has "8. Start the Java server". Ensure step numbers are correctly sequential and consistent across both platform sections after the RTS insertion. The renumbering due to RTS addition appears to have diverged between sections.

Please audit the full step sequence (1-10+) for both macOS and WSL2 to ensure logical progression and consistency.

Also applies to: 396-402


207-220:The RTS directory path and start-server.sh script are correctly referenced and present in the repository.

All verification checks passed:

  • app/client/packages/rts directory exists
  • start-server.sh script exists and is executable
  • .env.example file is present for the environment setup step
  • ✓ Directory structure matches the documentation instructions

The documentation at lines 207–220 (and 379–392) accurately reflects the actual repository structure and available resources. No corrections are needed.


173-177:APPSMITH_GIT_ROOT is a recognized and properly integrated environment variable—the documentation is accurate.

The variable is actively used throughout the codebase:

  • Java Server: Defined inapp/server/appsmith-git/src/main/resources/application.properties asappsmith.git.root = ${APPSMITH_GIT_ROOT:} and injected intoGitServiceConfig via@Value annotation
  • RTS (Real-Time Server): Read inapp/client/packages/rts/src/ctl/backup/links/GitStorageLink.ts viaprocess.env.APPSMITH_GIT_ROOT
  • Docker Runtime: Properly handled indeploy/docker/fs/opt/appsmith/run-with-env.sh with fallback default/appsmith-stacks/git-storage
  • Tests: Unit tests inapp/client/packages/rts/src/ctl/backup/backup.test.ts validate its behavior

The documentation at lines 173-177 (macOS) and 302-306 (WSL2) correctly documents this variable.

Comment on lines +183 to +195
###When do you need to run RTS?

**You need RTS if you are:**
- Running the Java server locally and working on collaborative features
- Developing or testing real-time synchronization functionality
- Testing the full editor experience with live updates between multiple users
- Working on features that depend on WebSocket communication

**You can skip RTS if you are:**
- Only making backend changes that don't involve real-time features
- Working on individual components without multi-user synchronization requirements
- Testing basic API functionality that doesn't require live updates

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue |🟡 Minor

Fix markdown linting violations (MD023): headings must start at line beginning.

Headings within numbered list items (lines 183, 196) are indented and trigger linting errors. Convert these to bold text or restructure to comply with markdown standards.

Apply this diff for the macOS section:

   9. Running the RTS (Real-Time Server)     The RTS Server enables real-time communication features in Appsmith, such as collaborative editing and live synchronization via WebSockets.-    ### When do you need to run RTS?+    **When do you need to run RTS?**     **You need RTS if you are:**     - Running the Java server locally and working on collaborative features     - Developing or testing real-time synchronization functionality     - Testing the full editor experience with live updates between multiple users     - Working on features that depend on WebSocket communication     **You can skip RTS if you are:**     - Only making backend changes that don't involve real-time features     - Working on individual components without multi-user synchronization requirements     - Testing basic API functionality that doesn't require live updates-    ### Steps to run RTS:+    **Steps to run RTS:**

Apply the same fix to lines 355 and 368 in the WSL2 section.

Also applies to: 196-222

🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

183-183: Headings must start at the beginning of the line

(MD023, heading-start-left)

🤖 Prompt for AI Agents
In contributions/ServerSetup.md around lines 183-195 (and also apply to 196-222,line 355 and line 368), headings nested inside list items are indented andtrigger MD023; convert those indented headings to plain bold text or move themto start-of-line (remove the leading list indentation) so headings begin atcolumn 0 and comply with markdown rules; for the macOS section apply the samechange (replace the indented "###" headings with bold text or unindentedheadings) and mirror the identical fixes in the WSL2 section at the specifiedlines.

@github-actions
Copy link

Failed server tests

  • com.appsmith.server.helpers.UserUtilsTest#makeInstanceAdministrator_WhenUserAlreadyAdmin_MaintainsPermissionsSuccessfully

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@coderabbitaicoderabbitai[bot]coderabbitai[bot] left review comments

@tomjose92tomjose92Awaiting requested review from tomjose92

At least 1 approving review is required to merge this pull request.

Assignees

@sebastianiv21sebastianiv21

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant

@sebastianiv21

[8]ページ先頭

©2009-2025 Movatter.jp