SSD Nodes Learn Hosting plans →
নির্দেশিকা Matt Connorদ্বারা Matt Connor

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 হিসেবে release করা হয়। তাই একবার Docker install করলেই প্রায় পুরো তালিকার জন্য প্রস্তুত হয়ে যাবেন। দুটি ব্যতিক্রম হলো Cloudron এবং CasaOS। এগুলো নিজস্ব setup script ব্যবহার করে host-এ install হয়। control panels section দেখুন:

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 error দেখা দিলে আপনি group step বাদ দিয়েছেন অথবা নতুন shell খোলেননি। Log out করে আবার log in করুন। docker compose চালালে docker: 'compose' is not a docker command ফিরে এলে আপনার কাছে পুরোনো standalone binary আছে। উপরের script আধুনিক Compose plugin install করে। এটিকে docker compose হিসেবে চালাতে হয়। এখানে space আছে, hyphen নয়।

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

ফাইল ও ছবি

  • Nextcloud একটি suite-এ Google Drive, Dropbox এবং Google Calendar-এর বিকল্প দেয়। 1–2 GB RAM এবং আপনার ফাইলগুলোর মোট আকার অনুযায়ী অতিরিক্ত storage ধরুন। প্রধান সমস্যা হলো: demo-এর জন্য SQLite যথেষ্ট, কিন্তু production-এ এটি ঝুঁকিপূর্ণ। প্রথম boot থেকেই PostgreSQL ব্যবহার করে install করুন, কারণ data সংরক্ষণ করার পরে database migrate করা Nextcloud নষ্ট হওয়ার সবচেয়ে সাধারণ কারণ। সম্পূর্ণ Docker, TLS এবং backup-সহ VPS-এ Nextcloud guide-এ প্রথমবারেই সঠিকভাবে setup করার পদ্ধতি দেখানো হয়েছে।
  • Immich Google Photos-এর বিকল্প দেয়। এর মধ্যে phone app-ও রয়েছে, যা স্বয়ংক্রিয়ভাবে camera roll upload করে এবং মুখ ও object search সমর্থন করে। 6 GB RAM ধরুন; Immich-এর docs এটিকে minimum বলছে। 8 GB আরামদায়ক, এবং machine-learning container-ই সবচেয়ে বেশি resource ব্যবহার করে। আপনার library-এর আকারের সমান disk space এবং thumbnails-এর জন্য আরও প্রায় বিশ শতাংশ রাখুন। প্রধান বিষয় হলো: Immich-এর প্রথম stable release v2.0.0, October 2025 থেকে এটি semantic versioning অনুসরণ করছে। ফলে breaking change major version-এর জন্য রাখা হয়। এটি ইতিমধ্যে v3-এও চলে গেছে। তাই latest কখনো অন্ধভাবে pull করবেন না, কারণ এটি আপনাকে সরাসরি পরবর্তী major version-এ নিয়ে যাবে। একটি version pin করুন এবং প্রতিটি upgrade-এর আগে release notes পড়ুন। self-hosted Immich photo library guide-এ নিরাপদ upgrade path দেখানো হয়েছে। আপনার machine-এ 6 GB RAM-এর minimum না থাকলে PhotoPrism এবং Immich পাশাপাশি guide-এ দুটির বাস্তব memory ব্যবহার, phone app এবং library যেকোনো একটিতে রাখার আগে প্রয়োজনীয় backup command তুলনা করা হয়েছে।
  • Seafile তিনটির মধ্যে দ্রুততম sync engine দিয়ে Dropbox-এর বিকল্প দেয়। প্রায় 1 GB RAM ধরুন। প্রধান বিষয় হলো: Seafile আপনার ফাইল disk-এ plain file হিসেবে নয়, content-addressed block হিসেবে সংরক্ষণ করে। তাই ls দিয়ে data browse করতে পারবেন না। Folder copy না করে Seafile-এর নিজস্ব tools ব্যবহার করে backup নিতে হবে।

পাসওয়ার্ড

  • Vaultwarden Bitwarden-এর paid tier, LastPass এবং 1Password-এর বিকল্প হিসেবে একটি ছোট Rust server সরবরাহ করে, যা Bitwarden protocol ব্যবহার করে। তাই সব official Bitwarden app এবং browser extension সরাসরি কাজ করে। এর জন্য 100–200 MB RAM এবং প্রায় কোনো disk space-ই লাগে না। তবে গুরুত্বপূর্ণ বিষয় হলো, এই server-এ আপনার সব password থাকে। তাই এখানে TLS এবং backup ঐচ্ছিক নয়; এগুলোই এই setup-এর মূল ভিত্তি। ADMIN_TOKEN-কে Argon2 hash হিসেবে সেট করুন। কারণ compose file-এ plaintext token থাকলে সেটিই আপনার server-এর admin panel-এর password হয়ে যায়। ওই panel-এ সব user-এর তালিকা দেখা এবং server settings পরিবর্তন করা যায়। ফলে file পড়তে পারে এমন যে কেউ token-টি 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 তৈরি হয়, যা পরে ঠিক করতে সময় লাগে।

