Pelajari cara menyiarkan aplikasi web anda ke Internet menggunakan pelbagai platform percuma.
Bayangkan awak dah siapkan lukisan yang cantik di atas kertas. Sekarang nak tunjuk kat semua orang. Tapi lukisan tu ada dalam bilik awak — hanya awak yang nampak.
Deployment adalah proses "memindahkan" lukisan tu dari bilik awak ke galeri pameran yang boleh dikunjungi semua orang. Dalam dunia web, deployment bermaksud:
Kod dan fail HTML/CSS/JS awak sekarang ada dalam komputer/laptop sendiri. Hanya awak boleh akses melalui localhost.
Kod awak disalin ke komputer istimewa yang dipanggil server. Server ini sentiasa hidup dan bersambung ke internet 24/7.
Sesiapa sahaja di dunia boleh buka pelayar web, taip URL awak (contoh: projek-saya.pages.dev), dan nampak hasil kerja awak.
Ingat: "Deploy" = "hantar ke internet". "Production" = "versi live yang orang lain boleh guna".
| Jenis | Penerangan | Contoh | Sesuai Untuk |
|---|---|---|---|
| Static Site | HTML + CSS + JavaScript tulen. Tiada server backend. | Landing page, portfolio, blog ringkas | Beginner — paling mudah |
| Dynamic / Serverful | Ada backend (Node.js, Python, etc.) dan database. | Dashboard, e-commerce, social app | Intermediate — Advanced |
| Jamstack / Edge | Static frontend + serverless functions di edge. | Modern web apps, API endpoints | Intermediate — Advanced |
Cloudflare Pages adalah platform deployment paling mudah dan paling sesuai untuk beginner. Free tier-nya sangat generous: unlimited site, 500 builds sebulan, dan bandwidth tak terhad.
Kelebihan Cloudflare Pages: Build paling pantas, UI paling clean, SSL automatik, dan integration dengan GitHub yang seamless. Paling penting — free selama-lamanya untuk kegunaan biasa.
https://dash.cloudflare.comlanding-page-ali)main/https://projek-anda.pages.devNetlify adalah platform deployment yang sangat popular dan mature. Ia offer free tier 100GB bandwidth dan 300 minit build sebulan.
https://app.netlify.comhttps://random-name.netlify.apphttps://portfolio-anda.netlify.appTip: Netlify ada feature Deploy Preview — setiap pull request di GitHub akan dapat URL preview sementara. Berguna untuk semak perubahan sebelum merge.
GitHub Pages adalah cara paling ringkas untuk deploy. Kebaikannya — semua pelajar dah ada akaun GitHub, zero setup diperlukan.
Syarat: Repository mestilah public (untuk free tier). GitHub Pages free untuk unlimited static sites.
https://[username].github.io/[repo-name]/https://ali.github.io/landing-page/Limitasi GitHub Pages: Hanya untuk static content. Tak support server-side processing (PHP, Node.js, Python). Untuk frontend framework (React, Vue), kena set build output dengan betul.
Platform deployment bagi URL percuma (macam .pages.dev, .netlify.app). Tapi untuk kelihatan lebih profesional, awak boleh guna domain sendiri.
Macam mana nak dapat domain?
portfolioku.com)@ → projek-anda.pages.devDNS Propagation: Selepas update DNS, tunggu 5 minit hingga 48 jam untuk perubahan berkuat kuasa di seluruh dunia. Guna whatsmydns.net untuk semak status.
Pernah nampak 🔒 di sebelah URL pelayar web? Itu tanda HTTPS (HyperText Transfer Protocol Secure) — sambungan selamat antara browser dan server.
Data dihantar dalam teks kosong. Kalau orang jahat intercept, dia boleh baca semua data. Macam poskad — semua orang nampak isinya.
Data dihantar dalam keadaan dienkripsi. Walaupun orang jahat intercept, dia tak boleh baca. Macam surat dalam sampul surat bertutup.
Dulu, nak setup HTTPS kena:
Sekarang, platform deployment moden (Cloudflare, Netlify, Vercel, GitHub Pages) sediakan HTTPS secara automatik dan percuma. Tak perlu buat apa-apa — SSL cert auto-dihasilkan, auto-renew, dan auto-dipasang.
Kelebihan HTTPS: (1) Data selamat dari eavesdropping, (2) Ranking lebih baik dalam Google Search, (3) Dipercayai pengguna (nampak ikon 🔒), (4) Diperlukan untuk banyak feature web moden (Service Workers, Geolocation API).
Bayangkan awak nak guna API key (kata laluan untuk perkhidmatan luar) dalam kod awak. Tapi API key tak boleh letak terus dalam kod — sebab nanti orang lain nampak masa tengok GitHub.
Environment Variables (Env Vars) adalah tempat simpan "rahsia" secara selamat:
Peringatan: Jangan simpan password, API key, atau secret dalam kod JavaScript di frontend. Sesiapa yang inspect page boleh nampak. Guna backend/serverless functions untuk uruskan rahsia.
| Jenis | Bila Diguna | Contoh |
|---|---|---|
| Build-time | Semasa build (masa generate static files) | API URL untuk prerender content |
| Runtime | Semasa run (masa user akses site) | API key untuk serverless functions |
Untuk projek HTML/CSS/JS tulen — tiada build step diperlukan. Tapi kalau guna framework macam React, Vue, atau Next.js, kena set build settings dengan betul.
| Framework | Build Command | Output Directory |
|---|---|---|
| HTML Tulen | (kosong) | / |
| React (Vite) | npm run build | dist |
| Next.js | npm run build | out (static) / .next |
| Vue (Vite) | npm run build | dist |
| SvelteKit | npm run build | build |
| Astro | npm run build | dist |
| Hugo | hugo | public |
| Jekyll | jekyll build | _site |
Tip: Kalau tak pasti apa build settings untuk projek awak, tanya AI: "Apa build command dan output directory untuk [framework] di [platform]?". AI akan bagi jawapan tepat.
Kebanyakan platform guna Node.js version default (biasanya v18 atau v20). Kalau projek perlukan version spesifik, set dalam .nvmrc atau package.json ("engines" field).
Apa yang awak dah belajar dalam modul ini: