Skip to content

afr0700/TEST-AIO

Repository files navigation

πŸš€ Cloudflare Workers Auto-Deployer

Automasi deployment Cloudflare Workers dengan multi-domain routing yang powerful dan mudah digunakan

GitHub Actions Cloudflare


πŸ“– Deskripsi

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.

✨ Fitur Utama

  • 🎯 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

🎭 TUTORIAL DAN PENJELSAN

1️⃣ Deploy Injektor (main.yml)

Single Worker, Multiple Domains

Workflow ini ideal untuk mendeploy satu Cloudflare Worker yang akan menangani satu domain utama beserta beberapa subdomain.

πŸŽͺ Kapan Menggunakan?

  • βœ… Anda memiliki satu domain utama dengan beberapa subdomain
  • βœ… Semua traffic akan ditangani oleh satu worker yang sama
  • βœ… Deployment cepat dan sederhana
  • βœ… Testing dan development

🎬 Cara Penggunaan

  1. Siapkan File Konfigurasi

    Buat file customdomain.txt di root repository dengan format:

    ava.game.naver.com
    quiz.int.vidio.com
    support.zoom.us
    cache.netflix.com
    
    
  2. Trigger Workflow

    • Buka tab Actions di repository GitHub
    • Pilih "Deploy Injektor"
    • Klik "Run workflow"
    • Isi form input:
    Parameter Deskripsi Contoh
    worker_name Nama unik worker my-awesome-worker
    cloudflare_account_id Account ID Cloudflare abc123def456...
    cloudflare_api_token API Token dengan izin edit Workers xxxxx-yyyyyyy-zzzzz
    main_domain Domain utama example.com
  3. 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
    

2️⃣ Deploy Chunked Multi-Domain Worker (multi.yml)

Multiple Workers, Massive Scale

Workflow ini dirancang untuk deployment skala besar dengan kemampuan mendeploy banyak workers sekaligus, masing-masing untuk domain utama yang berbeda.

πŸŽͺ Kapan Menggunakan?

  • βœ… Anda memiliki banyak domain utama yang berbeda
  • βœ… Setiap domain memerlukan worker terpisah
  • βœ… Deployment massal dan efisien
  • βœ… Multi-tenant applications
  • βœ… Deployment production scale

🎬 Cara Penggunaan

  1. Siapkan File Konfigurasi

    File 1: main_domains.txt - Daftar domain utama

    blueivy.qzz.io
    taylor.swift.net
    ariana.grande.dev
    

    File 2: customdomain.txt - Daftar prefix subdomain (sama seperti workflow pertama)

    ava.game.naver.com
    quiz.int.vidio.com
    support.zoom.us
    cache.netflix.com
    
  2. 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_id Account ID Cloudflare - abc123def456...
    cloudflare_api_token API Token dengan izin edit Workers - xxxxx-yyyyyyy-zzzzz
    chunk_size Jumlah domain per deployment 1 1 (recommended)
  3. 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!
    
  4. 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.io
    

    Worker: 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.net
    

    Worker: 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
    

πŸ” Setup Cloudflare API Token

Untuk menggunakan kedua workflow ini, Anda memerlukan Cloudflare API Token dengan permission yang tepat:

  1. Login ke Cloudflare Dashboard
  2. Pergi ke My Profile β†’ API Tokens
  3. Klik Create Token
  4. 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)
  5. Copy token yang dihasilkan

πŸ“ Mendapatkan Account ID

Account ID bisa ditemukan di:

  • Dashboard Cloudflare β†’ Pilih domain β†’ Sidebar kanan bawah
  • Atau di URL: https://dash.cloudflare.com/[ACCOUNT_ID]/workers

πŸ“‚ Struktur File

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

🎯 Perbandingan Workflow

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)

πŸ’‘ Tips & Best Practices

βœ… DO's

  • πŸ”’ 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: 1 untuk menghindari rate limiting
  • πŸ“‹ Backup file main_domains.txt dan customdomain.txt

❌ DON'Ts

  • 🚫 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

πŸ› Troubleshooting

Problem: "File main_domains.txt tidak ditemukan"

Solusi: Pastikan file ada di root repository dan sudah di-commit.

Problem: "Deployment failed - Rate Limited"

Solusi:

  • Gunakan chunk_size: 1
  • Increase delay di script (ubah sleep 20 menjadi sleep 30)

Problem: "Invalid wrangler.toml"

Solusi:

  • Pastikan tidak ada baris kosong di akhir file .txt
  • Check format domain (harus valid FQDN)

Problem: "Worker name already exists"

Solusi:

  • Deploy Injektor: Gunakan nama worker yang berbeda
  • Deploy Multi-Domain: Worker name otomatis dari domain, pastikan domain unik

🀝 Contributing

Contributions are welcome! Jangan ragu untuk:

  • πŸ› Report bugs
  • πŸ’‘ Suggest new features
  • πŸ“– Improve documentation
  • πŸ”§ Submit pull requests

πŸ“œ License

Silakan sesuaikan dengan lisensi project Anda.


πŸŽ‰ Acknowledgments

  • Cloudflare - Untuk platform Workers yang luar biasa
  • GitHub Actions - Untuk CI/CD yang powerful
  • Wrangler - CLI tool yang memudahkan deployment

Made BY AFRCloud-NET

⬆ Back to Top

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •