| # Contribution Guidelines | |
| Welcome! This guide provides all the details you need to contribute effectively to the project. Thank you for helping us make **bolt.diy** a better tool for developers worldwide. π‘ | |
| --- | |
| ## π Table of Contents | |
| 1. [Code of Conduct](#code-of-conduct) | |
| 2. [How Can I Contribute?](#how-can-i-contribute) | |
| 3. [Pull Request Guidelines](#pull-request-guidelines) | |
| 4. [Coding Standards](#coding-standards) | |
| 5. [Development Setup](#development-setup) | |
| 6. [Testing](#testing) | |
| 7. [Deployment](#deployment) | |
| 8. [Docker Deployment](#docker-deployment) | |
| 9. [VS Code Dev Containers Integration](#vs-code-dev-containers-integration) | |
| --- | |
| ## π‘οΈ Code of Conduct | |
| This project is governed by our **Code of Conduct**. By participating, you agree to uphold this code. Report unacceptable behavior to the project maintainers. | |
| --- | |
| ## π οΈ How Can I Contribute? | |
| ### 1οΈβ£ Reporting Bugs or Feature Requests | |
| - Check the [issue tracker](#) to avoid duplicates. | |
| - Use issue templates (if available). | |
| - Provide detailed, relevant information and steps to reproduce bugs. | |
| ### 2οΈβ£ Code Contributions | |
| 1. Fork the repository. | |
| 2. Create a feature or fix branch. | |
| 3. Write and test your code. | |
| 4. Submit a pull request (PR). | |
| ### 3οΈβ£ Join as a Core Contributor | |
| Interested in maintaining and growing the project? Fill out our [Contributor Application Form](https://forms.gle/TBSteXSDCtBDwr5m7). | |
| --- | |
| ## β Pull Request Guidelines | |
| ### PR Checklist | |
| - Branch from the **main** branch. | |
| - Update documentation, if needed. | |
| - Test all functionality manually. | |
| - Focus on one feature/bug per PR. | |
| ### Review Process | |
| 1. Manual testing by reviewers. | |
| 2. At least one maintainer review required. | |
| 3. Address review comments. | |
| 4. Maintain a clean commit history. | |
| --- | |
| ## π Coding Standards | |
| ### General Guidelines | |
| - Follow existing code style. | |
| - Comment complex logic. | |
| - Keep functions small and focused. | |
| - Use meaningful variable names. | |
| --- | |
| ## π₯οΈ Development Setup | |
| ### 1οΈβ£ Initial Setup | |
| - Clone the repository: | |
| ```bash | |
| git clone https://github.com/stackblitz-labs/bolt.diy.git | |
| ``` | |
| - Install dependencies: | |
| ```bash | |
| pnpm install | |
| ``` | |
| - Set up environment variables: | |
| 1. Rename `.env.example` to `.env.local`. | |
| 2. Add your API keys: | |
| ```bash | |
| GROQ_API_KEY=XXX | |
| HuggingFace_API_KEY=XXX | |
| OPENAI_API_KEY=XXX | |
| ... | |
| ``` | |
| 3. Optionally set: | |
| - Debug level: `VITE_LOG_LEVEL=debug` | |
| - Context size: `DEFAULT_NUM_CTX=32768` | |
| **Note**: Never commit your `.env.local` file to version control. Itβs already in `.gitignore`. | |
| ### 2οΈβ£ Run Development Server | |
| ```bash | |
| pnpm run dev | |
| ``` | |
| **Tip**: Use **Google Chrome Canary** for local testing. | |
| --- | |
| ## π§ͺ Testing | |
| Run the test suite with: | |
| ```bash | |
| pnpm test | |
| ``` | |
| --- | |
| ## π Deployment | |
| ### Deploy to Cloudflare Pages | |
| ```bash | |
| pnpm run deploy | |
| ``` | |
| Ensure you have required permissions and that Wrangler is configured. | |
| --- | |
| ## π³ Docker Deployment | |
| This section outlines the methods for deploying the application using Docker. The processes for **Development** and **Production** are provided separately for clarity. | |
| --- | |
| ### π§βπ» Development Environment | |
| #### Build Options | |
| **Option 1: Helper Scripts** | |
| ```bash | |
| # Development build | |
| npm run dockerbuild | |
| ``` | |
| **Option 2: Direct Docker Build Command** | |
| ```bash | |
| docker build . --target bolt-ai-development | |
| ``` | |
| **Option 3: Docker Compose Profile** | |
| ```bash | |
| docker compose --profile development up | |
| ``` | |
| #### Running the Development Container | |
| ```bash | |
| docker run -p 5173:5173 --env-file .env.local bolt-ai:development | |
| ``` | |
| --- | |
| ### π Production Environment | |
| #### Build Options | |
| **Option 1: Helper Scripts** | |
| ```bash | |
| # Production build | |
| npm run dockerbuild:prod | |
| ``` | |
| **Option 2: Direct Docker Build Command** | |
| ```bash | |
| docker build . --target bolt-ai-production | |
| ``` | |
| **Option 3: Docker Compose Profile** | |
| ```bash | |
| docker compose --profile production up | |
| ``` | |
| #### Running the Production Container | |
| ```bash | |
| docker run -p 5173:5173 --env-file .env.local bolt-ai:production | |
| ``` | |
| --- | |
| ### Coolify Deployment | |
| For an easy deployment process, use [Coolify](https://github.com/coollabsio/coolify): | |
| 1. Import your Git repository into Coolify. | |
| 2. Choose **Docker Compose** as the build pack. | |
| 3. Configure environment variables (e.g., API keys). | |
| 4. Set the start command: | |
| ```bash | |
| docker compose --profile production up | |
| ``` | |
| --- | |
| ## π οΈ VS Code Dev Containers Integration | |
| The `docker-compose.yaml` configuration is compatible with **VS Code Dev Containers**, making it easy to set up a development environment directly in Visual Studio Code. | |
| ### Steps to Use Dev Containers | |
| 1. Open the command palette in VS Code (`Ctrl+Shift+P` or `Cmd+Shift+P` on macOS). | |
| 2. Select **Dev Containers: Reopen in Container**. | |
| 3. Choose the **development** profile when prompted. | |
| 4. VS Code will rebuild the container and open it with the pre-configured environment. | |
| --- | |
| ## π Environment Variables | |
| Ensure `.env.local` is configured correctly with: | |
| - API keys. | |
| - Context-specific configurations. | |
| Example for the `DEFAULT_NUM_CTX` variable: | |
| ```bash | |
| DEFAULT_NUM_CTX=24576 # Uses 32GB VRAM | |
| ``` | |