🧹📚 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:
Fuegovic 2023-12-22 08:36:42 -05:00 committed by GitHub
parent 5c27fa304a
commit 51050cc4d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
66 changed files with 1617 additions and 869 deletions

View file

@ -1,3 +1,7 @@
---
title: 🧑‍💻 Code Standards and Conventions
weight: -7
---
# Coding Conventions
## Node.js API Server

View file

@ -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.**
![image](https://github.com/danny-avila/LibreChat/assets/32828263/4f138ab4-31a5-4fae-a459-5335e5ff25a8)

View 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.
![image](https://github.com/Berry-13/LibreChat/assets/81851188/4d627ee7-0f59-458f-8723-4f0eae447dd9)
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.
![image](https://github.com/Berry-13/LibreChat/assets/81851188/dd4374b8-419a-4406-97a3-999ba4118397)
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.
![image](https://github.com/Berry-13/LibreChat/assets/81851188/a04a7e81-7c75-4c77-8463-d35f603bedf7)
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`.

View 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)

View file

@ -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

View file

@ -1,3 +1,7 @@
---
title: 🌍 Contribute a Translation
weight: -8
---
# How to add a new language to LibreChat 🌍
## Minimum Requirements: