Skip to content

Latest commit

 

History

History
166 lines (107 loc) · 8.7 KB

CONTRIBUTING.md

File metadata and controls

166 lines (107 loc) · 8.7 KB

Contributing to Flowise

English | 中文

We appreciate any form of contributions.

⭐ Star

Star and share the Github Repo.

🙋 Q&A

Search up for any questions in Q&A section, if you can't find one, don't hesitate to create one. It might helps others that have similar question.

🙌 Share Chatflow

Yes! Sharing how you use Flowise is a way of contribution. Export your chatflow as JSON, attach a screenshot and share it in Show and Tell section.

💡 Ideas

Ideas are welcome such as new feature, apps integration, and blockchain networks. Submit in Ideas section.

🐞 Report Bugs

Found an issue? Report it.

👨‍💻 Contribute to Code

Not sure what to contribute? Some ideas:

  • Create new components from Langchain
  • Update existing components such as extending functionality, fixing bugs
  • Add new chatflow ideas

Developers

Flowise has 3 different modules in a single mono repository.

  • server: Node backend to serve API logics
  • ui: React frontend
  • components: Langchain components

Prerequisite

Step by step

  1. Fork the official Flowise Github Repository.

  2. Clone your forked repository.

  3. Create a new branch, see guide. Naming conventions:

    • For feature branch: feature/<Your New Feature>
    • For bug fix branch: bugfix/<Your New Bugfix>.
  4. Switch to the newly created branch.

  5. Go into repository folder

    cd Flowise
  6. Install all dependencies of all modules:

    yarn install
  7. Build all the code:

    yarn build
  8. Start the app on http://localhost:3000

    yarn start
  9. For development:

    • Create .env file and specify the PORT (refer to .env.example) in packages/ui
    • Create .env file and specify the PORT (refer to .env.example) in packages/server
    • Run
    yarn dev

    Any changes made in packages/ui or packages/server will be reflected on http://localhost:8080

    For changes made in packages/components, run yarn build again to pickup the changes.

  10. After making all the changes, run

    yarn build

    and

    yarn start

    to make sure everything works fine in production.

  11. Commit code and submit Pull Request from forked branch pointing to Flowise master.

🌱 Env Variables

Flowise support different environment variables to configure your instance. You can specify the following variables in the .env file inside packages/server folder. Read more

Variable Description Type Default
PORT The HTTP port Flowise runs on Number 3000
FLOWISE_USERNAME Username to login String
FLOWISE_PASSWORD Password to login String
DEBUG Print logs from components Boolean
LOG_PATH Location where log files are stored String your-path/Flowise/logs
LOG_LEVEL Different levels of logs Enum String: error, info, verbose, debug info
APIKEY_PATH Location where api keys are saved String your-path/Flowise/packages/server
EXECUTION_MODE Whether predictions run in their own process or the main process Enum String: child, main main
TOOL_FUNCTION_BUILTIN_DEP NodeJS built-in modules to be used for Tool Function String
TOOL_FUNCTION_EXTERNAL_DEP External modules to be used for Tool Function String
OVERRIDE_DATABASE Override current database with default Enum String: true, false true
DATABASE_TYPE Type of database to store the flowise data Enum String: sqlite, mysql, postgres sqlite
DATABASE_PATH Location where database is saved (When DATABASE_TYPE is sqlite) String your-home-dir/.flowise
DATABASE_HOST Host URL or IP address (When DATABASE_TYPE is not sqlite) String
DATABASE_PORT Database port (When DATABASE_TYPE is not sqlite) String
DATABASE_USER Database username (When DATABASE_TYPE is not sqlite) String
DATABASE_PASSWORD Database password (When DATABASE_TYPE is not sqlite) String
DATABASE_NAME Database name (When DATABASE_TYPE is not sqlite) String
PASSPHRASE Passphrase used to create encryption key String MYPASSPHRASE
SECRETKEY_PATH Location where encryption key (used to encrypt/decrypt credentials) is saved String your-path/Flowise/packages/server

You can also specify the env variables when using npx. For example:

npx flowise start --PORT=3000 --DEBUG=true

📖 Contribute to Docs

Flowise Docs

🏷️ Pull Request process

A member of the FlowiseAI team will automatically be notified/assigned when you open a pull request. You can also reach out to us on Discord.

📃 Contributor License Agreement

Before we can merge your contribution you have to sign our Contributor License Agreement (CLA). The CLA contains the terms and conditions under which the contribution is submitted. You need to do this only once for your first pull request. Keep in mind that without a signed CLA we cannot merge your contribution.

📜 Code of Conduct

This project and everyone participating in it are governed by the Code of Conduct which can be found in the file. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].