mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-02-22 10:24:09 +01:00
🧹📚 docs: refactor and clean up (#1392)
* 📑 update mkdocs * rename docker override file and add to gitignore * update .env.example - GOOGLE_MODELS * update index.md * doc refactor: split installation and configuration in two sub-folders * doc update: installation guides * doc update: configuration guides * doc: new docker override guide * doc: new beginner's guide for contributions - Thanks @Berry-13 * doc: update documentation_guidelines.md * doc: update testing.md * doc: update deployment guides * doc: update /dev readme * doc: update general_info * doc: add 0 value to doc weight * doc: add index.md to every doc folders * doc: add weight to index.md and move openrouter from free_ai_apis.md to ai_setup.md * doc: update toc so they display properly on the right had side in mkdocs * doc: update pandoranext.md * doc: index logging_system.md * doc: update readme.md * doc: update litellm.md * doc: update ./dev/readme.md * doc:🔖 new presets.md * doc: minor corrections * doc update: user_auth_system.md and presets.md, doc feat: add mermaid support to mkdocs * doc update: add screenshots to presets.md * doc update: add screenshots to - OpenID with AWS Cognito * doc update: BingAI cookie instruction * doc update: discord auth * doc update: facebook auth * doc: corrections to user_auth_system.md * doc update: github auth * doc update: google auth * doc update: auth clean up * doc organization: installation * doc organization: configuration * doc organization: features+plugins & update:plugins screenshots * doc organization: deploymend + general_info & update: tech_stack.md * doc organization: contributions * doc: minor fixes * doc: minor fixes
This commit is contained in:
parent
5c27fa304a
commit
51050cc4d3
66 changed files with 1617 additions and 869 deletions
|
|
@ -1,3 +1,7 @@
|
|||
---
|
||||
title: 🧑💻 Code Standards and Conventions
|
||||
weight: -7
|
||||
---
|
||||
# Coding Conventions
|
||||
|
||||
## Node.js API Server
|
||||
|
|
|
|||
|
|
@ -1,28 +1,40 @@
|
|||
---
|
||||
title: 📝 Documentation Guidelines
|
||||
weight: -9
|
||||
---
|
||||
# Documentation Guidelines
|
||||
|
||||
This document explains how to write and format documentation for LibreChat.
|
||||
|
||||
## New Documents
|
||||
- Use lowercase letters and underscores to name new documents (e.g. `documentation_guidelines.md`).
|
||||
- For new features, create new documentation and place it in the relevant folder/sub-folder under [docs](../docs/).
|
||||
- If the feature adds new functionality, add it to the feature section of the main [README.md](../../README.md).
|
||||
- When you create a new document, **add it to both table of contents:**
|
||||
- [README.md](../../README.md)
|
||||
- [mkdocs.yml](../../mkdocs.yml)
|
||||
- For new features, create new documentation and place it in the relevant folder/sub-folder under `../docs`.
|
||||
- If the feature adds new functionality, add it to the feature section of the main `README.md` as well as in `../docs/index.md`.
|
||||
- When you create a new document, **you need to add it to two table of contents:**
|
||||
- in `README.md`
|
||||
- and in the `index.md` file in the folder where your doc is located
|
||||
|
||||
## Formatting
|
||||
## Markdown Formatting
|
||||
- Use `#`, `##`, and `###` for headings and subheadings.
|
||||
- Use `#` for the title of the document.
|
||||
- Use `##` for the main sections of the document.
|
||||
- Use `###` for the sub-sections within a section.
|
||||
- Use `**` to make text bold to highlight important information (not in place of a heading).
|
||||
- Use `**` to make text **bold** to highlight important information (do not use in place of a heading).
|
||||
- Use relative paths for links to other documents.
|
||||
- You can use HTML to add more features to a document.
|
||||
- By default the title indexed by mkdocs will be the first heading. You can override this by adding metadata at the top of your document:
|
||||
```bash
|
||||
---
|
||||
title: Document Title
|
||||
weight: 0
|
||||
---
|
||||
```
|
||||
- Setting the weight in the document metadata will influence its position in the table of contents. Lowest weight are placed first. Not setting it will default to `0`. When multiple docs have the same weight it sorts in alphabetical order.
|
||||
|
||||
## Important Notes
|
||||
- **⚠️Keep it organized and structured⚠️**
|
||||
- Do not add unrelated information to an existing document. Create a new one if needed.
|
||||
- All assets should be uploaded in the document from GitHub's webui:
|
||||
- All assets should be uploaded in the document from GitHub's webui
|
||||
- **Before submitting a PR, double-check on GitHub that everything is properly displayed and that all links work correctly.**
|
||||
|
||||

|
||||
|
|
|
|||
66
docs/contributions/how_to_contribute.md
Normal file
66
docs/contributions/how_to_contribute.md
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
---
|
||||
title: 🙌 Beginner's Guide to Contributions
|
||||
weight: -10
|
||||
---
|
||||
# How to Contribute in a Quick and Easy Way
|
||||
|
||||
## Installation of Tools
|
||||
|
||||
1. [Git](https://git-scm.com/downloads) is essential, the first thing to download.
|
||||
2. [Git LFS](https://git-lfs.com/) can be useful for uploading files with larger sizes.
|
||||
3. [Github Desktop](https://desktop.github.com/) - I use it only for UI; I don't recommend using it for pushing or other actions.
|
||||
|
||||
## How to Use?
|
||||
|
||||
This will be a somewhat raw text, but I'll try to be as clear as possible.
|
||||
|
||||
I recommend installing the following extensions in VS Code:
|
||||
|
||||
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
|
||||
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
|
||||
- [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)
|
||||
|
||||
### Example of a Pull Request (PR)
|
||||
|
||||
Let's say I want to add another page for an API Panel.
|
||||
|
||||
1. Open GitHub and select Danny's fork.
|
||||
2. First, make sure that the main branch is clean with no commits and up to date.
|
||||

|
||||
3. Open "View all my branches" and create a new branch with a descriptive name for your task. For example: "ApiPanel."
|
||||
4. In GitHub Desktop, select the branch you just created.
|
||||

|
||||
5. Start modifying the code, and when you finish a part, commit the changes.
|
||||
Example of commits:
|
||||
- commit1: Created the frontend
|
||||
- commit2: Fixed a bug in variable export
|
||||
- commit3: Removed unnecessary comments and added translation support
|
||||
- and so on...
|
||||
|
||||
## Testing
|
||||
|
||||
While testing the code, if you're working with the frontend, it might be frustrating to run `npm run frontend` and `npm run backend` every time. Instead, use `npm run frontend:dev` to see real-time changes on port 3090 (really!).
|
||||
|
||||
> Note: You must run `npm run frontend` once before you can use `npm run frontend:dev`
|
||||
|
||||
### How?
|
||||
|
||||
- `git add *` adds all files to be committed.
|
||||
- `git commit -m "name-of-your-commit"` creates a commit.
|
||||
- `git push` uploads the changes.
|
||||
|
||||
Before doing all this, I recommend using GitHub Desktop to see what you've changed.
|
||||

|
||||
|
||||
If `git commit` fails due to ESLint errors, read the error message and understand what's wrong. It could be an unused variable or other issues.
|
||||
|
||||
### Possible Various Problems
|
||||
|
||||
If you have the main branch with many commits and don't know what to do, follow this simple guide:
|
||||
|
||||
⚠️ Please do this only when you have no active PRs or when you're not working on the project:
|
||||
|
||||
1. Do a pull origin and in the terminal write `git log` to identify how many commits you are behind.
|
||||
2. Use `git rebase -i HEAD~2`, where 2 represents the number of commits you need to go back. If you need to go back 100 commits, use `git rebase -i HEAD~100`.
|
||||
3. In the editor, change the "pick" for the two commits to "drop," save with "esc," then type `:wq` and press "Enter."
|
||||
4. Finally, run `git push --force origin main`.
|
||||
14
docs/contributions/index.md
Normal file
14
docs/contributions/index.md
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
title: Contributing to LibreChat
|
||||
weight: 5
|
||||
---
|
||||
# Contributing to LibreChat
|
||||
|
||||
* 🙌 [Beginner's Guide to Contributions](./how_to_contribute.md)
|
||||
* 🚸 [Contributor Guidelines](https://github.com/danny-avila/LibreChat/blob/main/.github/CONTRIBUTING.md)
|
||||
* 📝 [Documentation Guidelines](documentation_guidelines.md)
|
||||
* 🌍 [Contribute a Translation](translation_contribution.md)
|
||||
* 🧑💻 [Code Standards and Conventions](coding_conventions.md)
|
||||
* 🧪 [Testing During Development](testing.md)
|
||||
* 🔐 [Security](https://github.com/danny-avila/LibreChat/blob/main/.github/SECURITY.md)
|
||||
* 🛣️ [Project Roadmap](https://github.com/users/danny-avila/projects/2)
|
||||
|
|
@ -1,60 +1,22 @@
|
|||
---
|
||||
title: 🧪 Testing During Development
|
||||
weight: -6
|
||||
---
|
||||
|
||||
# Locally test the app during development
|
||||
|
||||
### Run the app
|
||||
## WIP
|
||||
|
||||
#### Option 1: Run the app using Docker
|
||||
## Run the tests
|
||||
|
||||
For reproducibility and ease of use, you can use
|
||||
the provided docker-compose file:
|
||||
|
||||
1. Comment out the portion pointing at the already built image
|
||||
|
||||
```yaml
|
||||
image: chatgptclone/app:0.3.3
|
||||
```
|
||||
|
||||
2. Uncomment the portion pointing at the local source code
|
||||
|
||||
```yaml
|
||||
# image: node-api
|
||||
# build:
|
||||
# context: .
|
||||
# target: node-api
|
||||
```
|
||||
|
||||
3. Build your local source code for the `node-api` target
|
||||
|
||||
```shell
|
||||
docker build `
|
||||
--target=node-api `
|
||||
-t node-api `
|
||||
.
|
||||
```
|
||||
|
||||
4. Docker-compose up
|
||||
|
||||
```shell
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
#### Option 2: Run the app by installing on your machine
|
||||
|
||||
1. Install the prerequisites on your machine.
|
||||
See [section above](#install-the-prerequisites-on-your-machine).
|
||||
|
||||
2. Run the app on your machine.
|
||||
See [section above](#run-the-app).
|
||||
|
||||
### Run the tests
|
||||
|
||||
1. Install the global dependencies
|
||||
#### 1. Install the global dependencies
|
||||
|
||||
```shell
|
||||
npm ci
|
||||
npx playwright install --with-deps
|
||||
```
|
||||
|
||||
2. Run tests
|
||||
#### 2. Run tests
|
||||
|
||||
```shell
|
||||
npx playwright test
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
---
|
||||
title: 🌍 Contribute a Translation
|
||||
weight: -8
|
||||
---
|
||||
# How to add a new language to LibreChat 🌍
|
||||
|
||||
## Minimum Requirements:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue