5.1 KiB
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
- Code of Conduct
- How Can I Contribute?
- Pull Request Guidelines
- Coding Standards
- Development Setup
- Testing
- Deployment
- Docker Deployment
- 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
- Fork the repository.
- Create a feature or fix branch.
- Write and test your code.
- Submit a pull request (PR).
3️⃣ Join as a Core Contributor
Interested in maintaining and growing the project? Fill out our Contributor Application Form.
✅ 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
- Manual testing by reviewers.
- At least one maintainer review required.
- Address review comments.
- 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:
git clone https://github.com/stackblitz-labs/bolt.diy.git
- Install dependencies:
pnpm install
- Set up environment variables:
- Rename
.env.example
to.env.local
. - Add your API keys:
GROQ_API_KEY=XXX HuggingFace_API_KEY=XXX OPENAI_API_KEY=XXX ...
- Optionally set:
- Debug level:
VITE_LOG_LEVEL=debug
- Context size:
DEFAULT_NUM_CTX=32768
- Debug level:
- Rename
Note: Never commit your .env.local
file to version control. It’s already in .gitignore
.
2️⃣ Run Development Server
pnpm run dev
Tip: Use Google Chrome Canary for local testing.
🧪 Testing
Run the test suite with:
pnpm test
🚀 Deployment
Deploy to Cloudflare Pages
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
# Development build
npm run dockerbuild
Option 2: Direct Docker Build Command
docker build . --target bolt-ai-development
Option 3: Docker Compose Profile
docker compose --profile development up
Running the Development Container
docker run -p 5173:5173 --env-file .env.local bolt-ai:development
🏭 Production Environment
Build Options
Option 1: Helper Scripts
# Production build
npm run dockerbuild:prod
Option 2: Direct Docker Build Command
docker build . --target bolt-ai-production
Option 3: Docker Compose Profile
docker compose --profile production up
Running the Production Container
docker run -p 5173:5173 --env-file .env.local bolt-ai:production
Coolify Deployment
For an easy deployment process, use Coolify:
- Import your Git repository into Coolify.
- Choose Docker Compose as the build pack.
- Configure environment variables (e.g., API keys).
- Set the start command:
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
- Open the command palette in VS Code (
Ctrl+Shift+P
orCmd+Shift+P
on macOS). - Select Dev Containers: Reopen in Container.
- Choose the development profile when prompted.
- 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:
DEFAULT_NUM_CTX=24576 # Uses 32GB VRAM