Getting Started for Contributors
Requirements
- Git (Essential)
- Node.js (Essential, use the LTS version)
- MongoDB (Essential, for the database)
- Git LFS (Useful for larger files)
- GitHub Desktop (Optional)
- VSCode (Recommended Source-code Editor)
Recommended VSCode Extensions
Install these extensions in VS Code:
Prepare the Environment
GitHub
-
Fork the LibreChat repository: https://github.com/danny-avila/LibreChat/fork
-
Create a branch on your fork, name it properly, and link it to the original repository.
- Download your new branch to your local PC
git clone -b branch-name https://github.com/username/LibreChat.git
Replace
branch-name
andusername
with your details
Open in VS Code
- After cloning your branch:
Navigate to LibreChat folder
cd LibreChat
Open in VS Codecode .
Prepare LibreChat
-
Open the terminal in VS Code with
ctrl
+shift
+`
Alternatively, use
ctrl
+j
to open the bottom pane and select the terminal. -
Install LibreChat dependencies
npm ci
-
Build Frontend
npm run frontend
-
.env Configuration
- Create the
.env
file. If you don’t have one, duplicate.env.example
and configure it.
- Create the
Development Workflow
For efficient work on LibreChat, use these commands:
-
Starting Backend:
- Use
npm run backend
for normal operation. - For active development, use
npm run backend:dev
to monitor changes. - Access at
http://localhost:3080/
.
- Use
-
Running Frontend in Development Mode:
- Ensure backend is running.
- Use
npm run frontend:dev
to monitor frontend changes. - View at
http://localhost:3090/
.
Local Testing
Before submission, test your updates locally, see: Perform Tests Locally
By running tests, ensure your contributions are robust and ready for integration.
Commit, Push, Pull Request (PR)
Make a Commit
Commits mark logical checkpoints in development. Include clear messages explaining changes.
Example:
git add .
git commit -m "Add login functionality"
Push Changes
Push changes to the remote repository after completing a feature or fixing an issue.
Example:
git push origin feature-branch-name
Create a Pull Request (PR)
Pull Request merges changes from a feature branch into the main branch.
- Pull latest changes from main branch and resolve conflicts.
- Push updated feature branch.
- Ensure code follows project guidelines.
Example:
git checkout main
git pull origin main
git checkout feature-branch-name
git merge main
# Resolve conflicts if any
git push origin feature-branch-name
# Open PR on GitHub
Access your repository in a browser and click “Contribute”
Revert Commits Safely
To undo changes in a feature branch, follow these steps cautiously:
-
1. Update local repository from feature branch:
git pull origin feature-branch-name
-
2. Review commit history to determine commits to revert:
git log
-
3. Start an interactive rebase for 'N' commits to revert:
git rebase -i HEAD~N
Replace
pick
withdrop
for commits to remove. Save and exit editor. -
4. Force push changes to remote repository:
git push --force origin feature-branch-name