9 पॉइंट द्वारा GN⁺ 2024-09-19 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 2024 में, जब cloud और subscription-based services आम हो चुकी हैं, सीधे सिस्टम सेटअप करके सीखने वाली software-केंद्रित self-hosting को hobby के रूप में फिर से आज़माना सार्थक है
  • Self-hosting proprietary services के खिलाफ एक तरह का प्रतिरोध हो सकती है, लेकिन समय और मानसिक लागत बड़ी होती है, इसलिए मज़ा और exploration सबसे अहम प्रेरणा हैं
  • Beginners बिना physical server के भी शुरुआत कर सकते हैं, और Uberspace जैसी shared hosting पर SSH से जुड़कर 10GB storage और 1.5GB RAM वाले environment का उपयोग कर सकते हैं
  • Uberspace पर Docker इस्तेमाल नहीं किया जा सकता, लेकिन Uberspace Labs और Awesome-Selfhosted की मदद से Actual Budget और Miniflux जैसी services चला सकते हैं
  • Personal domain जोड़ने से service-wise subdomains, custom email addresses, और public file hosting configure करके self-hosting के नतीजों को दिखाना और maintain करना आसान हो जाता है

Cloud से पहले की personal computing वाली भावना

  • 2000s में software और games DVD पर distribute होते थे, और personal computer का स्वभाव ऐसा था कि वह user के सीधे नियंत्रण में रहने वाला computing device था
  • 2010s में Chromebook और cloud services के फैलने के साथ बहुत-सा software किसी और के computer पर चलने वाले model में चला गया
  • Ads के बाद subscriptions online monetization का मुख्य तरीका बनते गए, और सुविधा के बदले users द्वारा control सौंपने का trend बढ़ा
  • नतीजतन, computer science सीखने वाली पीढ़ी के कुछ लोगों को computer enthusiast के रूप में शुरुआत करने का मौका कम मिला, और शुरुआती hacker-style attitude भी कमजोर हो रहा है

Hobby के रूप में self-hosting अपनाना

  • Self-hosting, monopoly-driven environment में अपने digital self पर control वापस पाने की क्रिया हो सकती है
  • सिर्फ practical usefulness के हिसाब से देखें तो hosting को कहीं और सौंपना बेहतर विकल्प हो सकता है
    • Stability, concurrency, redundancy, और availability management service provider को सौंपा जा सकता है
    • पैसे बचाने के बदले समय और मानसिक बोझ बढ़ सकता है
  • बौद्धिक रूप से यह लगातार systems को tune करते रहने वाले digital garage जैसा है
    • दिन का काम खत्म होने के बाद अपनी पसंद के खिलौने जैसे system से छेड़छाड़ करने वाली hobby बन सकती है
  • “सच्ची self-hosting” के मानक को सख्ती से परखने के बजाय, software level पर ही सही, मज़े से शुरुआत करना ज्यादा महत्वपूर्ण है

Shared hosting से पहला environment बनाना

  • Self-hosting शुरू करने के लिए पहले host करने की जगह चाहिए
  • Recommended hosting के रूप में Uberspace आता है
    • यह ऐसी hosting है जैसे “आपको screwdriver दे रहे हैं; building मत जला देना, और मज़े से try करना”
    • महीने के अंत में postpaid billing होती है, इसलिए पहला महीना practically free trial जैसा इस्तेमाल किया जा सकता है
  • Account बनाने पर internet से जुड़े computer में SSH access मिल जाता है
    • Provided environment में 10GB storage और 1.5GB RAM है
    • ls चलाने पर खाली नया user directory दिखेगा

