SSD Nodes Learn Hosting plans →
নির্দেশিকা Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-08-26

2026 সালে self-host করার মতো 25টি সেরা অ্যাপ

2026 সালে VPS-এ চালানোর মতো 25টি self-hosted app-এর তালিকা। কাজ অনুযায়ী সাজানো, প্রতিটির বিকল্প service, বাস্তব RAM ও disk চাহিদা এবং জানা জরুরি gotcha।

আপনি যা তৈরি করছেন

একটি অ্যাপ নয়, একটি সংক্ষিপ্ত তালিকা। এই সাইটের অন্য সব বিষয়ের কেন্দ্র এটি: 2026 সালে নিজের VPS-এ সত্যিই চালানোর মতো পঁচিশটি অ্যাপ্লিকেশন, সেগুলো যে কাজ করে সেই অনুযায়ী সাজানো। প্রতিটির ক্ষেত্রে কোন service-এর বিকল্প এটি, বাস্তবসম্মত RAM ও disk ব্যবহারের পরিমাণ, এবং এটি বাদ দিলে যে একটি সমস্যায় পড়বেন—এই তথ্যগুলো পাবেন। যেখানে পূর্ণ ধাপে ধাপে guide আছে, লিংকগুলো সেখানে নিয়ে যাবে।

আমি পনেরো বছর ধরে একটি VPS host পরিচালনা করছি এবং নিজের server-গুলোতে এগুলোর বেশিরভাগ চালাই। তাই নিচের resource-এর সংখ্যাগুলো কোনো marketing page-এর "minimum" নয়; ছোট কিন্তু বাস্তব workload-এ অ্যাপটি আসলে যতটা ব্যবহার করে, তা দেওয়া হয়েছে। এগুলোকে budget হিসেবে ধরুন, তারপর অতিরিক্ত headroom রাখুন।

পূর্বশর্ত এবং বাস্তব পরিস্থিতি

এখানে প্রতিটি অ্যাপ root বা sudo-সহ একটি নতুন Ubuntu 24.04 KVM VPS-এ চলে। একই তালিকা আপনার নিজের ঘরের কোনো মেশিনেও সমানভাবে চলবে। মাসিক ভাড়া দেওয়ার বদলে একবার RAM কিনবেন কি না, তা বিবেচনা করলে বাড়িতে Proxmox বনাম ভাড়া করা VPS হার্ডওয়্যার ও বিদ্যুৎ খরচের হিসাব ব্যাখ্যা করে। প্রায় সব অ্যাপই Docker container হিসেবে প্রকাশিত হয়। তাই একবার Docker install করলেই পুরো তালিকার জন্য প্রস্তুত:

curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker "$USER"
newgrp docker
docker run --rm hello-world

docker command-এর ক্ষেত্রে permission denied while trying to connect to the Docker daemon socket দেখিয়ে ব্যর্থ হলে আপনি group ধাপটি বাদ দিয়েছেন অথবা নতুন shell খোলেননি। Log out করে আবার log in করুন। docker compose যদি docker: 'compose' is not a docker command ফেরত দেয়, তাহলে আপনার কাছে পুরোনো standalone binary আছে। উপরের script-টি আধুনিক Compose plugin install করে। সেটি docker compose হিসেবে চালাতে হয়; এখানে space আছে, hyphen নয়।

নিচের সবকিছুর কাঠামো তিনটি বাস্তবতার ওপর নির্ভর করে। প্রথমত, সীমাবদ্ধতা RAM-এ, disk বা CPU-তে নয়। 1 GB VPS-এ একটি ছোট অ্যাপের বেশি চালানো যায় না। "কয়েকটি জিনিস self-host" করার সার্ভারের জন্য 4 GB-ই বাস্তবসম্মত সর্বোত্তম পরিমাণ। 2 GB হলো সমস্যাপূর্ণ মধ্যবর্তী অবস্থা। এখানে beginner তৃতীয় service যোগ করে, নীরবে Out-Of-Memory kill ঘটে, এবং container কেন হঠাৎ অদৃশ্য হলো তা আর বোঝা যায় না। sudo dmesg দেখায় daemon যে Out of memory: Killed process line গোপন করে ফেলেছিল। দ্বিতীয়ত, public করা যেকোনো কিছুর জন্য একটি name এবং certificate দরকার। পরীক্ষার জন্য সরাসরি IP কাজ করে। কিন্তু phone app বা browser যেন সেটিকে trust করে, তা চাইলে সঙ্গে সঙ্গেই এটি ব্যর্থ হয়। তৃতীয়ত, দুটি port আপনার অর্ধেক বিকল্প নির্ধারণ করে: automatic TLS-এর জন্য 80 এবং 443-কে সার্ভারে পৌঁছাতে হবে। অধিকাংশ provider outbound 25 block করে। এ কারণেই শেষে email "do not" তালিকায় রয়েছে।

ফাইল ও ছবি

  • Nextcloud একটি suite-এ Google Drive, Dropbox এবং Google Calendar-এর বিকল্প দেয়। 1–2 GB RAM এবং আপনার ফাইলগুলোর মোট আকার অনুযায়ী অতিরিক্ত storage বরাদ্দ করুন। প্রধান সতর্কতা: SQLite demo-এর জন্য ঠিক আছে, কিন্তু production-এ এটি সমস্যার কারণ হতে পারে। প্রথম boot থেকেই PostgreSQL ব্যবহার করে ইনস্টল করুন, কারণ আপনার data যুক্ত হওয়ার পরে database migration করাই Nextcloud নষ্ট হওয়ার সবচেয়ে সাধারণ কারণ। Docker, TLS এবং backup-সহ VPS-এ Nextcloud গাইডে প্রথমবারেই সঠিকভাবে সেটআপ করার পদ্ধতি দেখানো হয়েছে।
  • Immich Google Photos-এর বিকল্প দেয়। ফোনের camera roll স্বয়ংক্রিয়ভাবে upload করা, face search এবং object search-এর জন্য এতে phone app-ও রয়েছে। 6 GB RAM বরাদ্দ করুন; Immich-এর documentation অনুযায়ী এটিই minimum। 8 GB হলে স্বাচ্ছন্দ্যে চলে। Machine-learning container-টি সবচেয়ে বেশি resource ব্যবহার করে। আপনার library-এর আকারের সমান disk space এবং thumbnails-এর জন্য আনুমানিক আরও বিশ শতাংশ রাখুন। প্রধান সতর্কতা: Immich এখনও releases-এর মধ্যে breaking changes দেয়। তাই কখনো অন্ধভাবে latest pull করবেন না; একটি version pin করুন এবং প্রতিটি upgrade-এর আগে release notes পড়ুন। self-hosted Immich photo library গাইডে নিরাপদ upgrade পদ্ধতি দেখানো হয়েছে। আপনার server-এ 6 GB RAM না থাকলে PhotoPrism এবং Immich পাশাপাশি গাইডে বাস্তব memory ব্যবহার, phone app এবং library কোনো একটি platform-এ স্থানান্তরের আগে প্রত্যেকটির প্রয়োজনীয় backup command তুলনা করা হয়েছে।
  • Seafile তিনটির মধ্যে দ্রুততম sync engine ব্যবহার করে Dropbox-এর বিকল্প দেয়। প্রায় 1 GB RAM বরাদ্দ করুন। প্রধান সতর্কতা: Seafile আপনার ফাইলগুলো disk-এ সাধারণ file হিসেবে নয়, content-addressed block হিসেবে সংরক্ষণ করে। তাই ls দিয়ে data browse করতে পারবেন না এবং কোনো folder copy না করে Seafile-এর নিজস্ব tool ব্যবহার করে backup নিতে হবে।

পাসওয়ার্ড

  • Vaultwarden Bitwarden-এর paid tier, LastPass এবং 1Password-এর বিকল্প হিসেবে একটি ছোট Rust server ব্যবহার করে। এটি Bitwarden protocol-এ কাজ করে, তাই প্রতিটি official Bitwarden app এবং browser extension সরাসরি কাজ করে। এর জন্য 100–200 MB RAM এবং প্রায় কোনো disk space-ই প্রয়োজন হয় না। তবে গুরুত্বপূর্ণ বিষয় হলো, এই box-এ আপনার সব password সংরক্ষিত থাকে। তাই এখানে TLS এবং backup ঐচ্ছিক নয়; এগুলোই মূল নিরাপত্তা ব্যবস্থা। ADMIN_TOKEN-কে Argon2 hash হিসেবে সেট করুন, কারণ compose file-এ plaintext token রাখা হলে master key cleartext অবস্থায় সংরক্ষিত থাকে। Vaultwarden password manager guide-টি self-hosting শুরু করার জন্য সবচেয়ে উপযুক্ত।

মিডিয়া

  • Jellyfin Plex-এর বিকল্প। আপনার নিজস্ব library-এর জন্য এটি Netflix-এরও বিকল্প। এটি সম্পূর্ণ open, account লাগে না, এবং paywall-যুক্ত remote streaming নেই। Idle অবস্থায় 1–2 GB RAM বরাদ্দ রাখুন, তবে transcode চললে CPU usage দ্রুত বেড়ে যায়। সমস্যা হলো, 4K stream software transcoding করলে ছোট VPS-এর CPU সম্পূর্ণ ব্যস্ত হয়ে যেতে পারে। তাই server-এ hardware acceleration দিন, অথবা এমন format-এ file রাখুন যা client সরাসরি চালাতে পারে (Direct Play)। এতে server শুধু byte পাঠায়। কোন ক্ষেত্রে কোনটি ব্যবহার করবেন, তা VPS-এ Jellyfin media server guide-এ ব্যাখ্যা করা হয়েছে। এটি চালু হলে Halcyon browser-এ একই library-কে 90s-এর rental store-এর মতো উপস্থাপন করে। পরিবারের সদস্যদের সবকিছু scroll করে এড়িয়ে না গিয়ে shelf browse করানোর জন্য এটি আমার জানা সবচেয়ে মজার এবং কার্যকর কৌশল।
  • Navidrome আপনার নিজস্ব music-এর জন্য Spotify-এর বিকল্প। এটি যেকোনো Subsonic-compatible app-এ stream করতে পারে। 150–300 MB RAM বরাদ্দ রাখুন। এটি Go-তে লেখা এবং সাধারণত খুব সামান্য resource ব্যবহার করে। সমস্যা হলো, প্রথম library scan-এ প্রতিটি file-এর tag পড়তে হয়, তাই বড় collection-এ এক ঘণ্টা লাগতে পারে। ID3 tag খারাপ হলে browsing experience-ও খারাপ হবে।
  • Audiobookshelf Audible এবং আপনার podcast app-এর বিকল্প। এটি device-গুলোর মধ্যে playback position সংরক্ষণ করে। 200–500 MB RAM বরাদ্দ রাখুন। সমস্যা হলো, এটি প্রতিটি book-এর জন্য কঠোর folder-per-book layout প্রত্যাশা করে। অগোছালো import folder থেকে অগোছালো এবং আংশিকভাবে শনাক্ত হওয়া library তৈরি হয়, যা পরে ঠিক করতে সময় লাগে।

অটোমেশন ও AI

  • n8n আপনার নিয়ন্ত্রণে থাকা একটি visual workflow builder এবং task-পিছু কোনো billing ছাড়াই Zapier ও Make-এর বিকল্প দেয়। 400 MB–1 GB RAM বরাদ্দ রাখুন। সমস্যা হলো, n8n প্রথমবার চালুর সময় নিজে একটি key তৈরি করে stored credential encrypt করে। সেই key হারালে, অথবা N8N_ENCRYPTION_KEY সেট না করে n8n-কে key পুনরায় তৈরি করতে দিলে, সংরক্ষিত প্রতিটি credential আর পড়া যায় না এবং সবগুলো আবার প্রবেশ করাতে হয়। HTTPS সহ self-hosted n8n নির্দেশিকায় key স্থিরভাবে সেট করা হয় এবং webhook URL-এর সামনে একটি বাস্তব certificate রাখা হয়।
  • Ollama স্থানীয় ও private LLM inference-এর জন্য ChatGPT subscription-এর বিকল্প। Model অনুযায়ী resource budget নির্ধারণ করুন: একটি 7–8B model-এর জন্য প্রায় 8 GB RAM দরকার, এবং প্রতিটি model disk-এ 4–8 GB জায়গা নেয়। সমস্যা হলো, CPU-only VPS-এ inference বাস্তবসম্মত হলেও ধীর। Hosted API-এর মতো তাৎক্ষণিক reply না পেয়ে প্রতি সেকেন্ডে কতটি শব্দ তৈরি হচ্ছে, সেদিকে হিসাব রাখুন। তাই প্রত্যাশা বাস্তবসম্মত রাখুন, অথবা GPU box ভাড়া নিন। Ollama চালিয়ে self-hosted LLM পরিচালনা করুন নির্দেশিকায় বাস্তবসম্মত সংখ্যা দেওয়া আছে।

