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