Skip to content

VPS-এ Node.js সব সময় চালু থাকা সার্ভিস হিসেবে চালান ​

এই উদাহরণে Ubuntu বা Debian-এ systemd ব্যবহার করা হয়েছে। ধরে নেওয়া হয়েছে আপনার কাছে রিভিউ করা Node.js অ্যাপ এবং সমর্থিত Node.js ইনস্টলেশন আগে থেকেই আছে। পাথ ও এন্ট্রি পয়েন্ট আপনার প্রজেক্ট অনুযায়ী বদলে নিন।

ধাপ ​

  1. আলাদা একটি সার্ভিস ইউজার এবং ব্যক্তিগত রিলিজ ডিরেক্টরি তৈরি করুন। রিভিউ করা প্রজেক্ট সেখানেই ডিপ্লয় করুন, আর তার মালিক ওই ইউজারকেই রাখুন। ডিপেন্ডেন্সি ইনস্টল ও বিল্ড ওই ইউজার দিয়ে চালান, root দিয়ে নয়।

    bash
    sudo adduser --system --group --home /srv/apnapp apnapp
    sudo install -d -o apnapp -g apnapp /srv/apnapp/current
  2. লক করা ডিপেন্ডেন্সি ইনস্টল করুন, প্রোডাকশন রিলিজ বিল্ড করুন এবং অ্যাপকে 127.0.0.1:3000-এ শুনতে সেট করুন। এনভায়রনমেন্ট সেটিং তখনই কাজ করে, যখন অ্যাপ সেগুলো পড়ে। গোপন তথ্য সোর্স রিপোজিটরিতে নয়, সীমিত অনুমতির এনভায়রনমেন্ট ফাইলে রাখুন।

    bash
    sudo test -e /etc/apnapp.env || sudo install -o root -g apnapp -m 640 /dev/null /etc/apnapp.env
    command -v node
  3. নিচের কনফিগারেশন দিয়ে /etc/systemd/system/apnapp.service তৈরি করুন। Node executable-এর পাথ, ওয়ার্কিং ডিরেক্টরি ও এন্ট্রি ফাইল নিজের মতো বদলে নিন। এনভায়রনমেন্ট ফাইল ব্যক্তিগতভাবে পূরণ করুন। গোপন তথ্য আছে এমন বিদ্যমান ফাইল ওভাররাইট করবেন না।

    ini
    [Unit]
    Description=APNCloud application
    After=network.target
    
    [Service]
    User=apnapp
    Group=apnapp
    WorkingDirectory=/srv/apnapp/current
    Environment=NODE_ENV=production
    EnvironmentFile=/etc/apnapp.env
    ExecStart=/usr/bin/node /srv/apnapp/current/server.js
    Restart=on-failure
    RestartSec=5
    NoNewPrivileges=true
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
  4. ইউনিট যাচাই করুন, চালু করুন এবং লগ দেখুন। কোনো রুট পাবলিশ করার আগে স্টার্টআপের ত্রুটি ঠিক করুন।

    bash
    sudo systemd-analyze verify /etc/systemd/system/apnapp.service
    sudo systemctl daemon-reload
    sudo systemctl enable --now apnapp
    sudo journalctl -u apnapp -n 50 --no-pager
    curl -I http://127.0.0.1:3000/
  5. রিলিজের পর সার্ভিস রিস্টার্ট করে হেলথ দেখুন। একটি রিবুট পরীক্ষার পরিকল্পনা করুন এবং রোলব্যাকের জন্য আগের রিলিজ রেখে দিন। রিস্টার্টে রিকোয়েস্ট কিছুক্ষণের জন্য থেমে যেতে পারে।

সমস্যা হলে ​

শেলে অ্যাপ চললেও সার্ভিস হিসেবে ব্যর্থ হলে executable-এর পাথ, অনুমতি, ওয়ার্কিং ডিরেক্টরি ও এনভায়রনমেন্ট মিলিয়ে দেখুন। অনুমতির সমস্যা এড়াতে সার্ভিস root দিয়ে চালাবেন না। আপলোড ও স্থায়ী ডেটার জন্য অ্যাপের নিজস্ব writable ডিরেক্টরি ব্যবহার করুন।

সম্পর্কিত গাইড ​

সর্বশেষ পর্যালোচনা ​

2026-10-28

APNCloud-এর অফিসিয়াল সহায়তা। মূল ওয়েবসাইট: apncloud.com · ক্লায়েন্ট এরিয়া: account.apncloud.com