langkah membuat website private di cloudflare tanpa zero trust dengan menggunakan data upload dari github
Halo! Untuk membuat website private di Cloudflare tanpa menggunakan Cloudflare Zero Trust, tetapi tetap mengambil data/source code langsung dari GitHub, kamu bisa mengombinasikan **GitHub Pages (dengan repository private)** atau **Cloudflare Pages** yang dihubungkan langsung ke GitHub, lalu diamankan menggunakan **Cloudflare Access (tanpa Zero Trust dashboard yang rumit)** atau **Cloudflare Workers**.
Berikut adalah langkah-langkah praktis menggunakan **Cloudflare Pages + GitHub** yang diproteksi dengan **Cloudflare Access**:
### **Persiapan Awal**
1. Pastikan kamu sudah memiliki akun **GitHub** dan repository (bisa berstatus **Private**) yang berisi file website kamu (`index.html`, dll).
2. Pastikan kamu sudah memiliki akun **Cloudflare** dan domain kamu sudah diarahkan (nameserver-nya) ke Cloudflare.
---
### **Langkah 1: Hubungkan GitHub ke Cloudflare Pages**
1. Login ke **Cloudflare Dashboard**.
2. Pilih menu **Workers & Pages** di sidebar kiri.
3. Klik tab **Pages**, lalu pilih **Connect to Git**.
4. Pilih **GitHub**, lalu berikan akses ke akun GitHub kamu (pilih repository private yang sudah disiapkan).
5. Pada bagian **Set up builds**, sesuaikan pengaturannya:
- **Production branch**: `main` (atau `master`)
- **Build command**: *(kosongkan jika hanya file HTML/CSS biasa)*
- **Build output directory**: `/` *(atau sesuaikan jika ada folder khusus seperti `public` atau `dist`)*
6. Klik **Save and Deploy**. Tunggu hingga proses build selesai. Sekarang website kamu sudah online, tetapi **masih bersifat publik**.
---
### **Langkah 2: Amankan Website agar Menjadi Private (Tanpa Zero Trust)**
Meskipun kita tidak memakai ekosistem Zero Trust yang kompleks, Cloudflare menyediakan fitur **Access / IP Access Rules** di dalam menu DNS/Security. Cara paling mudah dan gratis tanpa paket berbayar Zero Trust adalah menggunakan **Cloudflare Workers** sederhana atau **HTTP Basic Authentication** via Cloudflare Transform Rules / Workers.
Berikut cara termudah menggunakan **Cloudflare Workers** untuk memproteksi website dengan *Password* (Username & Password):
1. Di dashboard Cloudflare, buka menu **Workers & Pages**.
2. Klik **Create application** -> **Create Worker**.
3. Beri nama worker kamu (misal: `private-site-auth`), lalu klik **Deploy**.
4. Setelah terbuat, klik **Edit code**.
5. Hapus kode default, lalu masukkan script sederhana untuk autentikasi *Basic Auth* (ganti `username` dan `password` sesuai keinginanmu):
```javascript
export default {
async fetch(request, env, ctx) {
const credentials = "Basic " + btoa("username:password"); // Ganti username & password
const authHeader = request.headers.get("Authorization");
if (!authHeader || authHeader !== credentials) {
return new Response("Unauthorized", {
status: 401,
headers: {
"WWW-Authenticate": 'Basic realm="Protected Website"',
},
});
}
// Teruskan request ke Cloudflare Pages kamu jika password benar
return fetch(request);
},
};
```
6. Klik **Save and Deploy**.
---
### **Langkah 3: Hubungkan Worker ke Domain Cloudflare Pages**
1. Buka kembali menu **Workers & Pages** -> pilih Worker yang baru dibuat (`private-site-auth`).
2. Masuk ke tab **Settings** -> **Triggers**.
3. Pada bagian **Custom Domains**, klik **Add Custom Domain**.
4. Masukkan subdomain website kamu (contoh: `private.namadomain.com`).
5. Selesai! Sekarang setiap kali ada yang mengakses `private.namadomain.com`, browser akan memunculkan *pop-up* permintaan **Username & Password** sebelum bisa melihat isi website dari GitHub yang di-deploy tadi.
_Catatan_: Setiap kali kamu melakukan `git push` perubahan kode di **GitHub**, Cloudflare Pages akan otomatis memperbarui website secara real-time, dan proteksi password akan tetap aktif!