Automasi deployment Cloudflare Workers dengan multi-domain routing yang powerful dan mudah digunakan
Repository ini menyediakan dua workflow GitHub Actions yang dirancang untuk mempermudah deployment Cloudflare Workers dengan konfigurasi multi-domain secara otomatis. Kedua workflow ini menggunakan pendekatan berbeda untuk memenuhi kebutuhan deployment yang beragam.
- 🎯 Deploy Single Worker - Deployment cepat untuk satu worker dengan multiple routes
- 🔄 Deploy Multiple Workers - Deployment bertahap untuk banyak workers sekaligus
- 🌐 Multi-Domain Support - Kelola ratusan domain dan subdomain dengan mudah
- ⚡ Zero Configuration - File konfigurasi dibuat otomatis dari input
- 🛡️ Safe Deployment - Built-in delay untuk mencegah rate limiting
Single Worker, Multiple Domains
Workflow ini ideal untuk mendeploy satu Cloudflare Worker yang akan menangani satu domain utama beserta beberapa subdomain.
- ✅ Anda memiliki satu domain utama dengan beberapa subdomain
- ✅ Semua traffic akan ditangani oleh satu worker yang sama
- ✅ Deployment cepat dan sederhana
- ✅ Testing dan development
-
Siapkan File Konfigurasi
Buat file
customdomain.txtdi root repository dengan format:ava.game.naver.com quiz.int.vidio.com support.zoom.us cache.netflix.com -
Trigger Workflow
- Buka tab Actions di repository GitHub
- Pilih "Deploy Injektor"
- Klik "Run workflow"
- Isi form input:
Parameter Deskripsi Contoh worker_nameNama unik worker my-awesome-workercloudflare_account_idAccount ID Cloudflare abc123def456...cloudflare_api_tokenAPI Token dengan izin edit Workers xxxxx-yyyyyyy-zzzzzmain_domainDomain utama example.com -
Hasil Deployment
Worker akan di-deploy dengan routes:
✓ example.com ✓ ava.game.naver.com.example.com ✓ quiz.int.vidio.com.example.com ✓ support.zoom.us.example.com ✓ cache.netflix.com.example.com
Multiple Workers, Massive Scale
Workflow ini dirancang untuk deployment skala besar dengan kemampuan mendeploy banyak workers sekaligus, masing-masing untuk domain utama yang berbeda.
- ✅ Anda memiliki banyak domain utama yang berbeda
- ✅ Setiap domain memerlukan worker terpisah
- ✅ Deployment massal dan efisien
- ✅ Multi-tenant applications
- ✅ Deployment production scale
-
Siapkan File Konfigurasi
File 1:
main_domains.txt- Daftar domain utamablueivy.qzz.io taylor.swift.net ariana.grande.devFile 2:
customdomain.txt- Daftar prefix subdomain (sama seperti workflow pertama)ava.game.naver.com quiz.int.vidio.com support.zoom.us cache.netflix.com -
Trigger Workflow
- Buka tab Actions di repository GitHub
- Pilih "Deploy Chunked Multi-Domain Worker"
- Klik "Run workflow"
- Isi form input:
Parameter Deskripsi Default Contoh cloudflare_account_idAccount ID Cloudflare - abc123def456...cloudflare_api_tokenAPI Token dengan izin edit Workers - xxxxx-yyyyyyy-zzzzzchunk_sizeJumlah domain per deployment 11(recommended) -
Proses Deployment
Workflow akan:
📦 Membaca main_domains.txt ⚡ Split menjadi chunks 🔄 Loop untuk setiap domain utama: ├─ Generate worker name otomatis (dari domain) ├─ Buat wrangler.toml dinamis ├─ Deploy worker └─ Tunggu 20 detik (anti rate-limit) ✅ Selesai! -
Hasil Deployment
Dari contoh di atas, akan ter-deploy 3 workers:
Worker:
blueivy✓ blueivy.qzz.io ✓ ava.game.naver.com.blueivy.qzz.io ✓ quiz.int.vidio.com.blueivy.qzz.io ✓ support.zoom.us.blueivy.qzz.io ✓ cache.netflix.com.blueivy.qzz.ioWorker:
taylor✓ taylor.swift.net ✓ ava.game.naver.com.taylor.swift.net ✓ quiz.int.vidio.com.taylor.swift.net ✓ support.zoom.us.taylor.swift.net ✓ cache.netflix.com.taylor.swift.netWorker:
ariana✓ ariana.grande.dev ✓ ava.game.naver.com.ariana.grande.dev ✓ quiz.int.vidio.com.ariana.grande.dev ✓ support.zoom.us.ariana.grande.dev ✓ cache.netflix.com.ariana.grande.dev
Untuk menggunakan kedua workflow ini, Anda memerlukan Cloudflare API Token dengan permission yang tepat:
- Login ke Cloudflare Dashboard
- Pergi ke My Profile → API Tokens
- Klik Create Token
- Gunakan template Edit Cloudflare Workers atau buat custom dengan permissions:
- Account → Workers Scripts → Edit
- Account → Workers Routes → Edit
- Zone → Workers Routes → Edit (jika menggunakan custom domain)
- Copy token yang dihasilkan
Account ID bisa ditemukan di:
- Dashboard Cloudflare → Pilih domain → Sidebar kanan bawah
- Atau di URL:
https://dash.cloudflare.com/[ACCOUNT_ID]/workers
your-repository/
├── .github/
│ └── workflows/
│ ├── main.yml # Deploy Injektor
│ └── multi.yml # Deploy Chunked Multi-Domain
├── worker.js # Kode Cloudflare Worker Anda
├── customdomain.txt # Daftar subdomain prefix
├── main_domains.txt # (untuk multi.yml) Daftar domain utama
└── README.md # Dokumentasi ini
| Fitur | Deploy Injektor | Deploy Multi-Domain |
|---|---|---|
| Jumlah Worker | 1 | Banyak (dinamis) |
| Domain Utama | 1 (manual input) | Banyak (dari file) |
| Naming Worker | Manual | Otomatis dari domain |
| Use Case | Development/Single App | Production/Multi-tenant |
| Kompleksitas | Rendah | Sedang |
| Kecepatan | Cepat | Bertahap (dengan delay) |
| Rate Limiting Protection | ❌ | ✅ (20s delay) |
- 🔒 Simpan API Token sebagai GitHub Secrets jika deployment otomatis
- 📝 Gunakan nama worker yang deskriptif dan unik
- 🧪 Test dengan satu domain dulu sebelum deployment massal
- ⏱️ Pertahankan
chunk_size: 1untuk menghindari rate limiting - 📋 Backup file
main_domains.txtdancustomdomain.txt
- 🚫 Jangan commit API Token ke repository
- 🚫 Jangan gunakan chunk_size > 1 tanpa testing
- 🚫 Jangan deploy tanpa validasi
worker.js - 🚫 Jangan lupa menambahkan newline di akhir file
.txt
Solusi: Pastikan file ada di root repository dan sudah di-commit.
Solusi:
- Gunakan
chunk_size: 1 - Increase delay di script (ubah
sleep 20menjadisleep 30)
Solusi:
- Pastikan tidak ada baris kosong di akhir file
.txt - Check format domain (harus valid FQDN)
Solusi:
- Deploy Injektor: Gunakan nama worker yang berbeda
- Deploy Multi-Domain: Worker name otomatis dari domain, pastikan domain unik
Contributions are welcome! Jangan ragu untuk:
- 🐛 Report bugs
- 💡 Suggest new features
- 📖 Improve documentation
- 🔧 Submit pull requests
Silakan sesuaikan dengan lisensi project Anda.
- Cloudflare - Untuk platform Workers yang luar biasa
- GitHub Actions - Untuk CI/CD yang powerful
- Wrangler - CLI tool yang memudahkan deployment
Made BY AFRCloud-NET