Warning! This documentation is heavily in Work-in-Progress and subject to changes.
  • Contributing

Thanks for wanting to contribute! That really means a lot for us. You can contribute in many ways, with or without any coding required.

If you encounter any issue, you can join our Discord so we can help you.

Non-code contributions

Issues and community help

Work in progress...

Documentation website

The documentation website is made of Markdown files, located in packages/docs/pages/. It uses Nextra behind the scenes.

If you want to preview your changes, you can run the documenation website locally. First, follow the Requirements, and then run pnpm start:docs at the root of the project. You can now access the documentation website on localhost:3000.

Code contributions

Coding guidelines

  • Commits are following the conventional commits convention.
  • We use ESLint and Prettier to format our code, which should be handled automatically by most editors. If this is not the case, you can run the lint script.
  • Make sure to add a test when adding new features / fixing bugs, so we can prevent any other future bug.

Requirements

You will need Node.js >= 16 and PNPM >= 7.3.0 (as of writing). You will also need Docker installed, and if you want to contribute to any Rust code, you will need Rust >= 1.63 installed.

  1. Fork and clone the repository
  2. Install all NPM dependencies: pnpm install

And if you want to contribute on the Dashboard / Runtime:

  1. Run the local docker-compose: docker-compose up -d

Dashboard

The first step is to copy the .env.example file and rename it to .env. You will need to fill the following environment variables:

NEXTAUTH_SECRET= # Random secret
S3_REGION= # S3 credentials to a bucket you own
S3_BUCKET=
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
GITHUB_CLIENT_ID= # Create a new Github OAuth app: https://github.com/settings/developers
GITHUB_CLIENT_SECRET=

Then, navigate to packages/dashboard and run pnpm prisma migrate dev to generate the database tables. You can now start the dashboard using pnpm dev.

Runtime

Work in progress...