যোগাযোগ

  • একটি টিমের জন্য Rocket.Chat Slack-এর বিকল্প। এতে thread, call এবং integration আছে। অন্তত 2 GB RAM বরাদ্দ করুন, কারণ এটি MongoDB-এর ওপর চলে এবং MongoDB-ই সবচেয়ে বেশি resource ব্যবহার করে। গুরুত্বপূর্ণ বিষয় হলো, প্রতিটি release-এ Rocket.Chat একটি নির্দিষ্ট MongoDB major version নির্ধারণ করে। Upgrade-এর সময় কোনো version এড়িয়ে গেলে database আর সামঞ্জস্যপূর্ণ থাকে না। তাই একবারে একটি ধাপ করে upgrade করুন। Docker Compose-এ Rocket.Chat নির্দেশিকায় version পরিবর্তনের ধাপগুলো দেখানো হয়েছে।
  • Matrix (Synapse) Slack এবং Discord-এর বিকল্প। এটি একটি federated, end-to-end encrypted network, যেখানে আপনার homeserver-এর নিয়ন্ত্রণ আপনার কাছে থাকে। শুরুতে 1–2 GB RAM বরাদ্দ করুন; বড় public room-এ যোগ দিলে প্রয়োজন বাড়বে। গুরুত্বপূর্ণ বিষয় হলো, বড় federated room-এ Synapse-এর memory ব্যবহার দ্রুত বেড়ে যায়। Synapse-কে PostgreSQL-এর ওপর চালাতে হবে। Default SQLite শুধু একক-ব্যবহারকারীর পরীক্ষার জন্য উপযোগী; federation চালু হলেই এটি ব্যর্থ হয়। Synapse বেশি resource ব্যবহার করলে একই protocol সমর্থনকারী কম resource-প্রয়োজনীয় Conduit বা Dendrite server ব্যবহার করতে পারেন।

নেটওয়ার্কিং ও অ্যাক্সেস

  • WireGuard বাণিজ্যিক VPN-এর বিকল্প হিসেবে কাজ করে। এটি আপনার নিজস্ব IP এবং অন্যান্য service-এ পৌঁছানোর জন্য একটি private tunnel দেয়। resource usage খুব কম: প্রায় কিছুই নয়, 50 MB-এর কম, এবং cryptographic কাজ kernel-এ চলে। সমস্যা হলো, container-based virtualization (OpenVZ, কিছু LXC)-এ module `RTNETLINK answers: Operation not supported` ত্রুটি দিয়ে ব্যর্থ হয়; তাই KVM ব্যবহার করুন। self-hosted WireGuard VPN guide-টি reference হিসেবে ব্যবহার করুন। Tunnel-এ bind করা service-এর সঙ্গে এটি ব্যবহার করলে service-গুলোকে সম্পূর্ণভাবে public Internet থেকে দূরে রাখা যায়। প্রতিটি নতুন device-এর জন্য peer config হাতে সম্পাদনা করতে না চাইলে VPS-এ Tailscale subnet router চালানো পুরো private range-টি আপনার অন্যান্য machine-এ advertise করে। এর জন্য route অনুমোদন করতে হবে এবং reboot-এর পরেও IP forwarding চালু রাখতে হবে।
  • Traefik হাতে লেখা nginx virtual host এবং manual certificate renewal-এর বিকল্প। এটি Docker label-এর মাধ্যমে আপনার container শনাক্ত করে এবং স্বয়ংক্রিয়ভাবে Let's Encrypt certificate সংগ্রহ করে। প্রায় 100 MB RAM বরাদ্দ রাখুন। সমস্যা হলো, label-based config model শুরুতে সত্যিই বিভ্রান্তিকর হতে পারে। একটি label ভুল হলেই কোনো স্পষ্ট error ছাড়াই app-এর routing বন্ধ হয়ে যায়। একাধিক Docker app-এর জন্য Traefik reverse proxy guide-টি এই পৃষ্ঠার একাধিক app-কে একটি entry point-এর পেছনে চালানোর জন্যই তৈরি।
  • AdGuard Home Pi-hole box এবং paid DNS filtering-এর বিকল্প। এটি DNS layer-এ আপনার network-এর প্রতিটি device-এর জন্য ad এবং tracker block করে। 100–150 MB RAM বরাদ্দ রাখুন। সমস্যা হলো, এটি port 53-এর নিয়ন্ত্রণ নিতে চায়। Ubuntu-তে এটি `systemd-resolved-এর সঙ্গে conflict করে এবং port খালি না করা পর্যন্ত listen udp 0.0.0.0:53: bind: address already in use` ত্রুটি দিয়ে start হয় না।

