First off, thank you for considering contributing to LiteLLM-Stack! It's people like you that make this project better for everyone.
- Code of Conduct
- How Can I Contribute?
- Development Setup
- Pull Request Process
- Style Guidelines
- Community
This project and everyone participating in it is governed by our commitment to providing a welcoming and inclusive environment. By participating, you are expected to uphold this code.
Positive behavior includes:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Unacceptable behavior includes:
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information without explicit permission
- Other conduct which could reasonably be considered inappropriate
Before creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
Bug Report Template:
**Description:**
A clear and concise description of what the bug is.
**To Reproduce:**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected Behavior:**
A clear description of what you expected to happen.
**Environment:**
- OS: [e.g., Ubuntu 22.04, Windows 11, macOS 13]
- Docker Version: [e.g., 20.10.21]
- Docker Compose Version: [e.g., 2.13.0]
- Browser: [e.g., Chrome 120, Firefox 121]
**Logs:**Paste relevant logs here
**Screenshots:**
If applicable, add screenshots to help explain your problem.
**Additional Context:**
Add any other context about the problem here.
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:
Enhancement Template:
**Is your feature request related to a problem?**
A clear description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like:**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered:**
A clear description of any alternative solutions or features you've considered.
**Additional context:**
Add any other context, mockups, or screenshots about the feature request here.Unsure where to begin? You can start by looking through issues labeled:
good first issue- Issues that should only require a few lines of codehelp wanted- Issues that may be more involved but are still great for newcomers
Documentation is just as important as code! If you find:
- Typos or grammatical errors
- Confusing explanations
- Missing documentation
- Outdated information
Please submit a pull request or create an issue.
- Docker 20.10+
- Docker Compose 2.0+
- Git
- A GitHub account
- A text editor (VS Code recommended)
-
Fork the repository
# Click the "Fork" button on GitHub -
Clone your fork
git clone https://github.com/YOUR_USERNAME/litellm-stack.git cd litellm-stack -
Add upstream remote
git remote add upstream https://github.com/original-owner/litellm-stack.git
-
Create a branch
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Generate SSL certificates (for testing)
cd scripts chmod +x generate-ssl.sh ./generate-ssl.sh cd ..
-
Create environment file
cp .env.example config/litellm/.env # Edit config/litellm/.env with your test API keys -
Start the development environment
docker compose up -d
-
Verify everything works
docker compose ps docker compose logs
-
Make your changes
- Edit files as needed
- Test your changes thoroughly
-
Keep your fork synchronized
git fetch upstream git rebase upstream/main
- Test your changes locally
- Ensure all containers start successfully
- Update documentation if needed
- Follow the Style Guidelines
- Check for typos and formatting issues
- Verify your changes don't break existing functionality
-
Commit your changes
git add . git commit -m "feat: add amazing new feature"
-
Push to your fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Go to your fork on GitHub
- Click "New Pull Request"
- Fill in the PR template
## Description
Briefly describe what this PR does.
## Type of Change
- [ ] Bug fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Configuration change
## Testing
Describe the tests you ran and how to reproduce them:
- [ ] Started fresh with `docker compose up -d`
- [ ] Tested feature X by doing Y
- [ ] Verified logs show no errors
- [ ] Tested on OS: [e.g., Ubuntu 22.04]
## Checklist
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have tested my changes locally
- [ ] Any dependent changes have been merged and published
## Screenshots (if applicable)
Add screenshots to help reviewers understand your changes.
## Additional Notes
Any additional information that reviewers should know.- Be responsive to feedback
- Make requested changes promptly
- Keep your branch up to date
- Be patient - reviews may take time
- Use 2 spaces for indentation
- Keep service definitions organized (proxy β web β app β database)
- Add comments for complex configurations
- Use descriptive service names
- Always specify container names
- Include health checks where applicable
- Use 2 spaces for indentation
- Keep related settings grouped
- Add comments explaining non-obvious settings
- Use consistent naming conventions
- Use
#!/bin/bashshebang - Add comments explaining complex logic
- Use meaningful variable names
- Check exit codes
- Add error handling
- Use clear, concise language
- Break up long sections with headers
- Include code examples where helpful
- Use proper Markdown formatting
- Test all commands and examples
Follow the Conventional Commits specification:
<type>(<scope>): <subject>
<body>
<footer>
Types:
feat: A new featurefix: A bug fixdocs: Documentation changesstyle: Formatting changes (whitespace, missing semicolons, etc.)refactor: Code refactoring (neither fixes a bug nor adds a feature)perf: Performance improvementstest: Adding or updating testschore: Maintenance tasks (updating dependencies, etc.)
Examples:
git commit -m "feat(litellm): add support for new model provider"
git commit -m "fix(nginx): resolve SSL certificate loading issue"
git commit -m "docs(readme): add troubleshooting section"
git commit -m "chore(deps): update litellm to latest version"feature/description- For new featuresfix/description- For bug fixesdocs/description- For documentation changesrefactor/description- For code refactoringchore/description- For maintenance tasks
Examples:
feature/add-redis-cachingfix/docker-compose-portsdocs/improve-ssl-guide
litellm-stack/
βββ .github/ # GitHub-specific files (future)
βββ config/ # Configuration files
β βββ litellm/ # LiteLLM configuration
β βββ nginx/ # Nginx configuration
βββ scripts/ # Utility scripts
βββ docs/ # Additional documentation
βββ docker-compose.yml # Main orchestration file
βββ .gitignore # Git ignore rules
βββ LICENSE # MIT License
βββ README.md # Main documentation
βββ CONTRIBUTING.md # This file
Before submitting a PR, test:
- Fresh installation works:
docker compose up -d - All containers start successfully
- Health checks pass
- Open WebUI is accessible via HTTPS
- LiteLLM API responds
- Database connections work
- Logs show no errors
- SSL certificates load correctly
- Configuration changes take effect
- Services restart properly
- Data persists after restart
# Check all services are running
docker compose ps
# View logs
docker compose logs -f
# Test Open WebUI
curl -k https://localhost:8443
# Test LiteLLM API
curl http://localhost:4000/health
# Check PostgreSQL
docker compose exec postgres psql -U litellm -d litellm -c "\dt"
# Restart services
docker compose restart
# Clean restart
docker compose down -v && docker compose up -d- Documentation: Check the docs folder first
- Issues: Search existing issues
- Discussions: Ask in GitHub Discussions
- Watch the repository for updates
- Star the project to show support
- Follow discussions and issues
- GitHub Issues - For bug reports and feature requests
- GitHub Discussions - For questions and general discussion
- Pull Requests - For code contributions
We're always looking for help in these areas:
- π Documentation - Improving guides, adding examples
- π Bug Reports - Finding and reporting issues
- π‘ Feature Ideas - Suggesting improvements
- π§ Code Contributions - Implementing features and fixes
- π Translations - Translating documentation (future)
- π§ͺ Testing - Testing on different platforms
- π Use Cases - Sharing how you use the project
Contributors will be:
- Listed in the README (once implemented)
- Mentioned in release notes
- Part of the project's history
By contributing to LiteLLM-Stack, you agree that your contributions will be licensed under the MIT License.
Don't hesitate to ask! Open an issue with the question label, and we'll be happy to help.
Thank you for contributing to LiteLLM-Stack! π