স্ব-হোস্টেড প্রোগ্রামগুলি কী এবং কোথায় ইনস্টল করতে হবে তা ব্যাখ্যা করার জন্য আমরা আমাদের প্রস্তাবিত সফ্টওয়্যারের তালিকাটি থামাব। এই ধরণের অ্যাপ্লিকেশনগুলি আমাদের একাধিক ডিভাইসে সেগুলি ব্যবহার করার অনুমতি দেয়, হয় সার্ভার অ্যাপ্লিকেশনের সাথে যোগাযোগ করার জন্য প্রতিটি ডিভাইসে একটি নির্দিষ্ট অ্যাপ্লিকেশন ইনস্টল করে, অথবা একটি ওয়েব ব্রাউজার ব্যবহার করে।
অবশ্যই, যখন আমরা একটি সার্ভারের কথা বলি, আমরা বলছি না যে আপনাকে ব্যয়বহুল হার্ডওয়্যার কিনতে হবে। একটি পুরানো কম্পিউটার বা রাস্পবেরি পাই এর মতো একটি সিঙ্গেল-বোর্ড কম্পিউটার পর্যাপ্তভাবে এই ফাংশনটি পূরণ করতে পারে।
সার্ভারে ইনস্টল করার জন্য কিছু GitHub প্রোগ্রাম
তালিকাটি শুরু করার আগে, আমাদের কিছু ধারণা সংজ্ঞায়িত করতে হবে:
স্ব-হোস্টেড প্রোগ্রাম
একটি স্ব-হোস্টেড প্রোগ্রাম (কখনও কখনও স্ব-হোস্টেড অ্যাপ্লিকেশন বলা হয়) হল এমন একটি অ্যাপ্লিকেশন বা পরিষেবা যা ব্যবহারকারীর নিজস্ব সার্ভারে ইনস্টল এবং চালানোর জন্য ডিজাইন করা হয়েছে। এটি ইনস্টলেশন এবং রক্ষণাবেক্ষণ পরিচালনা করার জন্য তৃতীয় পক্ষের সাথে চুক্তি করার বিপরীত। এটি বোঝা গুরুত্বপূর্ণ যে এই ধরণের প্রোগ্রামের পার্থক্য হল এটি YouTube বা Google ড্রাইভের মতো একটি পরিষেবা প্রদান করে, তবে ব্যবহারকারীর দায়িত্ব পরিকাঠামো এবং আপডেটগুলি বজায় রাখা।
এই ধরণের সফটওয়্যারের কিছু সুবিধা হল:
- ব্যবহারকারী প্রোগ্রামটি কোথায় ইনস্টল করবেন তা বেছে নিতে পারেন।
- তৃতীয় পক্ষের সাথে ডেটা শেয়ার না করার মাধ্যমে গোপনীয়তা এবং নিরাপত্তার উপর আরও বেশি নিয়ন্ত্রণ থাকে।
- ব্যবহারকারীর চাহিদার সাথে আরও ভালোভাবে মানিয়ে নেওয়া, আরও কাস্টমাইজযোগ্য সফ্টওয়্যার।
- স্বাধীনতা: এই ধরণের প্রোগ্রামের ব্যবহারকারী সফটওয়্যার কোম্পানিগুলির ইচ্ছার অধীন নয়।
অবশ্যই, এর অসুবিধাও আছে।
- এটি ইনস্টলেশন এবং রক্ষণাবেক্ষণের জন্য আরও সময় এবং দক্ষতার প্রয়োজন।
- ব্যবহার এবং ইনস্টলেশনের ধরণের উপর নির্ভর করে, খরচ বেশি হতে পারে।
সার্ভার
সার্ভার হলো এমন কম্পিউটার যা স্থানীয় নেটওয়ার্ক বা ইন্টারনেট ব্যবহার করে অন্যান্য কম্পিউটারকে পরিষেবা বা ডেটা সরবরাহ করে। যখন একটি ক্লায়েন্ট কম্পিউটার একটি অনুরোধ করে, তখন সার্ভার অনুরোধকৃত তথ্য প্রেরণ করে বা একটি ত্রুটি বার্তা প্রদান করে সাড়া দেয়। এটি লক্ষণীয় যে সার্ভারগুলি ভৌত বা ভার্চুয়াল হতে পারে।
ভৌত সার্ভার হলো ডেডিকেটেড কম্পিউটার যা অন্যান্য কম্পিউটারের অনুরোধের জবাবে প্রোগ্রাম চালায়। এগুলো হতে পারে বিশেষভাবে সেই উদ্দেশ্যে তৈরি কম্পিউটার, সেই উদ্দেশ্যে ব্যবহৃত ঐতিহ্যবাহী কম্পিউটার, অথবা একক-বোর্ড কম্পিউটার। একটি একক-বোর্ড কম্পিউটার হলো এক ধরণের কম্পিউটার যা সম্পূর্ণরূপে একটি একক মুদ্রিত সার্কিট বোর্ডে তৈরি। এটি ঐতিহ্যবাহী কম্পিউটার থেকে আলাদা যেখানে সমস্ত উপাদান আলাদা।
অন্যদিকে, ভার্চুয়াল সার্ভারগুলি হল ভৌত হার্ডওয়্যারের সফ্টওয়্যার সিমুলেশন। অবশ্যই, এগুলি বাস্তব হার্ডওয়্যারে চলে যা প্রতিটি ভার্চুয়াল সার্ভারের জন্য তার সম্পদের একটি অংশ উৎসর্গ করে। সাধারণত, দুটি প্রকার রয়েছে: ভার্চুয়াল প্রাইভেট সার্ভার (VPS), যার বরাদ্দকৃত সম্পদ সীমিত, এবং ক্লাউড সার্ভার, যার সম্পদ চাহিদা অনুসারে বরাদ্দ করা হয় এবং বাস্তবে, একাধিক ভৌত মেশিন থাকতে পারে যা রিসোর্স প্রদান করে, এমনকি ব্যবহারকারী যদি তা লক্ষ্য নাও করে।
এটি উল্লেখ করা উচিত যে সাধারণ ওয়েব হোস্টিং মানদণ্ড পূরণ করে না কারণ এর জন্য এমন একটি স্তরের কনফিগারেশন প্রয়োজন যা এগুলিতে নেই।
পাত্রে
একটি কন্টেইনার হল একটি ভার্চুয়াল মেশিন যা হোস্ট অপারেটিং সিস্টেমের সাথে সংযোগ স্থাপন না করেই একটি একক অ্যাপ্লিকেশন চালানোর জন্য নিবেদিত। এই ভার্চুয়াল মেশিনে অ্যাপের কোড, লাইব্রেরি, কনফিগারেশন এবং প্রয়োজনীয় নির্ভরতা অন্তর্ভুক্ত থাকে।
কন্টেইনার তৈরি, চালানো এবং পরিচালনা করার জন্য, আপনার একটি অ্যাপ্লিকেশনের প্রয়োজন। GitHub ডেভেলপারদের দ্বারা সর্বাধিক ব্যবহৃত হল Docker।
node.js
Node.js হল স্ব-হোস্টেড প্রোগ্রামগুলির দ্বারা ব্যবহৃত প্রযুক্তিগুলির মধ্যে একটি। এটি সার্ভারে জাভাস্ক্রিপ্ট প্রোগ্রাম চালানোর জন্য ব্যবহৃত হয়, যা ওভারলোড ছাড়াই একাধিক সংযোগের অনুমতি দেয়। এটি এমন অ্যাপ্লিকেশনগুলির জন্য আদর্শ যেগুলিকে রিয়েল টাইমে চালানো প্রয়োজন।
এই প্রবন্ধের লক্ষ্য ইনস্টলেশনের জন্য প্রয়োজনীয় সবকিছু খতিয়ে দেখা নয়। এর জন্য একটি নির্দিষ্ট স্তরের জ্ঞানের প্রয়োজন হয়, তবে ইন্টারনেটে এটি কীভাবে করতে হয় তা ব্যাখ্যা করার জন্য টিউটোরিয়াল রয়েছে এবং ChatGPT এবং অনুরূপ প্রোগ্রামগুলি সাধারণত জিজ্ঞাসা করা হলে বেশ সঠিক হয়। পরবর্তী প্রবন্ধে, আমরা চেষ্টা করার মতো কিছু প্রোগ্রামের কথা উল্লেখ করব।