Install करने के लिए software चुनने का तरीका

  • Uberspace पर इस्तेमाल करने के लिए software खोजते समय दो resources खास तौर पर उपयोगी हैं
    • Uberspace Labs: Uberspace पर अलग-अलग software install करने के तरीकों के लिए dedicated guide
    • Awesome-Selfhosted: self-host किए जा सकने वाले software की व्यापक list, और कुछ community वाले projects खोजने के लिए उपयुक्त
  • Uberspace पर Docker इस्तेमाल नहीं किया जा सकता
    • Memory constraints की वजह से पूरा virtualization suite चलाना मुश्किल है
    • बड़े software या Docker-only installation के लिए असुविधाजनक है, लेकिन source से install करने या Dockerization process के final runtime को build image की तरह लाने जैसे workaround हैं

उदाहरण 1: Actual Budget से financial data खुद manage करना

  • Actual Budget तेज़ और privacy-focused finance management app है
  • यह उन users के लिए सही है जो expenses, net worth, spending patterns आदि track करना चाहते हैं
  • Sensitive financial information किसी दूसरी service को सौंपे बिना, browser के जरिए कहीं से भी access करने के तरीके से इसे चलाया जा सकता है
  • Budgeting approach के केंद्र में Envelope Budgeting methodology है
  • Uberspace installation guide guide_actual पर देखी जा सकती है
  • Reports section में financial data को slice करके देखा और analyze किया जा सकता है
    • जिन items को छोटी purchase समझा था, वे भी महीने भर में जुड़कर बड़े हो सकते हैं
    • Commute cost उम्मीद से ज्यादा निकल रही है, जैसे insights मिल सकते हैं

उदाहरण 2: Miniflux और RSS से feed वापस पाना

  • Miniflux minimal और opinionated feed reader है
  • RSS का उपयोग करके पसंदीदा news outlets, magazines, और blog post updates एक जगह देखे जा सकते हैं
  • YouTube subscribed channels को भी ads-free dedicated feed timeline की तरह configure किया जा सकता है
    • YouTube RSS feeds देता है
    • Embedded YouTube player में ads नहीं होते
  • Uberspace पर Miniflux install करने के बाद पसंदीदा YouTube channel feeds जोड़ी जा सकती हैं
  • Settings में Fever API enable करने पर, Fever API पढ़ सकने वाला RSS client cloud में मौजूद RSS aggregator तक access कर सकता है
    • Apple ecosystem में Golden Hill Software का Unread recommend किया गया है
  • News और webcomics के लिए अलग feed categories भी रखी जा सकती हैं
    • Webcomic examples के रूप में xkcd, smbc, oatmeal का उल्लेख है

Personal domain से दिखाने की जगह बनाना

  • Self-hosting का एक मज़ा यह है कि आप जो बनाते हैं उसे दिखा सकते हैं
  • Personal domain आपकी अपनी online space की तरह काम करता है
  • Domain registration service के रूप में Porkbun recommend की गई है
  • awesauce.com जैसा domain हो तो कई configurations संभव हैं
    • Uberspace पर hosted services को actual.awesauce.com, miniflux.awesauce.com जैसे subdomains से जोड़ा जा सकता है
    • अगर email provider custom domain support करता है, तो contact@awesauce.com जैसा address बनाया जा सकता है
      • Actual email service provider बाद में बदलने पर भी address कायम रखा जा सकता है
      • Custom domain email paid हो सकता है
    • Subdomain या URL path को GitHub repository से जोड़कर resume जैसी public files को awesauce.com/files/resume.pdf पर उपलब्ध कराया जा सकता है

जानबूझकर छोड़ी गई अगली exploration

  • इस लेख का लक्ष्य detailed step-by-step tutorial से ज्यादा, खुद हाथ लगाकर देखने की curiosity जगाना है
  • Readers के खुद explore करने के लिए एक task बचा है: किसी खास product के restock होने या website बदलने पर mobile notification भेजने का तरीका
  • संबंधित Hacker News discussion इस thread में जारी है