মনিটরিং

  • Uptime Kuma পরিষ্কার dashboard এবং প্রায় যেকোনো channel-এ alert দেওয়ার সুবিধাসহ Pingdom, UptimeRobot এবং StatusPage-এর বিকল্প। 150–300 MB RAM বরাদ্দ রাখুন। এখানে একটি গুরুত্বপূর্ণ বিষয় আছে, যা অনেকেই উপেক্ষা করেন: production box-কে অন্য একটি box থেকে monitor করুন। Uptime Kuma যে server-কে monitor করছে, সেটি যদি একই server-এ চলে, তাহলে ওই server বন্ধ হয়ে গেলে Uptime Kuma তা জানতে পারবে না। Uptime Kuma status monitoring guide-এ external placement সম্পর্কে ব্যাখ্যা আছে।
  • Zabbix গভীর agent-based metric, trigger এবং history-সহ Datadog ও enterprise monitoring suite-এর বিকল্প। 2 GB RAM বা তার বেশি বরাদ্দ রাখুন, পাশাপাশি এর নিজস্ব database-এর জন্যও resource প্রয়োজন। এখানে গুরুত্বপূর্ণ বিষয় হলো: Zabbix শক্তিশালী, কিন্তু সেটআপ করা সত্যিই resource-intensive। তিনটি container monitor করার জন্য এটি overkill, তবে fleet monitor করার ক্ষেত্রে এটি উপযুক্ত tool। Uptime Kuma দিয়ে শুরু করুন; যখন সত্যিই monitor করার মতো infrastructure থাকবে, তখন Zabbix monitoring server-এ উন্নীত করুন।

Prometheus এবং Grafana-কে এই তালিকায় ইচ্ছাকৃতভাবে রাখা হয়নি। এগুলো fleet-scale tooling হিসেবে চমৎকার, কিন্তু personal stack-এর দুই বা তিনটি box-এর জন্য এগুলো চালানো ও tune করা যতটা resource এবং maintenance দাবি করে, তা সাধারণত যৌক্তিক নয়। এই scale-এ Uptime Kuma এবং Zabbix কম maintenance-এ একই ধরনের monitoring প্রশ্নের উত্তর দেয়।

ড্যাশবোর্ড এবং কন্ট্রোল প্যানেল

এগুলো পুরো ব্যবস্থার মডেল বদলে দেয়। নিজে হাতে compose file চালানোর পরিবর্তে একটি panel আপনার হয়ে অ্যাপগুলো পরিচালনা করে।

  • Cloudron একটি পরিপাটি app store, স্বয়ংক্রিয় TLS এবং built-in backup দিয়ে “ইশ, এটি যদি এক ক্লিকেই করা যেত” ধরনের প্রয়োজন পূরণ করে। সর্বনিম্ন 2 GB RAM এবং স্বাচ্ছন্দ্যে ব্যবহারের জন্য 4 GB RAM বরাদ্দ করুন। সীমাবদ্ধতা হলো, এটি নিজস্ব মতামতনির্ভর এবং পুরো server-এর নিয়ন্ত্রণ নিতে চায়। এছাড়া এটি সর্বোচ্চ দুইটি app পর্যন্ত বিনামূল্যে; এর বেশি ব্যবহার করলে এটি paid product।
  • CasaOS অগোছালো homelab dashboard-এর পরিবর্তে একটি সহজবোধ্য app grid দেয়। এটি বিনামূল্যে এবং হালকা। CasaOS নিজে চালানোর জন্য প্রায় 150 থেকে 300 MB RAM বরাদ্দ করুন। সীমাবদ্ধতা হলো, এটি trusted home network-এর জন্য তৈরি এবং public internet-এর জন্য hardened নয়। এটিকে সরাসরি expose করবেন না; WireGuard-এর মাধ্যমে access করুন।
  • Coolify আপনার নিজের server-এ Heroku, Vercel এবং Netlify-এর বিকল্প হিসেবে git-push deployment, database এবং preview সুবিধা দেয়। সর্বনিম্ন 2 GB RAM বরাদ্দ করুন। সীমাবদ্ধতা হলো, এটি তুলনামূলক নতুন project এবং দ্রুত পরিবর্তিত হয়। তাই version pin করুন এবং upgrade করার আগে release notes পড়ুন। Cloudron বনাম CasaOS বনাম Coolify তুলনা-এ তিনটির কোনটি কোন ব্যবহারকারীর জন্য উপযুক্ত, তা ব্যাখ্যা করা হয়েছে।

