Thank you for your interest in contributing! This is an independent project built on top of capa.
- Clone the repository
git clone <your-repo-url>
cd capa-server- Install Python dependencies
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
pip install flare-capa- Run development server
uvicorn app.main:app --reload --host 0.0.0.0 --port 8080capa-server/
├── app/
│ ├── __init__.py
│ ├── main.py # FastAPI application
│ ├── database.py # Database models
│ ├── analyzer.py # Capa integration
│ └── config.py # Configuration
├── static/
│ └── index.html # Web UI
├── Dockerfile
├── docker-compose.yml
└── requirements.txt
-
Advanced Web UI
- Integrate the official capa Explorer Web (Vue.js)
- Add filtering and search capabilities
- Implement result comparison views
-
Authentication & Authorization
- Basic auth implementation
- API key support
- Role-based access control
-
Database Enhancements
- PostgreSQL support for multi-user scenarios
- Better indexing for large datasets
- Result caching
-
Analysis Features
- Support for analyzing URLs (fetch and analyze)
- Batch upload interface
- Scheduled re-analysis with updated rules
-
Export Formats
- PDF report generation
- STIX/TAXII export
- MISP integration
-
Testing
- Unit tests for API endpoints
- Integration tests
- Load testing
-
Monitoring
- Prometheus metrics
- Health check improvements
- Analysis queue monitoring
-
Documentation
- Architecture diagrams
- Deployment guides
- Video tutorials
-
Integrations
- VirusTotal integration
- Yara rule correlation
- Sandbox automation (Cuckoo, CAPE)
-
UI Improvements
- Dark mode
- Mobile responsive design
- Keyboard shortcuts
-
Performance
- Async analysis workers
- Result streaming for large files
- Distributed analysis
- Follow PEP 8 for Python code
- Use type hints
- Write docstrings for all functions
- Keep functions focused and small
Before submitting a PR:
# Test the API
curl http://localhost:8080/health
# Upload a test file
curl -X POST -F "file=@test.exe" http://localhost:8080/api/analyze- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Test thoroughly
- Commit with clear messages:
git commit -m "Add feature X" - Push to your fork:
git push origin feature/my-feature - Open a Pull Request
- Use present tense ("Add feature" not "Added feature")
- Reference issues when applicable
- Keep first line under 50 characters
- Provide detailed description if needed
Example:
Add PostgreSQL support for production deployments
- Add SQLAlchemy engine configuration
- Update docker-compose with postgres service
- Add migration scripts
- Update documentation
Fixes #123
When reporting bugs, include:
- capa-server version
- Operating system and Docker version
- Steps to reproduce
- Expected behavior
- Actual behavior
- Logs (if applicable)
When requesting features:
- Describe the use case
- Explain why it's needed
- Suggest implementation approach
- Note any similar features in other tools
- Update README.md with any new features
- Update USAGE.md if API changes
- Add yourself to CONTRIBUTORS.md
- Ensure Docker builds successfully
- Test all API endpoints
- Update version in config.py
Open an issue with the "question" label or reach out to maintainers.
By contributing, you agree that your contributions will be licensed under the Apache 2.0 License.