# Langkah Membuat Website Private di Cloudflare Tanpa Zero Trust
Berikut beberapa cara yang bisa kamu gunakan:
---
## **Cara 1: Cloudflare Pages dengan Password Protection**
Ini adalah cara termudah dan **tanpa Zero Trust**.
### Langkah-langkah:
1. **Push project ke GitHub**
- Pastikan kamu punya repository GitHub yang sudah di-*push* dengan file website (HTML, CSS, JS, dll.)
2. **Buka Cloudflare Dashboard**
- Login ke [dash.cloudflare.com](https://dash.cloudflare.com)
3. **Buat Project di Cloudflare Pages**
- Pilih menu **"Workers & Pages"** di sidebar
- Klik **"Create application"**
- Pilih **"Pages"** → **"Create a project"**
- Pilih **"Connect to Git"**
- Pilih repository GitHub kamu
- Configure build settings sesuai project kamu
4. **Aktifkan Password Protection**
- Setelah project dibuat, masuk ke **Settings**
- Pilih **"General"**
- Scroll ke bagian **"Access Policy"**
- Pilih **"Password Protection"**
- Aktifkan dan **set password** yang kamu inginkan
- Simpan perubahan
> ✅ **Hasil:** Siapa pun yang membuka website harus memasukkan password dulu.
---
## **Cara 2: Cloudflare Worker + Basic Auth (Tanpa Zero Trust)**
Cara ini memberikan **autentikasi username & password**.
### Langkah-langkah:
1. **Buat Worker baru**
- Buka **Workers & Pages** → **Create application**
- Pilih **Create Worker**
2. **Edit kode Worker** dengan script berikut:
```javascript
export default {
async fetch(request) {
const authHeader = request.headers.get("Authorization");
if (authHeader) {
const [scheme, encoded] = authHeader.split(" ");
if (scheme === "Basic" && encoded) {
const decoded = atob(encoded);
const [username, password] = decoded.split(":");
// Ganti dengan kredensial yang kamu mau
if (username === "admin" && password === "rahasia123") {
// Load website dari Workers KV atau fallback
return fetch(request);
}
}
}
// Tampilkan popup login
return new Response("Unauthorized", {
status: 401,
headers: {
"WWW-Authenticate": `Basic realm="Private Website", charset="UTF-8"`,
},
});
},
};
```
3. **Upload file website ke Workers KV**
- Buat namespace KV baru
- Upload file HTML/CSS/JS kamu ke KV
4. **Deploy Worker** dan akses website dengan username/password.
---
## **Cara 3: Cloudflare R2 + Signed URL**
Cocok untuk website statis yang benar-benar **private**.
### Langkah-langkah:
1. **Buat R2 bucket**
- Buka **R2 Object Storage** di Cloudflare dashboard
- Buat bucket baru
- Upload semua file website kamu
2. **Generate Signed URL**
- Gunakan script/cloudflare worker untuk membuat URL yang expired setelah waktu tertentu
- Bagikan URL tersebut hanya ke orang yang dipercaya
---
## **Ringkasan Perbandingan**
| Cara | Keamanan | Kesulitan | Best For |
|------|----------|-----------|----------|
| **Password Protection (Pages)** | ⭐⭐ | Mudah | Website sederhana |
| **Worker Basic Auth** | ⭐⭐⭐ | Sedang | Multiple users |
| **R2 + Signed URL** | ⭐⭐⭐⭐ | Lebih kompleks | File sharing |
---
## **Tips Penting**
- ✅ **Gunakan password yang kuat** agar tidak mudah ditebak
- ✅ **Nonaktifkan "Public access"** di Pages settings
- ✅ **Pastikan tidak ada route yang public** tanpa proteksi
- ✅ **Aktifkan SSL/TLS