2024-12-20 14:37:34 +00:00
# Contribution Guidelines
2024-11-19 07:46:51 +00:00
2024-12-20 14:37:34 +00:00
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. 💡
---
2024-07-10 16:44:39 +00:00
2024-10-24 12:06:57 +00:00
## 📋 Table of Contents
2024-07-10 16:44:39 +00:00
2024-12-20 14:37:34 +00:00
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
2024-07-10 16:44:39 +00:00
```bash
2024-12-20 14:37:34 +00:00
pnpm run dev
2024-09-25 18:54:09 +00:00
```
2024-12-20 14:37:34 +00:00
**Tip**: Use **Google Chrome Canary** for local testing.
2024-09-25 18:54:09 +00:00
2024-12-20 14:37:34 +00:00
---
## 🧪 Testing
2024-11-19 07:46:51 +00:00
2024-12-20 14:37:34 +00:00
Run the test suite with:
2024-11-19 07:46:51 +00:00
```bash
2024-12-20 14:37:34 +00:00
pnpm test
2024-11-19 07:46:51 +00:00
```
2024-12-20 14:37:34 +00:00
---
2024-11-19 07:46:51 +00:00
2024-12-20 14:37:34 +00:00
## 🚀 Deployment
2024-09-25 18:54:09 +00:00
2024-12-20 14:37:34 +00:00
### Deploy to Cloudflare Pages
2024-07-29 18:31:45 +00:00
```bash
2024-12-20 14:37:34 +00:00
pnpm run deploy
2024-07-29 18:31:45 +00:00
```
2024-12-20 14:37:34 +00:00
Ensure you have required permissions and that Wrangler is configured.
2024-07-29 18:31:45 +00:00
2024-12-20 14:37:34 +00:00
---
2024-07-10 16:44:39 +00:00
2024-12-20 14:37:34 +00:00
## 🐳 Docker Deployment
2024-07-10 16:44:39 +00:00
2024-12-20 14:37:34 +00:00
This section outlines the methods for deploying the application using Docker. The processes for **Development** and **Production** are provided separately for clarity.
2024-07-10 16:44:39 +00:00
2024-12-20 14:37:34 +00:00
---
2024-07-10 16:44:39 +00:00
2024-12-20 14:37:34 +00:00
### 🧑💻 Development Environment
2024-09-25 18:54:09 +00:00
2024-12-20 14:37:34 +00:00
#### Build Options
2024-07-10 16:44:39 +00:00
2024-12-20 14:37:34 +00:00
**Option 1: Helper Scripts**
2024-07-10 16:44:39 +00:00
```bash
2024-12-20 14:37:34 +00:00
# Development build
npm run dockerbuild
2024-07-10 16:44:39 +00:00
```
2024-09-25 18:54:09 +00:00
2024-12-20 14:37:34 +00:00
**Option 2: Direct Docker Build Command**
```bash
docker build . --target bolt-ai-development
```
2024-10-06 14:12:49 +00:00
2024-12-20 14:37:34 +00:00
**Option 3: Docker Compose Profile**
```bash
docker-compose --profile development up
```
2024-10-06 14:12:49 +00:00
2024-12-20 14:37:34 +00:00
#### Running the Development Container
```bash
docker run -p 5173:5173 --env-file .env.local bolt-ai:development
```
2024-10-06 14:12:49 +00:00
2024-12-20 14:37:34 +00:00
---
2024-10-26 14:27:44 +00:00
2024-12-20 14:37:34 +00:00
### 🏭 Production Environment
2024-10-26 14:27:44 +00:00
2024-12-20 14:37:34 +00:00
#### Build Options
2024-10-26 14:27:44 +00:00
2024-12-20 14:37:34 +00:00
**Option 1: Helper Scripts**
2024-10-26 14:27:44 +00:00
```bash
# Production build
npm run dockerbuild:prod
2024-10-06 14:12:49 +00:00
```
2024-10-26 14:27:44 +00:00
2024-12-20 14:37:34 +00:00
**Option 2: Direct Docker Build Command**
2024-10-26 14:27:44 +00:00
```bash
docker build . --target bolt-ai-production
2024-10-06 14:12:49 +00:00
```
2024-12-20 14:37:34 +00:00
**Option 3: Docker Compose Profile**
2024-10-26 14:27:44 +00:00
```bash
docker-compose --profile production up
2024-10-06 14:12:49 +00:00
```
2024-10-26 14:27:44 +00:00
2024-12-20 14:37:34 +00:00
#### Running the Production Container
2024-10-26 14:27:44 +00:00
```bash
docker run -p 5173:5173 --env-file .env.local bolt-ai:production
```
2024-12-20 14:37:34 +00:00
---
2024-10-26 14:27:44 +00:00
2024-12-20 14:37:34 +00:00
### Coolify Deployment
2024-10-26 14:27:44 +00:00
2024-12-20 14:37:34 +00:00
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:
2024-10-26 14:27:44 +00:00
```bash
docker compose --profile production up
```
2024-12-20 14:37:34 +00:00
---
## 🛠️ VS Code Dev Containers Integration
2024-10-26 14:27:44 +00:00
2024-12-20 14:37:34 +00:00
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.
2024-10-26 14:27:44 +00:00
2024-12-20 14:37:34 +00:00
### Steps to Use Dev Containers
2024-10-26 14:27:44 +00:00
2024-12-20 14:37:34 +00:00
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.
2024-10-26 14:27:44 +00:00
2024-12-20 14:37:34 +00:00
---
2024-10-26 14:27:44 +00:00
2024-12-20 14:37:34 +00:00
## 🔑 Environment Variables
2024-10-26 14:27:44 +00:00
2024-12-20 14:37:34 +00:00
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
```