1 टिप्पणियां

 
GN⁺ 2024-09-19
Hacker News की रायें
  • पुराने नज़रिए से देखें तो यह हैरानी की बात है कि shared hosting के लिए पैसे देना अब “self-hosting” कहलाने लगा है। इसका मतलब यह नहीं कि यह अपने-आप में बुरा है, लेकिन 10 साल पहले इसे कभी self-hosting नहीं कहा जाता
    यह कुछ वैसा ही है जैसे “शुरुआत से खाना बनाना” का मतलब बदल गया हो। 19वीं सदी की cookbook में सामग्री में “1 सुअर” लिखा हो सकता था और उसे काटने को कहा गया हो, लेकिन आज तो स्वाभाविक रूप से styrofoam tray में रखे pork cuts खरीदने जैसी बात है

    • शब्दावली में ही समस्या है। self-hosting community /r/selfhosted के आसपास केंद्रित है और उसका माहौल काफ़ी technical है; यह उन लोगों जैसा है जिन्हें computers से छेड़छाड़ करना पसंद है। kit car assemble करने वालों जैसा एहसास
      लेकिन ऐसे लोग भी एक बड़ा market बनाते हैं जो self-hosting के फायदे ले सकते हैं, पर हर छोटी detail समझने की ज़रूरत नहीं रखते। उदाहरण के लिए, अपने domain के साथ managed services इस्तेमाल करने पर data ownership, open-source software, providers के बीच competition जैसे काफी फायदे मिल सकते हैं। इसलिए लगता है कि कोई व्यापक शब्द चाहिए, और इन दिनों indie hosting अभिव्यक्ति इस्तेमाल कर रहे हैं
    • hosting provider इस्तेमाल करें तो कई लोग ज़रूर कहेंगे कि, भले ही आप software खुद deploy करें, यह self-hosting नहीं है
      आम तौर पर स्वीकार की जाने वाली exception network protection की तरफ है। संभव हो तो घर का IP address बाहर expose नहीं करना चाहेंगे, इसलिए बहुत लोग Tailscale, Cloudflare Tunnel, या VPS को proxy के तौर पर इस्तेमाल करते हैं
    • लगता है मैं भी पुराना होता जा रहा हूँ। मेरे हिसाब से असली self-hosting वही है जो अपने hardware पर चलाया जाए
      अगर वह भी कम पड़े, तो freezer में उस सुअर से आया pork और घर में cured bacon भी है जिसे खुद पाला और तैयार किया था। “नई दुनिया में रहने वाली पुरानी आत्मा” वाली बात काफी फिट बैठती है
    • घर से hosting करना शुरू से ही home internet provider की terms of service restrictions में फँस सकता था। शुरुआती दिनों में जब मैंने self-hosting की थी, तब भी मैंने अपना system किसी और के rack में mount करने और उनकी network इस्तेमाल करने के लिए पैसे दिए थे
      चाहे वह hardware किराए पर लिया हो, server खुद assemble किया हो, या provider की virtual machine इस्तेमाल की हो, maintenance workload लगभग समान है। फिर भी यह Wix/Squarespace, Geocities, या social media platforms इस्तेमाल करने से अलग ही है
    • मूल लेखक भी कुछ हद तक यही सोचता है
      क्योंकि उसने लिखा था, “तो यहाँ ‘real self-hosting’ तो नहीं है, लेकिन फिर भी self-hosting का एक gentle intro लिखता हूँ। sue करना हो तो कर लो।” :)
  • मुझे self-hosting सचमुच बहुत पसंद है, और पिछले कुछ महीनों में इसमें काफी गहराई तक उतर गया हूँ। अभी मैं company के लिए services और कई homelab चला रहा हूँ, और Hetzner VPS पर Ansible + Docker Compose files या https://github.com/coollabsio/coolify/ से deploy करता हूँ
    awesome-selfhosted repository भी self-host करने लायक projects खोजने के लिए अच्छी है, लेकिन usability features की कमी है, इसलिए मैंने थोड़ा बेहतर user experience वाला directory https://selfhostedworld.com पर बनाया है। इसमें search, stars/popularity/date filters, और dark mode हैं

    • चूँकि लगता है आप इस विषय को अच्छी तरह जानते हैं, पूछना चाहता हूँ। कोई व्यक्ति जो networking से बहुत familiar नहीं है लेकिन कुछ technical knowledge रखता है, अगर अपने network के computer को internet पर expose करे तो यह कितना risky है?
      modern tools और virtual machines इस्तेमाल करने पर क्या यह अपेक्षाकृत safe है, या हर हफ्ते software updates check करने की तरह लगातार ध्यान देना पड़ता है? मैं काफी समय से server खड़ा करना चाहता था, और अब एक spare laptop मिल गया है, तो कम से कम NAS चलाने के बारे में सोच रहा हूँ
    • क्या मेरी SaaS को भी “Heroku alternative” section में जोड़ सकते हैं?
      https://ptah.sh
    • काफी अच्छा है। sish और inlets दिख रहे हैं, और ऐसे ही tools की कहीं बड़ी list यहाँ है: https://github.com/anderspitman/awesome-tunneling
      authentication की तरफ मैंने OIDC server comparison भी बनाया है: https://github.com/lastlogin-net/obligator#comparison-is-the...
    • Coolify की तरह दूसरे servers के लिए control plane देने वाले software type को क्या कहा जाता है? मेरा मतलब Dokku जैसी चीज़ के उलट, जो उसी server पर सीधे चलती है
  • एक कहावत है कि “पैसे बचाने के बदले जितना समय और मानसिक शांति खोते हो, व्यावहारिक रूप से वह मूर्खता है,” और self-hosting community में Kubernetes को अक्सर अच्छी नज़र से नहीं देखा जाता। लेकिन self-hosting पूरी की पूरी ही मूलतः कुछ ऐसी है, इसलिए एकदम अंत तक चले जाना भी बुरा नहीं है
    मैं 3 Dell R720XD पर NixOS चलाकर उन्हें k3s multi-master के रूप में चला रहा हूँ। storage के लिए rook/ceph इस्तेमाल करता हूँ, और अलग-अलग size की लगभग 12 hard disks हैं। मेरी पसंदीदा party trick यह है कि video streaming के दौरान cluster से कोई भी hard disk निकाल देता हूँ, और उसे बिल्कुल फर्क नहीं पड़ता। वापस लगाओ तो सब कुछ ऐसे लौट आता है जैसे कुछ हुआ ही न हो, और अभी भी काफी space बचा है, इसलिए host करने लायक उपयोगी चीज़ें ढूँढ रहा हूँ

    • self-hosting के लिए k8s या k3s इस्तेमाल करने वाले लोग काफी हैं। हालांकि ज़्यादातर लोगों के लिए अतिरिक्त complexity की तुलना में मिलने वाला फायदा पर्याप्त नहीं होता। यह भी ध्यान रखना चाहिए कि अधिकतर setups single node होते हैं, इसलिए Docker से ही ज़रूरत का सारा काम हो जाता है
      निजी तौर पर, मेरे पास 4 छोटे desktops का setup है, फिर भी मैं Docker Swarm इस्तेमाल करता हूँ। आपके hardware को देखते हुए बिजली का बिल ही आसानी से महीने का 200 डॉलर आ सकता है। Docker Swarm पुराना है और लोकप्रिय नहीं है, लेकिन vanilla Docker से बस थोड़ा सा ही ज्यादा complex है और multi-node deployment व orchestration के लिए जो चाहिए, वह सब कर देता है
    • मैं NixOS को virtual machine के रूप में इस्तेमाल करता हूँ, और services को सीधे containers में चलाता हूँ। मैंने एक tool भी बनाया है जो Docker Compose projects को NixOS पर आसानी से चलाने देता है [1]
      इससे NixOS configuration के फायदे मिलते हैं, साथ ही ऐसी कोई भी application चला सकते हैं जो nixpkgs में शायद न हो। storage के लिए hypervisor Proxmox में ZFS इस्तेमाल करता हूँ, और local में उसे NFS के जरिए expose करता हूँ
      [1] https://github.com/aksiksi/compose2nix
    • homelab में k8s overkill है। फिर भी लोग करते हैं, क्योंकि self-hosting में practicality 1 और learning 2 के अनुपात में होती है
  • मूल लेख ने इस बात को अच्छी तरह पकड़ा है: “2024 है, तो अब अपने systems को खुद setup करने की मूल खुशी पर फिर से लौटने का समय है।”
    self-hosting सच में मज़ेदार है। क्योंकि इसमें learning, challenge और practicality का मिश्रण है। Actual Budget और Changedetection.io के लिए +1। लेकिन threat modeling और security को न छूना -1 है। मूल लेखक HTTPS इस्तेमाल करता है, लेकिन website को public internet पर खुला छोड़ता है। जो लोग शुरुआत कर रहे हैं, उन्हें LAN-only host करना चाहिए या बहुत मजबूती से lock down करना चाहिए। हालांकि shared hosting में IP restrictions या tunneling जैसी चीज़ों के बिना यह मुश्किल हो सकता है, और uberspace यह देता है या नहीं, मुझे नहीं पता। शुरुआती चरण पार कर चुके लोगों के लिए, कई apps को साथ-साथ ज्यादा चलाने के लिए Docker जैसी चीज़ recommend करूँगा। bundled dependencies सबसे बढ़िया हैं। मेरी किताब का थोड़ा promo, जिसमें Docker वाला तरीका भी शामिल है: https://selfhostbook.com

  • मैं दूसरे पुराने लोगों से सहमत हूँ
    जब तक आपकी अपनी या किराए की जगह में अपना hardware नहीं चल रहा, वह self-hosting नहीं है। अभी मैं एक छोटा Micro-ITX box इस्तेमाल करता हूँ, लेकिन पहले मेरे पास 6U server, UPS और network equipment वाला ठीक-ठाक server rack भी था। यह शादी से पहले की बात है

  • मुझे self-hosting बहुत पसंद है। छोटे hobby projects करते हुए मैंने बहुत कुछ सीखा
    अगर कोई मेरी configuration जानना चाहता हो, तो मैंने eBay से पुराना Dell R630 सस्ते में खरीदा। SSD 1TB RAID 1, RAM 32GB, 32 cores वाला setup है, और Docker, virsh, minikube से छोटे hobby apps चलाकर मज़े कर रहा हूँ। तीनों सीखे। 1Gbps fiber connection है, और IP बदला है या नहीं यह हर 1 minute में cron job से detect करता हूँ, फिर Linode API से DNS A record बदल देता हूँ

  • RAM 1.5GB, disk 10GB? Hetzner basic cloud VPS में 4GB RAM और 40GB disk 4.51 euro में मिलते हैं

    • जहाँ तक मुझे पता है, Oracle Cloud को हराना मुश्किल लगता है: https://www.oracle.com/cloud/costestimator.html
      compute के लिए कहा गया है कि “हर tenancy के लिए Ampere A1 Compute instances बनाने हेतु हर महीने पहले 3,000 OCPU hours और 18,000GB hours free दिए जाते हैं। यह free tier usage bare metal, virtual machines और container instances में साझा होता है।” block storage के लिए कुछ ऐसा है: “Block Volume service free tier allowance पूरी tenancy के लिए कुल 200GB है। अगर उसी tenancy में कई estimates हैं, तो कुल 200GB ही लागू होता है।” यानी 4-core ARM CPU + 24GB RAM + 200GB space मुफ्त में मिलने जैसा है
    • संभावित price difference भी देख रहे हो?
  • spoiler दूँ तो, यह लेख self-hosting के बारे में नहीं बल्कि shared hosting के बारे में है

  • लेकिन अगर कोई कान में K8S फुसफुसा दे तो…

    • याद आया, अगले upgrade window की तैयारी के लिए मुझे अपने homelab K3S cluster में updated CRD feed करने जाना चाहिए
  • इस guide से graduate हो जाओ तो /r/homelab और /r/homedatacenter भी ज़रूर check कर लेना ;)