Automation এবং AI

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

যোগাযোগ

  • Rocket.Chat একটি দলের জন্য Slack-এর বিকল্প। এতে thread, call এবং integration রয়েছে। কমপক্ষে 2 GB RAM বরাদ্দ করুন, কারণ এটি MongoDB-এর ওপর চলে এবং MongoDB-ই বেশি resource ব্যবহার করে। সমস্যা হলো, প্রতিটি Rocket.Chat major release কেবল MongoDB version-এর একটি সীমিত পরিসর সমর্থন করে (8.x-এর জন্য MongoDB 8.0 বা তার পরের version প্রয়োজন, আর 7.x MongoDB 6.0 বা 7.0-এ চলত)। Rocket.Chat-এর নিজস্ব upgrade guideline অনুযায়ী major version-গুলো ধারাবাহিকভাবে upgrade করতে হয়। কোনো version বাদ দিলে database-এ compatibility সমস্যা তৈরি হতে পারে। তাই একবারে এক ধাপ upgrade করুন। Docker Compose দিয়ে Rocket.Chat guide-এ version ladder দেখানো হয়েছে।
  • Matrix (Synapse) Slack এবং Discord-এর বিকল্প। এটি এমন একটি federated, end-to-end-encrypted network, যেখানে homeserver-এর নিয়ন্ত্রণ আপনার হাতে থাকে। 1–2 GB RAM বরাদ্দ করুন; বড় public room-এ যোগ দিলে প্রয়োজনীয়তা বাড়বে। সমস্যা হলো, বড় federated room-এ Synapse-এর memory ব্যবহার দ্রুত বেড়ে যায়। এটি PostgreSQL-এ চালানো উচিত। Default SQLite কেবল single-user test-এর জন্য কাজ করে এবং federation চালু করলেই অচল হয়ে যায়। Synapse বেশি resource ব্যবহার করলে একই protocol সমর্থনকারী হালকা 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 এবং বিল্ট-ইন backup দিয়ে “এটি যদি এক ক্লিকে করা যেত” ধরনের প্রয়োজন মেটায়। ন্যূনতম 2 GB RAM রাখুন; 4 GB হলে স্বাচ্ছন্দ্যে চলবে। সমস্যা হলো, এটি নিজস্ব মতামতনির্ভর এবং পুরো server-এর নিয়ন্ত্রণ নিতে চায়। অর্থাৎ, এটি container হিসেবে নয়, নিজস্ব cloudron-setup script ব্যবহার করে একটি নতুন Ubuntu server-এ ইনস্টল হয়। এর documentation-এ ARM, LXC, Docker এবং OpenVZ host সমর্থিত নয়। এটি কেবল দুইটি app পর্যন্ত বিনামূল্যে; এর বেশি হলে এটি paid product।
  • CasaOS একটি অগোছালো homelab dashboard-এর বদলে সহজ app grid দেয়। এটি বিনামূল্যে এবং হালকা। এটি container হিসেবে নয়, নিজস্ব script (curl -fsSL https://get.casaos.io | sudo bash) ব্যবহার করে host-এ ইনস্টল হয়। এরপর আপনার app-গুলো Docker-এ চালায়। CasaOS নিজে চালানোর জন্য আনুমানিক 150 থেকে 300 MB RAM রাখুন। সমস্যা হলো, এটি একটি বিশ্বস্ত home network-এর জন্য তৈরি এবং public internet-এর জন্য নিরাপদভাবে harden করা নয়। এটিকে সরাসরি expose করবেন না। WireGuard ব্যবহার করে এতে প্রবেশ করুন।
  • 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 এবং অর্থের বিনিময়ে ব্যবহৃত document scanner-এর বিকল্প। এটি সবকিছুর OCR করে, ফলে document search করা যায়। প্রায় 1 GB RAM বরাদ্দ রাখুন; OCR চলার সময় CPU ব্যবহার হঠাৎ বেড়ে যেতে পারে। গুরুত্বপূর্ণ বিষয়: OCR result scan-এর মানের ওপর নির্ভর করে, এবং বড় archive পুনরায় process করতে সময় লাগে। দশ বছরের কাগজ bulk-import করার আগে এটি tune করুন।
  • Actual Budget দ্রুত, local এবং private envelope budgeting-এর মাধ্যমে YNAB এবং বন্ধ হয়ে যাওয়া Mint-এর বিকল্প। প্রায় 150 MB RAM বরাদ্দ রাখুন। গুরুত্বপূর্ণ বিষয়: automatic bank sync built in থাকলেও এটি optional। SimpleFIN Bridge বা Enable Banking-এর মতো regional provider-এর সঙ্গে sign up করে নিজের API credential যোগ করার পরেই এটি কাজ করে। তাই out of the box transaction manually import করতে হয়।
  • FreshRSS Feedly এবং বন্ধ হয়ে যাওয়া Google Reader-এর বিকল্প। এটি দ্রুত, private feed reader এবং mobile app-ও রয়েছে। প্রায় 150 MB RAM বরাদ্দ রাখুন। গুরুত্বপূর্ণ বিষয়: cron-ভিত্তিক feed refresh configure করুন। তা না হলে আপনি page খুললে তবেই feed update হবে।
  • BookStack documentation-এর জন্য Notion এবং Confluence-এর বিকল্প। এটি shelf, book এবং page হিসেবে content সাজায়। PHP এবং MySQL-সহ প্রায় 500 MB RAM বরাদ্দ রাখুন। গুরুত্বপূর্ণ বিষয়: এটি free-form note হিসেবে নয়, নিজস্ব কাঠামো অনুযায়ী content সাজায়। কেউ এই কাঠামো পছন্দ করেন, আবার কারও কাছে এটি অতিরিক্ত rigid মনে হয়। পুরো wiki এতে স্থানান্তর করার আগে পরীক্ষা করে দেখুন।
  • Home Assistant SmartThings এবং বিভিন্ন vendor-এর একাধিক app-এর বিকল্প। এটি smart home-কে localভাবে একত্রিত করে। প্রায় 1 GB RAM বরাদ্দ রাখুন। গুরুত্বপূর্ণ বিষয়: এর অনেক feature-এর জন্য device-গুলোর local network access প্রয়োজন। তাই remote VPS-এর চেয়ে বাড়ির hardware-এ এটি চালানো বেশি স্বাভাবিক। প্রয়োজনে dashboard remoteভাবে চালিয়ে local network-এ 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 থেকে, এবং আপনার দিক থেকে এটি ঠিক করার কিছু নেই; এটি provider-এর policy। কিছু provider অনুরোধ করলে এই সীমাবদ্ধতা সরিয়ে দেয়। যেমন AWS-এ restriction সরানোর জন্য request করা যায়। তবে এটি একটি request, কোনো switch নয়। port 25 খোলা থাকলেও reputation ছাড়া নতুন IP, PTR record, SPF, DKIM এবং DMARC না থাকলে আপনার মেইল spam folder-এ যাবে অথবা সরাসরি reject হবে। এটি বাস্তব এবং চলমান কাজ; weekend-এ শেষ করার মতো কাজ নয়। আপনি যদি তবুও এটি করতে চান, Mailcow দিয়ে self-hosted email guide অনুসরণ করে বাস্তব পরিস্থিতি বুঝে শুরু করুন। কয়েক মাস ধরে deliverability পর্যবেক্ষণ ও রক্ষণাবেক্ষণের জন্য প্রস্তুত থাকুন।
  • যে কোনো জিনিস, যেটি নির্ভরযোগ্যভাবে backup ও restore করতে পারেন না। আপনি যদি কখনও test restore না করে থাকেন, তাহলে আপনার backup নেই; আছে শুধু আশা। Irreplaceable data, আপনার photos-এর একমাত্র copy বা আপনার accounts কোনো service-এ রাখবেন না, যতক্ষণ না restore প্রক্রিয়া সফলভাবে পরীক্ষা করা হয়েছে।
  • কোনো critical dependency-এর একমাত্র copy। এমন self-hosted DNS server, যেটি crash করলে আপনার পুরো network-এর internet সংযোগও বন্ধ হয়ে যায়, প্রথম project হিসেবে খারাপ পছন্দ। একটি upstream fallback রাখুন।
  • Real-time safety system। Home alarm, medical alert বা এমন কোনো system, যেখানে পাঁচ মিনিটের downtime-ও সত্যিকারের সমস্যা তৈরি করে, সেটি Sunday night-এ 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 যথেষ্ট। কয়েকটি অ্যাপ স্বাচ্ছন্দ্যে চালানোর জন্য 4 GB RAM লক্ষ্য রাখুন। 2 GB হলো সেই মধ্যবর্তী সীমা, যেখানে অনেক সময় নীরবে Out-Of-Memory-এর কারণে container বন্ধ হয়ে যায় এবং কারণ বোঝা যায় না। সাধারণত RAM-ই সীমাবদ্ধতা তৈরি করে। যে পরিমাণ data সংরক্ষণ করবেন, সেই অনুযায়ী disk যোগ করুন। Immich, Ollama এবং বড় database-নির্ভর যেকোনো অ্যাপ সাধারণত RAM ও disk—দুটিই বেশি ব্যবহার করবে।

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

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

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

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

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

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