Alternatif Open Source untuk Cloudflare Browser Rendering API
Dibuat dengan ❤️ oleh DEVMODE Community
Solusi self-hosted yang powerful untuk rendering halaman web, screenshot, PDF generation, dan JavaScript evaluation menggunakan Hono + Playwright.
- 📸 Screenshot API - Tangkap screenshot dalam format PNG/JPEG
- 📄 PDF Generation - Konversi halaman web ke PDF
- 🔧 JavaScript Evaluation - Jalankan JavaScript di browser
- 🔐 Autentikasi Aman - Bearer token authentication
- ⚡ Kontrol Konkurensi - Pembatasan request otomatis
- 🌐 Multi-Browser - Chromium, Firefox, WebKit
- 🐳 Docker Ready - Deploy mudah dengan Docker
- 🔒 Production Ready - Security hardening included
# Clone repository
git clone https://github.com/devmode-id/OpenBrowserRendering.git
cd OpenBrowserRendering
# Setup environment
cp .env.example .env
# Edit .env dan ganti RENDERER_API_KEY
# Jalankan dengan Docker Compose
docker-compose up -d
# Test
curl http://localhost:3000/health# Clone repository
git clone https://github.com/devmode-id/OpenBrowserRendering.git
cd OpenBrowserRendering
# Install dependencies
npm install
# Install browser
npx playwright install --with-deps
# Setup environment
cp .env.example .env
# Jalankan server
npm startcurl -X POST http://localhost:3000/screenshot \
-H "Authorization: Bearer supersecret123" \
-H "Content-Type: application/json" \
-o screenshot.png \
-d '{
"url": "https://example.com",
"viewport": {"width": 1920, "height": 1080},
"screenshotOptions": {"fullPage": true}
}'curl -X POST http://localhost:3000/pdf \
-H "Authorization: Bearer supersecret123" \
-H "Content-Type: application/json" \
-o page.pdf \
-d '{
"url": "https://example.com",
"format": "A4"
}'# SSH ke VPS
ssh user@your-vps-ip
# Download dan jalankan script deployment
curl -fsSL https://raw.githubusercontent.com/devmode-id/OpenBrowserRendering/main/scripts/deploy-vps.sh -o deploy.sh
chmod +x deploy.sh
sudo ./deploy.sh# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Install Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Clone dan setup
git clone https://github.com/devmode-id/OpenBrowserRendering.git
cd OpenBrowserRendering
cp .env.example .env
nano .env # Edit konfigurasi
# Jalankan
docker-compose up -d# Install Nginx
sudo apt install nginx
# Buat konfigurasi
sudo nano /etc/nginx/sites-available/renderer
# Paste konfigurasi:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 60s;
}
}
# Aktifkan site
sudo ln -s /etc/nginx/sites-available/renderer /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
# Install SSL
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.comEdit file .env:
# Port server
PORT=3000
# API Key (GANTI INI!)
RENDERER_API_KEY=your-secret-key-here
# Browser engine: chromium, firefox, webkit
BROWSER_ENGINE=chromium
# Maksimum request bersamaan
# 2GB RAM = 2, 4GB RAM = 4, 8GB RAM = 8
MAX_CONCURRENCY=2
# CORS origins (pisahkan dengan koma)
ALLOWED_ORIGINS=*- 📘 API Reference - Dokumentasi API lengkap
- 💡 Examples - Contoh kode (JS, Python, PHP)
- ❓ FAQ - Pertanyaan umum
- 🔒 Security - Panduan keamanan
- 🤝 Contributing - Panduan kontribusi
-
Ganti API Key Default
# Generate key yang aman openssl rand -base64 32 -
Gunakan HTTPS
- Deploy di belakang Nginx dengan SSL
- Gunakan Let's Encrypt untuk sertifikat gratis
-
Batasi CORS
ALLOWED_ORIGINS=https://yourdomain.com
-
Setup Firewall
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable -
Rate Limiting
- Implementasi di Nginx atau Cloudflare
- Monitor penggunaan resource
# Status container
docker ps
# Lihat logs
docker-compose logs -f
# Resource usage
docker stats# Status
pm2 status
# Logs
pm2 logs
# Monitoring
pm2 monit# Ganti port di .env
PORT=3001# Cek logs
docker-compose logs -f
# Cek resource
docker stats# Gunakan waitUntil: networkidle
{
"url": "https://example.com",
"gotoOptions": {"waitUntil": "networkidle"}
}Kami menerima kontribusi! Lihat CONTRIBUTING.id.md untuk panduan.
MIT License - Bebas digunakan, dimodifikasi, dan didistribusikan.
- Hono - Web framework
- Playwright - Browser automation
- Komunitas open source
- 💬 Diskusi
- 🐛 Issues
- 🌐 DEVMODE Community
- 📧 Email: support@devmode.id
Dibuat dengan ❤️ oleh DEVMODE Community
Komunitas Developer Indonesia untuk Ekosistem Open Source