ডেভেলপার ও উৎপাদনশীলতা সরঞ্জাম

  • Gitea (or Forgejo) private repository, issue এবং CI-এর জন্য GitHub-এর বিকল্প। 200–500 MB RAM বরাদ্দ রাখুন। গুরুত্বপূর্ণ বিষয়: Forgejo হলো Gitea-এর community-governed fork, এবং বর্তমানে অনেকে এটিই সুপারিশ করেন। দুটিই চমৎকার, তবে একটি বেছে নিয়ে repository এবং database একসঙ্গে backup করুন। Database ছাড়া শুধু repository backup করলে সব issue এবং pull request হারিয়ে যাবে।
  • Paperless-ngx filing cabinet এবং paid document scanner-এর বিকল্প। এটি সবকিছুর OCR করে, ফলে document search করা যায়। প্রায় 1 GB RAM বরাদ্দ রাখুন। OCR চলার সময় CPU usage বেড়ে যেতে পারে। গুরুত্বপূর্ণ বিষয়: OCR result আপনার scan-এর মানের চেয়ে ভালো হবে না। বড় archive পুনরায় process করতে সময় লাগে। 10 বছরের কাগজ bulk-import করার আগে এর configuration ঠিক করে নিন।
  • Actual Budget দ্রুত, local এবং private envelope budgeting-এর মাধ্যমে YNAB ও Mint-এর বিকল্প। প্রায় 150 MB RAM বরাদ্দ রাখুন। গুরুত্বপূর্ণ বিষয়: automatic bank sync আলাদা add-on এবং এর নিজস্ব setup প্রয়োজন। তাই default অবস্থায় transaction manually import করতে হয়।
  • FreshRSS Feedly এবং বন্ধ হয়ে যাওয়া Google Reader-এর বিকল্প। এটি দ্রুত ও private feed reader, যার mobile app রয়েছে। প্রায় 150 MB RAM বরাদ্দ রাখুন। গুরুত্বপূর্ণ বিষয়: cron-ভিত্তিক feed refresh setup করুন। তা না হলে আপনি page খোলার সময়ই শুধু feed update হবে।
  • BookStack documentation-এর জন্য Notion এবং Confluence-এর বিকল্প। এটি content-কে shelf, book এবং page হিসেবে সাজায়। PHP ও MySQL ব্যবহারের ক্ষেত্রে প্রায় 500 MB RAM বরাদ্দ রাখুন। গুরুত্বপূর্ণ বিষয়: এটি free-form note-এর বদলে নিজস্ব কাঠামোতে content সাজায়। কেউ এই পদ্ধতি পছন্দ করেন, আবার কারও কাছে এটি rigid মনে হয়। পুরো wiki এতে স্থানান্তরের আগে পরীক্ষা করে দেখুন।
  • Home Assistant SmartThings এবং বিভিন্ন vendor app-এর বিকল্প। এটি smart home-কে localভাবে একীভূত করে। প্রায় 1 GB RAM বরাদ্দ রাখুন। গুরুত্বপূর্ণ বিষয়: এর অনেক সুবিধার জন্য আপনার device-এ local network access প্রয়োজন। তাই remote VPS-এর চেয়ে বাড়ির hardware-এ এটি চালানো বেশি স্বাভাবিক। প্রয়োজনে dashboard remotely চালান এবং bridge-এর মাধ্যমে সংযোগ ফিরিয়ে আনুন।

একটি বাস্তবসম্মত ইনস্টলেশন

বিষয়টি স্পষ্ট করতে self-host-এর সম্পূর্ণ কাঠামো এখানে দেখানো হলো: একটি compose file, একটি বৈধ certificate এবং একটি backup। এটি Uptime Kuma-এর উদাহরণ, তবে তালিকার প্রতিটি app একই প্যাটার্ন অনুসরণ করে।

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    container_name: uptime-kuma
    volumes:
      - ./data:/app/data
    ports:
      - "127.0.0.1:3001:3001"
    restart: unless-stopped
docker compose up -d
docker compose logs -f

127.0.0.1:-টি লক্ষ্য করুন: app-টি শুধু localhost-এ listen করে, আর Traefik বা nginx-এর মতো একটি reverse proxy সামনে থেকে TLS termination করে। সরাসরি 0.0.0.0:3001-এ bind করলে ভুলবশত পুরো Internet-এর জন্য একটি unencrypted admin panel প্রকাশিত হতে পারে।

