First off, thank you for considering contributing to VibeNVR! It's people like you who make VibeNVR such a great tool.
VibeNVR is a Vibe Coding Project. We value stability, modern aesthetics, and security.
English is the official and only supported language for this project. All code, user interface elements, commit messages, issues, and documentation must be written strictly in English to maintain consistency and accessibility for the global community.
If you find a bug, please open an issue with:
- A clear and descriptive title.
- Steps to reproduce the bug.
- Actual vs. Expected behavior.
- Relevant logs (sanitized!) and version information.
We love new ideas! Please open an issue to discuss your proposal before starting implementation.
- Fork the repo and create your branch from
main. - Ensure your code follows the coding standards.
- Update documentation if your change adds or modifies features.
- Provide a clear summary of your changes in the PR description.
VibeNVR welcomes AI assistance but requires strict adherence to our AI Usage Policy:
- Disclosure: You must disclose the use of AI tools in your PR.
- Human Verification: Every line of AI-generated code must be reviewed and tested by you.
- No AI Media: AI-generated images or videos are not allowed.
To start developing locally:
docker compose up -d --build
docker compose logs -f- Frontend:
http://localhost:8080 - Backend API:
http://localhost:5005/docs
- Follow PEP8.
- Use Pydantic schemas for data validation.
- Implement RBAC checks:
Depends(auth_service.get_current_active_admin). - Use
deffor blocking I/O (SQLAlchemy) andasync defonly for truly asynchronous operations.
- Use functional components and hooks.
- Styling: Use strictly TailwindCSS utility classes. Refer to STYLE.md.
- Icons: Use
lucide-react.
Before submitting, ensure your changes:
- Adhere to SECURITY.md.
- Do not expose sensitive data in logs or telemetry.
- Use
HttpOnlycookies for authentication. - Sanitize all user inputs.
Before PR submission, you MUST:
- Run the full Docker stack.
- Verify no backend stack traces or frontend console errors.
- Test your specific changes manually in the browser.
Be respectful, professional, and collaborative. We are a community of humans building something cool together.
Thank you for being part of the Vibe!