Jinsi ya Ku-deploy NestJS kwenye Namecheap Shared Hosting

Ku-deploy NestJS kwenye Namecheap shared hosting si kama ku-deploy tovuti ya static au programu ya PHP. Huwezi tu kupakia mafaili na kutarajia ifanye kazi.

Lazima ubadilishe (compile) TypeScript kuwa JavaScript, uweke (install) dependencies za uzalishaji (production), na utumie cPanel kusimamia mchakato huo kupitia Passenger.

Nilikutana na folda tupu, mafaili ya build yaliyokosekana, na miunganisho ya Redis iliyokatika kabla sijapata njia sahihi. Hapa kuna mtiririko wa kazi uliothibitishwa.

Mantiki ya Usanidi (Setup Logic)

Ombi hufuata njia hii: • Kivinjari (Browser) au API client • Domain na HTTPS • Apache / Passenger kwenye Namecheap • app.js (daraja) • dist/main.js (kodi iliyobadilishwa/compiled) • Programu ya NestJS

Mahitaji Muhimu

• Akaunti ya hosting ya Namecheap yenye msaada wa Node.js • Ufikiaji wa cPanel na SSH/Terminal • Mradi wa NestJS unaofanya kazi • Taarifa za siri (credentials) za uzalishaji kwa ajili ya database au Redis yako

Hatua ya 1: Tayarisha kodi yako

Usitumie port iliyoandikwa moja kwa moja (hard-coded). Kwenye src/main.ts yako, tumia process.env.PORT:

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(process.env.PORT || 4000);
}

Hatua ya 2: Panga dependencies

Hamisha vifurushi vya runtime kama @nestjs/common na @nestjs/core kwenda kwenye sehemu ya dependencies kwenye package.json. Ikiwa zitabaki kwenye devDependencies, programu yako itafeli (crash) wakati wa uzalishaji (production).

Hatua ya 3: Build na Tengeneza Daraja

Namecheap huendesha JavaScript, si TypeScript. • Endesha npm run build kwenye kompyuta yako (locally). • Hakikisha dist/main.js ipo. • Tengeneza faili la app.js kwenye mzizi (root) wa mradi wako ukiwa na mstari huu: require('./dist/main');

Hili app.js hufanya kazi kama njia ya kuingilia (entry point) kwa Passenger.

Hatua ya 4: Mkakati wa Ku-deploy

Njia salama zaidi ni ku-build locally na kupakia matokeo (artifacts): • Pakia app.js • Pakia folda ya dist/ • Pakia package.json na package-lock.json • Kwenye Namecheap, endesha: npm ci --omit=dev

Usipakie kamwe folda yako ya node_modules ya ndani. Moduli za asili (native modules) zilizojengwa kwenye kompyuta yako hazitafanya kazi kwenye seva ya Linux.

Hatua ya 5: Sanidi cPanel

Nenda kwenye Setup Node.js App kwenye cPanel: • Chagua toleo sahihi la Node.js. • Weka mode iwe Production. • Weka Application root iwe folda yako. • Weka Application startup file iwe app.js.

Hatua ya 6: Variable za Mazingira (Environment Variables)

Ongeza siri zako (kama DATABASE_URL au API keys) moja kwa moja kwenye kiolesura (interface) cha Node.js cha cPanel. Unaweza pia kutumia faili la .env kwenye mzizi (root), lakini hakikisha halipo ndani ya folda ya dist. Anzisha upya (restart) programu baada ya kufanya mabadiliko.

Utatuzi wa Matatizo ya Kawaida

EADDRINUSE: Inawezekana una mchakato wa manual unaoendesha. Acha Passenger isimamie programu. • Cannot find module: Build yako haipo au njia (path) kwenye app.js ni mbaya. • Redis connection failed: Angalia kama Namecheap inaruhusu miunganisho ya nje (outbound connections) kwenye port yako ya Redis. Unaweza kuhitaji kuwaomba wahudumu wa Namecheap (support) kuifungua.

Chanzo: https://dev.to/adesoji/how-to-deploy-and-run-a-nestjs-app-on-namecheap-shared-hosting-5c45