Thank you for your interest in contributing to the N8N Multi-Tenant Automation Platform! This document provides guidelines and information for contributors.
- Fork the Repository: Click the "Fork" button on GitHub
- Clone Your Fork:
git clone https://github.com/your-username/automation-platform.git - Create a Branch:
git checkout -b feature/your-feature-name - Make Changes: Implement your feature or fix
- Test Thoroughly: Ensure all services work correctly
- Submit Pull Request: Open a PR with a clear description
- Bug Fixes: Fix issues in the platform or workflows
- New Features: Add functionality to enhance the platform
- Workflow Templates: Create new automation templates
- Documentation: Improve guides and documentation
- Performance: Optimize services and resource usage
- Issue Reports: Report bugs or suggest improvements
- Testing: Test new features and provide feedback
- Documentation: Write tutorials and guides
- Community Support: Help other users in discussions
- Docker Desktop 4.0+
- Git
- Code editor (VS Code recommended)
- 8GB RAM minimum
# Clone your fork
git clone https://github.com/your-username/automation-platform.git
cd automation-platform
# Copy environment template
cp .env.example .env
# Configure required environment variables
# Edit .env with your settings
# Start development environment
docker compose up -d
# Verify services are running
docker compose ps
curl http://localhost:5678/healthzMinimum required configuration for development:
N8N_ENCRYPTION_KEY=your-32-character-key # Generate with: openssl rand -base64 32
POSTGRES_PASSWORD=dev-password
REDIS_PASSWORD=dev-password
SESSION_SECRET=your-session-secret # Generate with: openssl rand -base64 32- Shell Scripts: Use bash with strict error handling (
set -euo pipefail) - Documentation: Use clear, concise language
- Docker: Follow multi-stage builds and security best practices
- Environment Variables: Use consistent naming conventions
When creating new workflow templates:
- Generic Design: Make templates adaptable for multiple clients
- Documentation: Include clear setup instructions
- Error Handling: Implement robust error handling
- Security: Never hardcode credentials or sensitive data
Before submitting a pull request:
- Docker Validation:
docker compose config --quiet - Service Health: All services must pass health checks
- Template Testing: Verify workflow templates can be imported
- Documentation: Test setup instructions work correctly
- Update Documentation: Ensure docs reflect your changes
- Test Thoroughly: Test in clean Docker environment
- Check Dependencies: Verify no unnecessary dependencies added
- Sanitize Content: Remove any sensitive or personal information
## Description
Brief description of the changes made.
## Type of Change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Workflow template addition
## Testing
- [ ] Docker Compose configuration validates
- [ ] All services start and pass health checks
- [ ] Workflow templates import successfully
- [ ] Documentation is accurate and complete
## Checklist
- [ ] My code follows the project's coding standards
- [ ] I have performed a self-review of my own 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 that my fix is effective or that my feature works- Data Isolation: Ensure tenant data remains separated
- Scalability: Design for multiple tenants per instance
- Security: Implement proper access controls
- Performance: Consider resource usage per tenant
- Health Checks: Include health checks for all services
- Resource Limits: Define appropriate CPU and memory limits
- Secrets Management: Use external secret management
- Network Security: Minimize exposed ports
- Parameterization: Use environment variables for configuration
- Error Handling: Implement comprehensive error handling
- Logging: Include appropriate logging for debugging
- Retry Logic: Add retry mechanisms for external API calls
- Scripts: Include header comments explaining purpose
- Complex Logic: Add inline comments for clarity
- Configuration: Document all configuration options
- Examples: Provide usage examples
- Clear Instructions: Step-by-step setup guides
- Prerequisites: List all requirements clearly
- Troubleshooting: Include common issues and solutions
- Screenshots: Use visuals where helpful
Include the following information:
- Environment: OS, Docker version, system specs
- Steps to Reproduce: Clear reproduction steps
- Expected Behavior: What should happen
- Actual Behavior: What actually happens
- Logs: Relevant error messages or logs
- Screenshots: Visual evidence if applicable
Provide:
- Use Case: Why this feature is needed
- Proposed Solution: How it should work
- Alternatives: Other solutions considered
- Impact: Who would benefit from this feature
- Never commit: API keys, passwords, or personal data
- Use Examples: Provide template values in examples
- Sanitize Logs: Ensure logs don't contain sensitive data
- Review Carefully: Check for accidental sensitive data inclusion
If you discover a security vulnerability:
- Do Not create a public issue
- Email the maintainers privately
- Provide Details: Clear description and reproduction steps
- Wait for Response: Allow time for assessment and fix
- Be Respectful: Treat all community members with respect
- Be Inclusive: Welcome contributors of all backgrounds
- Be Constructive: Provide helpful, actionable feedback
- Be Patient: Understand that reviews take time
- GitHub Issues: For bug reports and feature requests
- Pull Requests: For code discussions and reviews
- Discussions: For general questions and community support
Contributors are recognized through:
- Contributors List: Listed in project documentation
- Release Notes: Mentioned in relevant release notes
- Community Highlights: Featured in community updates
If you have questions about contributing:
- Check existing documentation
- Search existing issues
- Create a new discussion thread
- Tag maintainers if urgent
Thank you for contributing to the N8N Multi-Tenant Automation Platform! 🚀