Thank you for your interest in contributing to Media Vault! We're excited to have you on board. This guide will help you get started with contributing to our project.
- Code of Conduct
- Getting Started
- Development Workflow
- Code Style
- Testing
- Pull Request Process
- Reporting Bugs
- Feature Requests
- Documentation
- Community
Please read our Code of Conduct before contributing. We are committed to fostering a welcoming and inclusive community.
- Git
- Docker 20.10+ and Docker Compose
- Node.js 16+ (for frontend development)
- Go 1.19+ (for backend development)
- Make (optional but recommended)
-
Fork the repository
git clone https://github.com/wronai/docker-platform.git cd docker-platform -
Set up environment variables
cp .env.example .env # Edit .env with your configuration -
Start the development environment
make dev
-
Access the applications
- Web UI: http://localhost:3000
- API: http://localhost:8080
- Documentation: http://localhost:8080/docs
- Monitoring: http://localhost:9090
-
Create a new branch
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Make your changes
- Follow the code style guidelines
- Write tests for new features
- Update documentation as needed
-
Run tests
make test -
Commit your changes
git add . git commit -m "feat: add new feature"
-
Push your changes
git push origin your-branch-name
-
Create a Pull Request
- Go to the repository
- Click "New Pull Request"
- Follow the PR template
- Request reviews from maintainers
- Follow the Effective Go guidelines
- Use
gofmtfor formatting - Run
golintandgo vetbefore committing - Write unit tests for new functionality
- Follow the Dart Style Guide
- Use
dart formatfor formatting - Follow BLoC pattern for state management
- Write widget tests for UI components
We follow the Conventional Commits specification:
<type>[optional scope]: <description>
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changesrefactor: Code changes that neither fixes a bug nor adds a featureperf: Performance improvementstest: Adding testschore: Changes to the build process or auxiliary tools
Example:
feat(auth): add two-factor authentication
- Add TOTP support
- Add recovery codes
- Update login flow
Closes #123
# Run all tests
make test
# Run backend tests
make test-backend
# Run frontend tests
make test-frontend
# Run integration tests
make test-integration
# Run linters
make lint- Write unit tests for all new functionality
- Include integration tests for critical paths
- Use descriptive test names
- Test edge cases and error conditions
- Ensure your code passes all tests
- Update documentation if needed
- Ensure your branch is up to date with
main - Run linters and fix any issues
- Request reviews from at least one maintainer
- Address all review comments
- Wait for CI to pass
- Squash and merge when approved
Found a bug? Please let us know by opening an issue.
- Check if the issue has already been reported
- Try to reproduce the issue with the latest version
- Collect as much information as possible
## Describe the bug
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 and concise description of what you expected to happen.
## Screenshots
If applicable, add screenshots to help explain your problem.
## Additional context
Add any other context about the problem here.Have an idea for a new feature? Open a feature request.
## Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is.
## Describe the solution you'd like
A clear and concise description of what you want to happen.
## Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
## Additional context
Add any other context or screenshots about the feature request here.Good documentation is crucial for the success of any project. We appreciate contributions that improve our documentation.
- Keep it clear and concise
- Use proper formatting
- Include examples where helpful
- Keep it up to date
# Build documentation
make docs
# Serve documentation locally
make docs-serve- Follow us on Twitter
- Subscribe to our blog
- Join our newsletter
- Thank you to all our contributors
- Special thanks to our core maintainers
- Shoutout to all our beta testers
Happy coding! 🚀
If you have any questions, feel free to ask in our Discussions.