এখনই নিজে হোস্ট না করাই ভালো এমন সেবা

  • ইমেইল। এটি সবচেয়ে বাস্তব সতর্কতা। অধিকাংশ VPS provider outbound port 25 ব্লক করে। আপনি Connection timed out দেখতে পাবেন telnet aspmx.l.google.com 25 থেকে, এবং এটি ঠিক করার কিছু নেই; এটি policy। port 25 খোলা থাকলেও reputation ছাড়া নতুন IP, PTR record, SPF, DKIM এবং DMARC না থাকলে আপনার mail spam folder-এ যাবে অথবা সরাসরি প্রত্যাখ্যাত হবে। এটি নিয়মিত মনোযোগ দাবি করা বাস্তব কাজ, সপ্তাহান্তে শেষ করার মতো কাজ নয়। তবু করতে চাইলে Mailcow দিয়ে self-hosted email guide অনুসরণ করে বাস্তব পরিস্থিতি বুঝে শুরু করুন এবং কয়েক মাস deliverability নিয়মিত monitor করার জন্য প্রস্তুত থাকুন।
  • যে কোনো কিছু, যার backup ও restore নির্ভরযোগ্যভাবে করতে পারেন না। আপনি যদি কখনো test restore না করে থাকেন, তাহলে আপনার backup নেই; শুধু আশা আছে। এর restore সফলভাবে প্রমাণিত না হওয়া পর্যন্ত অপরিবর্তনীয় data, আপনার photos-এর একমাত্র copy বা আপনার accounts কোনো service-এ রাখবেন না।
  • কোনো critical dependency-এর একমাত্র copy। এমন একটি self-hosted DNS server, যা crash করলে আপনার পুরো network-এর internet সংযোগও বন্ধ হয়ে যায়, প্রথম project হিসেবে ভালো নয়। একটি upstream fallback রাখুন।
  • Real-time safety system। Home alarm, medical alert বা এমন কোনো system, যেখানে পাঁচ মিনিটের downtime-ও সত্যিকারের সমস্যা, Sunday রাতে upgrade করা hobby box-এ রাখা উচিত নয়।

প্রথমটি কীভাবে বেছে নেবেন এবং যে দুটি বিষয়ে কোনো আপস করা যাবে না

যে অ্যাপটি আপনার অপছন্দের কোনো বিলের খরচ দূর করে, অথবা যে privacy সমস্যা আপনি সত্যিই অনুভব করেন, সেটিই বেছে নিন। বাস্তবে প্রথমবার install করার জন্য Vaultwarden এবং Uptime Kuma সবচেয়ে ভালো: দুটিই ছোট, দুটিই সঙ্গে সঙ্গে কাজে লাগে, এবং ভুল হলে দুটিই তুলনামূলকভাবে সহজে সামলানো যায়। দ্বিতীয়টি যোগ করার আগে একটি অ্যাপকে শুরু থেকে শেষ পর্যন্ত চালু করুন: install, certificate, backup এবং restore test সম্পন্ন করুন। আপনি যে দক্ষতা তৈরি করছেন, তা install বোতামে ক্লিক করা নয়; এটি operations পরিচালনার দক্ষতা।

উপরের প্রতিটি অ্যাপের ক্ষেত্রে দুটি বিষয় অপরিহার্য। কোনো ব্যতিক্রম নেই:

  1. সব public service-এ TLS। শুধু IP address-ভিত্তিক plaintext service একটি demo, deployment নয়। nginx-এ Certbot এবং Let's Encrypt ব্যবহার করে এর সামনে একটি আসল certificate বসান, অথবা Traefik-কে এটি স্বয়ংক্রিয়ভাবে করতে দিন। এরপর Ubuntu 24.04-এ SSH-এর জন্য Fail2ban ব্যবহার করে সামনের প্রবেশপথ শক্ত করুন।
  2. যে backup সত্যিই restore করে পরীক্ষা করেছেন। প্রতি রাতে dump স্বয়ংক্রিয় করুন। Database এবং data volume একসঙ্গে dump করুন, সেটি এই server-এর বাইরে পাঠান, এবং মাসে একবার একটি অস্থায়ী VPS-এ restore করে পরীক্ষা করুন যে এটি কাজ করছে। যেদিন disk নষ্ট হবে, সেদিন backup খালি ছিল কি না তা আবিষ্কার করার জন্য অপেক্ষা করা ভুল।

