Namecheap Shared Hosting 'ਤੇ NestJS ਕਿਵੇਂ ਡਿਪਲੋਏ ਕਰੀਏ
Namecheap shared hosting 'ਤੇ NestJS ਡਿਪਲੋਏ ਕਰਨਾ ਕਿਸੇ ਸਟੈਟਿਕ ਸਾਈਟ ਜਾਂ PHP ਐਪ ਨੂੰ ਡਿਪਲੋਏ ਕਰਨ ਵਾਂਗ ਨਹੀਂ ਹੈ। ਤੁਸੀਂ ਸਿਰਫ਼ ਫਾਈਲਾਂ ਅਪਲੋਡ ਕਰਕੇ ਇਹ ਉਮੀਦ ਨਹੀਂ ਕਰ ਸਕਦੇ ਕਿ ਇਹ ਕੰਮ ਕਰੇਗੀ।
ਤੁਹਾਨੂੰ TypeScript ਨੂੰ JavaScript ਵਿੱਚ ਕੰਪਾਈਲ ਕਰਨਾ ਪਵੇਗਾ, production dependencies ਇੰਸਟਾਲ ਕਰਨੀਆਂ ਪੈਣਗੀਆਂ, ਅਤੇ Passenger ਰਾਹੀਂ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰਨ ਲਈ cPanel ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਪਵੇਗੀ।
ਸਹੀ ਤਰੀਕਾ ਲੱਭਣ ਤੋਂ ਪਹਿਲਾਂ ਮੈਨੂੰ ਖਾਲੀ ਫੋਲਡਰਾਂ, ਗੁੰਮ ਹੋਈਆਂ build ਫਾਈਲਾਂ, ਅਤੇ ਟੁੱਟੇ ਹੋਏ Redis ਕਨੈਕਸ਼ਨਾਂ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪਿਆ। ਇੱਥੇ ਇੱਕ ਪ੍ਰਮਾਣਿਤ ਵਰਕਫਲੋ (workflow) ਦਿੱਤਾ ਗਿਆ ਹੈ।
ਸੈੱਟਅੱਪ ਲੋਜਿਕ (The Setup Logic)
ਰਿਕਵੈਸਟ ਇਸ ਪਾਥ (path) ਦੀ ਪਾਲਣਾ ਕਰਦੀ ਹੈ: • Browser ਜਾਂ API client • Domain ਅਤੇ HTTPS • Namecheap 'ਤੇ Apache / Passenger • app.js (ਬ੍ਰਿਜ) • dist/main.js (ਕੰਪਾਈਲਡ ਕੋਡ) • NestJS ਐਪਲੀਕੇਸ਼ਨ
ਮੁੱਖ ਲੋੜਾਂ (Key Requirements)
• Node.js ਸਪੋਰਟ ਵਾਲਾ ਇੱਕ Namecheap ਹੋਸਟਿੰਗ ਅਕਾਊਂਟ • cPanel ਅਤੇ SSH/Terminal ਤੱਕ ਪਹੁੰਚ • ਇੱਕ ਚੱਲ ਰਿਹਾ NestJS ਪ੍ਰੋਜੈਕਟ • ਤੁਹਾਡੇ ਡੇਟਾਬੇਸ ਜਾਂ Redis ਲਈ production credentials
ਸਟੈਪ 1: ਆਪਣਾ ਕੋਡ ਤਿਆਰ ਕਰੋ
ਕੋਈ hard-coded port ਦੀ ਵਰਤੋਂ ਨਾ ਕਰੋ। ਆਪਣੇ src/main.ts ਵਿੱਚ, process.env.PORT ਦੀ ਵਰਤੋਂ ਕਰੋ:
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(process.env.PORT || 4000);
}
ਸਟੈਪ 2: Dependencies ਨੂੰ ਸੰਗਠਿਤ ਕਰੋ
@nestjs/common ਅਤੇ @nestjs/core ਵਰਗੇ runtime packages ਨੂੰ package.json ਦੇ dependencies ਸੈਕਸ਼ਨ ਵਿੱਚ ਮੂਵ ਕਰੋ। ਜੇਕਰ ਉਹ devDependencies ਵਿੱਚ ਰਹਿੰਦੇ ਹਨ, ਤਾਂ ਤੁਹਾਡੀ ਐਪ production ਵਿੱਚ ਕ੍ਰੈਸ਼ ਹੋ ਜਾਵੇਗੀ।
ਸਟੈਪ 3: Build ਕਰੋ ਅਤੇ ਬ੍ਰਿਜ (Bridge) ਬਣਾਓ
Namecheap JavaScript ਚਲਾਉਂਦਾ ਹੈ, TypeScript ਨਹੀਂ।
• ਸਥਾਨਕ ਤੌਰ 'ਤੇ (locally) npm run build ਚਲਾਓ।
• ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ dist/main.js ਮੌਜੂਦ ਹੈ।
• ਆਪਣੇ ਪ੍ਰੋਜੈਕਟ ਰੂਟ ਵਿੱਚ ਇਸ ਲਾਈਨ ਦੇ ਨਾਲ ਇੱਕ app.js ਫਾਈਲ ਬਣਾਓ: require('./dist/main');
ਇਹ app.js Passenger ਲਈ entry point ਵਜੋਂ ਕੰਮ ਕਰਦਾ ਹੈ।
ਸਟੈਪ 4: ਡਿਪਲੋਇਮੈਂਟ ਰਣਨੀਤੀ (Deployment Strategy)
ਸਭ ਤੋਂ ਸੁਰੱਖਿਅਤ ਤਰੀਕਾ ਸਥਾਨਕ ਤੌਰ 'ਤੇ build ਕਰਨਾ ਅਤੇ artifacts ਅਪਲੋਡ ਕਰਨਾ ਹੈ:
• app.js ਅਪਲੋਡ ਕਰੋ
• dist/ ਫੋਲਡਰ ਅਪਲੋਡ ਕਰੋ
• package.json ਅਤੇ package-lock.json ਅਪਲੋਡ ਕਰੋ
• Namecheap 'ਤੇ ਚਲਾਓ: npm ci --omit=dev
ਕਦੇ ਵੀ ਆਪਣਾ ਸਥਾਨਕ node_modules ਫੋਲਡਰ ਅਪਲੋਡ ਨਾ ਕਰੋ। ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ 'ਤੇ ਬਣਾਏ ਗਏ native modules Linux ਸਰਵਰ 'ਤੇ ਕੰਮ ਨਹੀਂ ਕਰਨਗੇ।
ਸਟੈਪ 5: cPanel ਕੰਫਿਗਰ ਕਰੋ
cPanel ਵਿੱਚ Setup Node.js App 'ਤੇ ਜਾਓ:
• ਸਹੀ Node.js version ਚੁਣੋ।
• mode ਨੂੰ Production 'ਤੇ ਸੈੱਟ ਕਰੋ।
• Application root ਨੂੰ ਆਪਣੇ ਫੋਲਡਰ 'ਤੇ ਸੈੱਟ ਕਰੋ।
• Application startup file ਨੂੰ app.js 'ਤੇ ਸੈੱਟ ਕਰੋ।
ਸਟੈਪ 6: Environment Variables
ਆਪਣੇ secrets (ਜਿਵੇਂ ਕਿ DATABASE_URL ਜਾਂ API keys) ਨੂੰ ਸਿੱਧੇ cPanel Node.js ਇੰਟਰਫੇਸ ਵਿੱਚ ਜੋੜੋ। ਤੁਸੀਂ ਰੂਟ ਵਿੱਚ ਇੱਕ .env ਫਾਈਲ ਦੀ ਵਰਤੋਂ ਵੀ ਕਰ ਸਕਦੇ ਹੋ, ਪਰ ਇਹ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਇਹ dist ਫੋਲਡਰ ਦੇ ਅੰਦਰ ਨਾ ਹੋਵੇ। ਬਦਲਾਅ ਕਰਨ ਤੋਂ ਬਾਅਦ ਐਪ ਨੂੰ ਰੀਸਟਾਰਟ ਕਰੋ।
ਆਮ ਸਮੱਸਿਆਵਾਂ ਦਾ ਨਿਪਟਾਰਾ (Common Troubleshooting)
• EADDRINUSE: ਸੰਭਵ ਹੈ ਕਿ ਕੋਈ ਮੈਨੂਅਲ ਪ੍ਰਕਿਰਿਆ ਚੱਲ ਰਹੀ ਹੋਵੇ। Passenger ਨੂੰ ਐਪ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਦਿਓ।
• Cannot find module: ਤੁਹਾਡੀ build ਗੁੰਮ ਹੈ ਜਾਂ app.js ਵਿੱਚ ਪਾਥ ਗਲਤ ਹੈ।
• Redis connection failed: ਚੈੱਕ ਕਰੋ ਕਿ ਕੀ Namecheap ਤੁਹਾਡੇ Redis port 'ਤੇ outbound connections ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਇਸਨੂੰ ਖੋਲ੍ਹਣ ਲਈ Namecheap support ਨੂੰ ਕਹਿਣ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ।
ਸਰੋਤ (Source): https://dev.to/adesoji/how-to-deploy-and-run-a-nestjs-app-on-namecheap-shared-hosting-5c45
