Module 10: App එක Deploy කිරීම

අපේ project එකේ අවසාන පියවර! දැන් අපි අපේ Notes App එක live server එකකට deploy කරමු.

1. Deployment එක සඳහා සූදානම් වීම

App එක deploy කිරීමට පෙර, කරුණු කිහිපයක් තහවුරු කර ගත යුතුය.

➡️ Git සහ GitHub/GitLab

Vercel වැනි නූතන hosting platforms, Git repositories සමඟ ඉතා හොඳින් ක්‍රියා කරයි. ඔබේ project එක GitHub, GitLab, හෝ Bitbucket වැනි සේවාවක repository එකකට push කර තිබිය යුතුය.

  1. ඔබේ project folder එකේ terminal එක open කර git init command එක run කරන්න.
  2. .gitignore file එකක් සාදා, node_modules, .env.local, සහ notes.db යන files/folders ඊට ඇතුළත් කරන්න. (Database file එක commit නොකළ යුතුය).
  3. GitHub හි අලුත් repository එකක් සාදා, ඔබේ project එක ඊට push කරන්න.
➡️ Environment Variables

අපි .env.local file එකේ ගබඩා කළ JWT_SECRET එක Vercel හිදී වෙනම සකස් කළ යුතුය. Vercel dashboard එකේ "Environment Variables" section එකේදී මෙය ඇතුළත් කළ හැක.


2. Vercel මත Deploy කිරීම

Vercel යනු Next.js නිර්මාතෘවරුන්ගේ platform එක වන අතර, Next.js apps deploy කිරීමට ඇති පහසුම සහ හොඳම ක්‍රමයකි.

  1. Vercel.com වෙත ගොස්, ඔබේ GitHub/GitLab ගිණුම සමඟ ලියාපදිංචි වන්න.
  2. Vercel dashboard එකේ, "Add New... -> Project" තෝරන්න.
  3. ඔබේ Git provider (GitHub) එකෙන් අදාළ project repository එක Import කරන්න.
  4. Vercel ස්වයංක්‍රීයවම එය Next.js project එකක් බව හඳුනාගනු ඇත.
  5. "Environment Variables" section එක expand කර, JWT_SECRET එක සහ එහි අගය ඇතුළත් කරන්න.
  6. "Deploy" button එක click කරන්න.

මිනිත්තු කිහිපයක් ඇතුළත, Vercel ඔබේ project එක build කර, deploy කර, ඔබට public URL එකක් ලබා දෙනු ඇත!


3. Production එකේදී SQLite Database එක Handle කිරීම

⚠️ වැදගත්: Vercel වැනි serverless platforms වලදී, file system එක ephemeral (තාවකාලික) වේ. එනම්, deployment එකක් re-start වූ විට, file system එකේ කළ වෙනස්කම් (අපේ notes.db file එක) නැති වී යයි. කුඩා, personal projects සඳහා මෙය ගැටළුවක් නොවිය හැකි නමුත්, සැබෑ production app එකක් සඳහා මෙය සුදුසු නැත.

මෙම ගැටළුවට විසඳුම් කිහිපයක් ඇත:

➡️ Production එකේදී Migrations Run කිරීම

අලුතින් deploy කළ විට, database එක හිස්ව පවතී. අපේ tables (users, notes) නිර්මාණය කිරීමට migration script එක run කළ යුතුය. Vercel build process එකේදී command එකක් run කිරීමට, package.json file එකේ scripts section එක වෙනස් කළ යුතුය.

// In package.json

"scripts": {
  "dev": "next dev",
  "build": "next build",
  "start": "next start",
  "lint": "next lint",
  "postinstall": "node ./init-db.js" // Add this line
}

postinstall script එක, Vercel විසින් project dependencies install කළ වහාම run වේ. එමගින් init-db.js script එක run වී, notes.db file එක සහ අවශ්‍ය tables නිර්මාණය වනු ඇත.


✅ පාඨමාලාව අවසානයි!

සුභ පැතුම්! ඔබ දැන් Next.js සහ SQLite භාවිතා කරමින්, user authentication සහ CRUD functionality සහිත සම්පූර්ණ full-stack web application එකක් මුල සිට ගොඩනගා, එය deploy කරන ආකාරයද ඉගෙන ගෙන ඇත.

මෙම පාඨමාලාවෙන් ඔබ ලබාගත් දැනුම, තවත් සංකීර්ණ සහ විශාල projects නිර්මාණය කිරීමට ශක්තිමත් අඩිතාලමක් වනු ඇත. ඉදිරියටත් නව දේවල් ඉගෙන ගනිමින්, ඔබේ skills වර්ධනය කරගන්න!