Spaces:
Running
Running
# 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 | |
``` |