এই দুটি বিষয় সঠিকভাবে করলে self-hosting আনন্দদায়ক হয়। এগুলো বাদ দিলে বিপদ আসা শুধু সময়ের ব্যাপার।

বিকল্পগুলো ব্যবহারিক সমাধান থেকে অযৌক্তিক পর্যায় পর্যন্ত বিস্তৃত। একটি পরিবারের জন্য VPS-এ Minecraft server চালানো থেকে শুরু করে, সতর্কতামূলক উদাহরণ পছন্দ করলে, বিশ্বের সবচেয়ে অদক্ষ datacenter পর্যন্ত।

FAQ

আমি প্রথমে কী self-host করব?

Vaultwarden। একটি password manager প্রতিদিন ব্যবহারযোগ্য সুবিধা দেয়, একটি subscription-এর বিকল্প হয় এবং পুরো workflow—Docker, reverse proxy, TLS ও backup—শিখতে বাধ্য করে। অ্যাপটি এত ছোট যে নষ্ট হয়ে গেলে দশ মিনিটের মধ্যে আবার তৈরি করা যায়। Uptime Kuma দ্বিতীয় হিসেবে খুব ভালো। এতে ব্যবহারকারীরা জানানোর আগেই outage সম্পর্কে জানতে পারবেন।

আসলে আমার কতটা VPS প্রয়োজন?

একটি ছোট অ্যাপের জন্য 1 GB RAM যথেষ্ট। আরামদায়কভাবে কয়েকটি জিনিস চালানোর server-এর জন্য 4 GB লক্ষ্য রাখুন। মাঝামাঝি 2 GB-তেই অনেকের container নীরবে Out-Of-Memory-এর কারণে বন্ধ হয়ে যায়, কিন্তু কারণটি বোঝা যায় না। প্রায় সব ক্ষেত্রেই সীমাবদ্ধতা RAM। যে পরিমাণ data সংরক্ষণ করবেন, সেই অনুযায়ী disk যোগ করুন। Immich, Ollama এবং বড় database-নির্ভর যেকোনো অ্যাপ উভয় resource-এর বেশি ব্যবহার করবে বলে ধরে নিন।

কোন জিনিস self-host করা উচিত নয়?

সবার আগে email। বেশিরভাগ provider outbound port 25 block করে, আর deliverability বজায় রাখা একটি পূর্ণকালীন সমস্যা। এরপর এমন যেকোনো service এড়িয়ে চলুন যেটির backup ও restore নির্ভরযোগ্যভাবে করতে পারবেন না। downtime হলে যে single point of failure বাস্তব ক্ষতি করে, সেটিও self-host করবেন না। উদাহরণ হিসেবে fallback ছাড়া DNS server বা বাড়ির safety system। এই তালিকার বাকি সবকিছু self-host করার উপযোগী।

এর সবকিছুর জন্য কি Docker দরকার?

না, তবে Docker ব্যবহার করা ভালো। এই তালিকার প্রতিটি অ্যাপের একটি Docker image আছে। Docker পরিষ্কারভাবে install ও remove করা, সহজে version pin করা এবং নতুন host-এ স্থানান্তর করা সম্ভব করে। কয়েকটি অ্যাপ, যেমন WireGuard ও Zabbix, আপনার পছন্দ হলে apt থেকে nativeভাবেও install করা যায়। একটি compose file বুঝলে বাকি সব compose file-ও বোঝা সহজ হয়। তাই পুরো তালিকাটি অনুসরণ করা সহজ হয়ে যায়।

সবকিছু কীভাবে নিরাপদ রাখব?

চারটি অভ্যাসেই অধিকাংশ কাজ হয়ে যায়। সবকিছুর সামনে TLS রাখুন। key-only login ব্যবহার করে SSH সীমাবদ্ধ রাখুন এবং brute-force attempt block করতে Fail2ban ব্যবহার করুন। কেবল যেসব port সত্যিই public access-এর জন্য দরকার, সেগুলো expose করুন। বাকি service-গুলোতে আপনার WireGuard VPN ব্যবহার করে access করুন। নিয়মিত update করুন এবং release note পড়ুন, যাতে কোনো upgrade অপ্রত্যাশিত সমস্যা তৈরি না করে। Backup হলো পঞ্চম অভ্যাস। প্রথম চারটি ব্যবস্থা ব্যর্থ হলে কোনো ভুলের পরে recovery করার উপায় backup-ই।