Open Browser Rendering is a production-ready, open-source alternative to Cloudflare Browser Rendering API. Built with modern technologies (Hono + Playwright), it provides a robust, self-hosted solution for web page rendering, screenshot capture, PDF generation, and JavaScript evaluation.
- Open Source Alternative: Provide a free, self-hosted alternative to commercial browser rendering services
- International Standard: Follow best practices for open-source projects
- Easy Deployment: Simple deployment process with Docker and VPS support
- Production Ready: Security hardening, resource management, and monitoring included
- Developer Friendly: Comprehensive documentation in multiple languages
OpenBrowserRendering/
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.yml
│ │ └── feature_request.yml
│ ├── workflows/
│ │ ├── docker-build.yml
│ │ └── node-ci.yml
│ └── PULL_REQUEST_TEMPLATE.md
├── docs/
│ ├── API.md # Complete API reference
│ ├── EXAMPLES.md # Usage examples (JS, Python, PHP, cURL)
│ └── FAQ.md # Frequently asked questions
├── examples/
│ └── node-express/ # Express.js integration example
│ ├── server.js
│ ├── package.json
│ └── README.md
├── scripts/
│ └── deploy-vps.sh # Automated VPS deployment script
├── .dockerignore
├── .env.example # Environment variables template
├── .gitignore
├── CHANGELOG.md # Version history
├── CONTRIBUTING.md # Contributing guide (English)
├── CONTRIBUTING.id.md # Contributing guide (Indonesian)
├── Dockerfile # Production Docker image
├── docker-compose.yml # Docker Compose configuration
├── LICENSE # MIT License
├── package.json # Node.js dependencies
├── QUICKSTART.md # Quick start guide
├── README.md # Main documentation (bilingual)
├── SECURITY.md # Security policy
└── server.js # Main server application
- 📸 Screenshot API: PNG/JPEG capture with customizable options
- 📄 PDF Generation: Convert web pages to PDF with various formats
- 🔧 JavaScript Evaluation: Execute custom scripts in page context
- 🔐 Authentication: Bearer token-based API security
- ⚡ Concurrency Control: Built-in request limiting
- 🌐 Multi-Browser Support: Chromium, Firefox, WebKit
- 🐳 Docker Ready: Optimized Docker image with health checks
- 🔒 Security Hardening: Non-root user, read-only filesystem, resource limits
- 📊 Health Monitoring: Built-in health check endpoint
- 🌍 CORS Support: Configurable cross-origin resource sharing
- 📚 Comprehensive Documentation: English and Indonesian
- 💡 Code Examples: Multiple programming languages
- 🤝 Contributing Guidelines: Clear contribution process
- 🔄 CI/CD Ready: GitHub Actions workflows included
- 📝 Issue Templates: Structured bug reports and feature requests
- One-command deployment
- Consistent environment
- Resource management
- Easy updates
- Multi-container orchestration
- Environment variable management
- Health checks
- Auto-restart
- Direct Node.js execution
- Process management with PM2
- Auto-restart on crash
- Log management
- Automated deployment script
- Nginx reverse proxy setup
- SSL certificate installation
- Firewall configuration
- README.md: Complete setup and usage guide (bilingual)
- QUICKSTART.md: Get started in 5 minutes
- docs/API.md: Detailed API reference
- docs/EXAMPLES.md: Code examples in multiple languages
- docs/FAQ.md: Common questions and troubleshooting
- CONTRIBUTING.md: How to contribute (English)
- CONTRIBUTING.id.md: Panduan kontribusi (Indonesian)
- SECURITY.md: Security policy and best practices
- CHANGELOG.md: Version history and changes
- examples/: Integration examples
- scripts/: Deployment and utility scripts
- .github/: Issue and PR templates, CI/CD workflows
- Authentication: Bearer token API key
- Docker Security: Non-root user, read-only filesystem
- Resource Limits: CPU and memory constraints
- Input Validation: Request body validation
- CORS Control: Configurable allowed origins
- Security Policy: Vulnerability reporting process
- Best Practices Guide: Deployment security recommendations
- English: Primary language for global audience
- Indonesian: Full translation for local community
- Both languages maintained equally
- Easy to add more languages
- GitHub Actions CI/CD
- Docker build tests
- Node.js multi-version testing
- API endpoint validation
- ESLint-ready structure
- Consistent code style
- Error handling
- Graceful shutdown
- Comprehensive coverage
- Code examples tested
- Clear explanations
- Troubleshooting guides
- MIT License (permissive)
- Code of Conduct
- Contributing guidelines
- Issue and PR templates
- Changelog maintenance
- GitHub Issues: Bug reports
- GitHub Discussions: Questions and ideas
- Pull Requests: Code contributions
- Documentation: Self-service help
- Unit and integration tests
- Queue system for high traffic
- Webhook support
- Batch processing
- Custom browser profiles
- Cookie/session management
- Request caching
- Metrics and analytics
- Additional browser engines
- Performance optimizations
- More integration examples
- Language translations
- Documentation improvements
- Start with QUICKSTART.md
- Read README.md
- Try examples from docs/EXAMPLES.md
- Check docs/FAQ.md for common issues
- Review docs/API.md for all options
- Study examples/ for integration patterns
- Read SECURITY.md for best practices
- Customize server.js for specific needs
- Read CONTRIBUTING.md
- Check open issues
- Review code structure
- Submit pull requests
- 📚 Documentation: README.md, docs/
- 💬 Discussions: GitHub Discussions
- 🐛 Issues: GitHub Issues
- 📧 Security: security@example.com
- ✅ Production ready
- ✅ Fully documented
- ✅ Docker optimized
- ✅ Security hardened
- ✅ CI/CD configured
- ✅ Community ready
- ✅ International standard
MIT License - Free to use, modify, and distribute
- Hono: Ultrafast web framework
- Playwright: Reliable browser automation
- Community: Contributors and users
- Inspiration: Cloudflare Browser Rendering API
Version: 1.0.0
Status: Production Ready
Maintained: Yes
License: MIT
Languages: English, Indonesian