- यह लेख Hetzner और Coolify का उपयोग करके VPS self-hosting प्रक्रिया को चरण-दर-चरण विस्तार से दस्तावेज़ करने वाली एक चेकलिस्ट है
- यूरोप में कम latency, बेहतरीन price-to-performance, और transparent pricing के कारण Hetzner की सिफारिश की गई है
- इसमें security-केंद्रित initial server setup, SSH security, firewall, और automatic updates की सेटिंग जैसे वास्तविक काम में अक्सर आने वाले मुद्दे शामिल हैं
- यह Node.js ऐप को सुरक्षित रूप से deploy करने के लिए production environment setup, monitoring, backup, और troubleshooting के तरीकों को विस्तार से समझाता है
- अपना सर्वर खुद बनाते हुए DevOps क्षमता और स्वतंत्र प्रबंधन कौशल विकसित करने के लिए यह एक व्यावहारिक गाइड है
VPS सेटअप तैयारी चेकलिस्ट
- VPS service provider चुनने वाले हिस्से में Hetzner को price/performance के लिहाज़ से सुझाया गया है
- कम से कम 1GB RAM और 20GB storage वाली configuration चुनें, और सर्वर का IP address तथा root account जानकारी नोट करके रखें
- लोकल मशीन पर SSH client तैयार रखें, और strong password generator का उपयोग करें
VPS provider चुनने के कारण
- Hetzner Cloud यूरोप क्षेत्र में सस्ता, तेज़ और भरोसेमंद है
- विकल्प: DigitalOcean (onboarding/documentation बेहतर, लेकिन कीमत बढ़ी हुई), AWS Lightsail (AWS पर निर्भर, beginners के लिए अधिक कठिन), Linode (स्थिर लेकिन price competitiveness कम), Render/Fly.io (PaaS होने से सुविधाजनक, लेकिन लागत और सीमाएँ अधिक)
- Hetzner समान configuration की तुलना में 2–3 गुना सस्ता है, इसमें अस्पष्ट billing नहीं है, और यूरोप data center इसका मजबूत पक्ष हैं
शुरुआती सर्वर सेटअप चेकलिस्ट
पहली बार कनेक्ट करना और system update
- package list update करें और system upgrade करें
- system information जांचने के लिए command दिए गए हैं (उदाहरण: uname -a, cat /etc/os-release)
root account security setup
- जटिल password सेट करें और उसे सुरक्षित रूप से संग्रहीत करें
- 'admin', 'user' जैसे प्रचलित account नामों के बजाय एक unique user account बनाएं
- नए account को sudo privileges दें, और जांचें कि वे सही तरह लागू हुए हैं या नहीं
SSH key authentication configuration
- लोकल मशीन पर Ed25519 (recommended) या RSA key pair बनाएं
- public key को सर्वर के .ssh/authorized_keys में जोड़ें और permissions सेट करें
- जांचें कि SSH key login ठीक से काम कर रहा है या नहीं (क्या बिना password डाले login हो रहा है)
- password authentication disable करें, और ज़रूरत हो तो cloud-init की अलग file भी जांचें
- SSH daemon को restart करें और उसकी स्थिति सत्यापित करें
- root login disable करके remote root access रुकने की पुष्टि करें
Firewall सेटिंग चेकलिस्ट
UFW basic setup
- सभी incoming connections को default deny, outgoing को allow रखें
- SSH, HTTP(80), HTTPS(443) ports allow करें और जांचें कि UFW लागू हुआ है या नहीं
- विकल्प: SSH port को किसी खास IP तक सीमित करें, और port number बदलकर (security hardening के लिए) अतिरिक्त सुरक्षा परत जोड़ें
Automatic updates सेटिंग चेकलिस्ट
Unattended Upgrades configuration
- unattended-upgrades और apt-listchanges packages install करें, और default usage consent चुनें
- security updates वाले section को uncomment करें, और email alerts तथा automatic reboot options configure किए जा सकते हैं
- automatic updates के काम करने की test करें और status जांचें
Production application deployment चेकलिस्ट
Node.js runtime environment setup
- Node.js LTS install करें और version verify करें
- application files को सर्वर पर upload करने के बाद dependencies install करके production के लिए तैयार करें
Process manager (PM2) का उपयोग
- PM2 के साथ ऐप को production mode में चलाएं, और clustering options का उपयोग करें
- PM2 को boot पर auto-start के लिए configure करें, और restart/monitoring commands का उपयोग करें
Reverse Proxy (Nginx) setup
- Nginx site configuration file बनाएं और proxy pass लागू करें
- site को enable करें और Nginx restart करें
SSL certificate सेटिंग चेकलिस्ट
Let's Encrypt और Certbot
- certbot और python3-certbot-nginx install करने के बाद domain-based SSL certificate का automatic issuance करें
- renewal automation options और certificate validity test करें
Monitoring और maintenance चेकलिस्ट
Basic monitoring methods
- htop, iotop जैसे system resource checking tools install करें
- syslog, auth.log की real-time log monitoring करें और log rotation policy (logrotate) सेट करें
Backup strategy
- tar का उपयोग करके application और database backup script लिखें
- schedule (crontab) के अनुसार नियमित backups चलाएं
Troubleshooting चेकलिस्ट
SSH connection problems
- firewall settings, SSH service status, authentication logs, और network की जांच करें
Permission-related errors
- file/folder permissions, groups, और sudo settings की जांच करें
Service start न होना
- systemctl और journalctl से status और logs जांचें, और configuration file syntax verify करें
Excessive resource usage
- process/disk/network/application logs का विश्लेषण करें
Final verification चेकलिस्ट
Security verification
- SSH key authentication, password login, root login, firewall, automatic updates, production mode, SSL, backup आदि सभी बिंदुओं के सही काम करने की समीक्षा करें
Performance test
- Apache Bench से load testing करें, resource monitoring करें, और log errors जांचें
Quick reference commands list
System information check
- htop, df -h, free -h, uname -a
Process management
- pm2 status, pm2 restart all, pm2 logs, pm2 monit
Security-related
- sudo ufw status, sudo fail2ban-client status, sudo lynis audit system
Service management
- sudo systemctl status nginx, sudo systemctl restart nginx, sudo journalctl -u nginx
समापन
- यह चेकलिस्ट पूरी VPS setup और management प्रक्रिया प्रदान करती है
- कम लागत के साथ-साथ यह सीधा प्रबंधन, सीखने का अवसर, और DevOps autonomy भी देती है
- Hetzner और Coolify के ज़रिए self-hosting व्यावहारिक अनुभव के माध्यम से भरोसा और स्वतंत्रता प्रदान कर सकती है
- VPS hosting आज़माने वालों के लिए यह एक वास्तविक और उपयोगी गाइड की भूमिका निभाती है
1 टिप्पणियां
Hacker News की राय
मुझे लगता है कि यह मेरे जैसे शुरुआती के लिए वाकई बहुत अच्छा सारांश है, इसे ज़रूर बुकमार्क करूंगा
लेकिन अफ़सोस की बात यह है कि शीर्षक में Coolify का ज़िक्र है, जबकि मुख्य लेख में उसका लगभग कोई ज़िक्र ही नहीं है
इसी तरह के विषय पर एक और उपयोगी लेख 'Setting up a Production-Ready VPS from Scratch' है, जिसे मैंने नीचे दिए लिंक के साथ बुकमार्क किया है
https://dreamsofcode.io/blog/setting-up-a-production-ready-vps-from-scratch
जब मैं ऐसे विषयों को थोड़ा और गहराई से समझना चाहता हूँ, तो आमतौर पर लेख का लिंक LLM में डालकर
"यह 'विषय/शीर्षक' पर एक लेख है: https://article.link. इसे अच्छी तरह समझकर विश्लेषण करो, फिर हर सेक्शन को अपने ज्ञान से विस्तार दो, और अतिरिक्त संबंधित सेक्शन भी शामिल करो"
ऐसा prompt देकर सीखता हूँ
https://www.youtube.com/watch?v=taJlPG82Ucw
मैं लगभग 1 साल से इसी सेटअप पर चला रहा हूँ, और पहली बार self-hosting आत्मविश्वास के साथ करने लायक लगी
OVH भी Hetzner जितना ही भरोसेमंद है, और अभी उसके पास काफ़ी सस्ते ऑफ़र हैं
https://us.ovhcloud.com/vps/configurator/?planCode=vps-2025-model3&brick=VPS%2BModel%2B3&pricing=upfront12&processor=%20&vcore=8__vCore&storage=200__SSD__NVMe
अगर Coolify इस्तेमाल करूँ, तो कौन-सा distro चुनूँ यह सोच रहा हूँ
Ubuntu 24.04 और Debian 13 में से कौन बेहतर रहेगा, यही दुविधा है
OVH VPS - 24 vCPU (या threads), 96GB RAM सिर्फ़ $53.4/माह है
Hetzner VPS (AMD विकल्प के आधार पर) 16vCPU, 32GB, $54.9/माह है
DO Droplet 16vCPU, 64GB RAM के लिए $504/माह है
Linode और Upcloud भी 24~20vCPU, 96GB RAM पर $576/माह हैं, इसलिए OVH की तुलना में काफ़ी महंगे हैं
मुझे नहीं पता OVH कौन-सा CPU इस्तेमाल करता है, लेकिन कीमत के अंतर को देखते हुए, अगर वह Intel E-Core CPU भी हो, तो भी यह काफ़ी अच्छा सौदा है
जानकारी के लिए, Hetzner का एक सस्ता Intel vCPU विकल्प भी है, लेकिन वह पुराना हार्डवेयर है और स्लॉट तभी खुलते हैं जब कोई दूसरा ग्राहक कैंसल करे
इसीलिए मैंने तुलना के लिए सिर्फ़ नए AMD विकल्पों को लिया
OVH की एकमात्र समस्या यह है कि VPS (लगभग $30/माह) किराए पर लेने के लिए मुझे अपनी ID की कॉपी भेजनी पड़ी
मैं अपनी निजी जानकारी इस तरह साझा नहीं करना चाहता था, इसलिए अंत में मैंने ज़्यादा महंगा विकल्प चुना
मेरे अनुभव में (हालाँकि बहुत लंबा नहीं), Hetzner cloud server की performance OVH VPS से काफ़ी बेहतर रही
मैं दोनों का संतोषजनक तरीके से उपयोग कर रहा हूँ
मैं जानना चाहता हूँ कि OVH और Hetzner दूसरी कंपनियों की तुलना में इतने सस्ते क्यों हैं
VPS के ज़्यादा shared होने की वजह से कुछ हद तक समझ आता है, लेकिन इन दोनों के dedicated server भी बहुत सस्ते हैं
कहीं यह कोई honeypot ऑफ़र तो नहीं, या OVH की pricing हाल ही में बदली है?
मुझे याद है कि कुछ साल पहले यह Hetzner से महंगा हुआ करता था
यहाँ बताए गए सभी CPU असल में shared resource होने की बहुत संभावना है
और वास्तव में कितना sharing है, यह बताया नहीं जाता
Hetzner में उतने ही core-count वाले ऐसे server भी हैं जिनकी कीमत आधी है
ऊपर-ऊपर से यह साफ़ नहीं दिखता, लेकिन performance test करने पर सस्ते server सच में आधी performance देते हैं
CSS सेटिंग में मैंने नीचे की ये दो चीज़ें बंद कीं, तो ब्लॉग का UI/UX बहुत बेहतर हो गया
pre {
margin: 2rem 0 !important;
padding: 1rem !important;
}
code block में padding और margin इतने बड़े थे कि स्क्रीन पर सिर्फ़ 3 लाइनें ही दिखती थीं
और अगर Webmin/Virtualmin इंस्टॉल कर लें, तो नया subdomain या user जोड़ना जैसे काम बहुत आसान हो जाते हैं
मैंने Coolify की वजह से क्लिक किया था, लेकिन असल में उसका ज़िक्र सिर्फ़ tags, introduction, ending वगैरह में है, मुख्य सामग्री में नहीं
मुझे लगता है Coolify का ज़िक्र करना ही अनुपयुक्त था
यह लेख असल में Coolify deployment के लिए VPS तैयार करने के बारे में है
Coolify इंस्टॉलेशन को यह कवर ही नहीं करता
मैं अब तक VM पर Docker Compose से अपनी सारी services मैनेज कर रहा हूँ, इसलिए यह जानने के लिए क्लिक किया कि क्या Coolify इससे काफ़ी बेहतर विकल्प है
लेकिन Coolify के बारे में कोई वास्तविक सामग्री थी ही नहीं, और Coolify के लिए की जाने वाली manual तैयारी उल्टा और जटिल लगी
मेरा तरीका, जिसमें “Docker Compose base image का उपयोग करो और कुछ चीज़ें बदल लो”, उससे यह कहीं ज़्यादा सरल लगा
इसलिए लगा कि मेरा मौजूदा तरीका अभी भी ठीक-ठाक है
अच्छी बात यह है कि hosts के बीच migration भी 99% मामलों में सिर्फ़ Docker Compose YAML फ़ाइल कॉपी करके हो जाता है
मैंने कुछ महीने पहले Coolify आज़माया था, और जब कई containers Compose से जुड़े हुए थे तब हर तरह की समस्याएँ आईं
जैसे, किसी container के पहले से चलने की बात भूलकर उसे दोबारा चला देना, या दोनों चल रहे हों लेकिन Coolify सिर्फ़ एक को पहचानता हो
अगर हर service को अलग-अलग Coolify में register करें, तो वह कुछ हद तक ठीक चलता है
आख़िरकार मैं भी Docker Compose आधारित standalone सेटअप पर वापस आ गया, और सच कहूँ तो उसे चलाना कहीं आसान था
मुझे लगता है Coolify जैसे प्रयास वाकई ज़रूरी हैं, लेकिन अभी यह production में गंभीर उपयोग के लिए थोड़ा अधूरा है
अगर Coolify या इसी तरह के प्रोजेक्ट DB backup और streaming replication सपोर्ट नहीं करते, तो वे बस hobby स्तर तक ही सीमित रहेंगे
मैं Docker Compose और bash scripts के साथ 2 VM चलाता हूँ, और सिर्फ़ S3 पर hourly backup, wal streaming, PG और Redis streaming replication सेट कर देने भर से मुझे लगता है कि production की न्यूनतम ज़रूरतें पूरी हो जाती हैं
उपयोग के हिसाब से बात अलग हो सकती है, लेकिन मैंने Coolify और CapRover दोनों का इस्तेमाल किया है
आख़िर में मैंने CapRover चुना, क्योंकि Git Hook की मदद से हर commit पर auto-build होकर NodeJS app तेज़ी से deploy हो जाता था
दोनों यह feature सपोर्ट करते हैं, लेकिन CapRover में friction कम है
Coolify की तरफ़ features ज़्यादा हैं
Coolify, Traefik और Docker के ऊपर चलता है और असल में उन पर एक UI layer है
backup से जुड़ी कई ज़रूरी सुविधाएँ इसमें नहीं हैं (हालाँकि restic जैसी चीज़ों से हल किया जा सकता है), और UX बस ठीक-ठाक है
Coolify को इंस्टॉल करने के लिए अभी भी root privilege चाहिए
सुना है कि बिना root privilege इंस्टॉल करने वाली branch पर काम चल रहा है
आप ssh से server में लॉगिन करके Coolify इंस्टॉल कर सकते हैं, और उसके बाद root login बंद कर सकते हैं
अगर आप server मिटाकर फिर से शुरू से setup करने के लिए तैयार हैं, तो यह संभव है
मैंने भी हाल ही में Coolify deployment बिल्कुल शुरू से करने की कोशिश की थी, लेकिन ssh key में बार-बार error आ रही थी
मैं दूसरे servers पर कई projects अच्छे से deploy कर रहा हूँ, लेकिन “बस docker compose file दे दो” वाला तरीका व्यवहार में कभी सही से काम नहीं किया
मैंने हाल ही में अपना FreeBSD server Hetzner पर migrate किया, और यह बहुत आसान था
एकमात्र variable यह था कि billing cycle पूरी तरह खत्म होने से पहले mail server वाले ports block रहते हैं
मैं इस policy को समझ सकता हूँ, लेकिन शुरुआत में यह साफ़-साफ़ बताया नहीं गया था, इसलिए थोड़ा असहज लगा
ध्यान रहे, अगर आपका credit card expire हो जाए तो Hetzner नेटवर्क ही तुरंत काट सकता है
न कोई पहले से warning थी, और मुझे इसका पता तब चला जब एक असली ग्राहक या staff ने संपर्क किया
मेरे साथ यह सच में हुआ है
अगर आप Hetzner टीम को traffic के प्रकार के बारे में समझाकर पूछें, तो वे ports पहले भी खोल देते हैं
मैंने migration होने वाले project का proof दिखाया था, और उन्होंने तुरंत खोल दिया
Coolify जैसे tools (जैसे Dokploy) ठीक लगते हैं, लेकिन मुझे हमेशा यह कमी लगती है कि server state code में नहीं रहती
इसलिए मैं NixOS या Ansible को पसंद करता हूँ, लेकिन असली production setup के लिए उनमें बहुत boilerplate और customization चाहिए
क्या किसी को Kubernetes के बिना ऐसा कोई ज़्यादा declarative infrastructure-as-code framework पता है, जो production server मैनेज करना आसान बना दे?
Coolify की settings में backup करने लायक बहुत कम चीज़ें हैं, और application settings सब /data/coolify में रहती हैं
मैं पूरे volume का backup kopia से लेता हूँ
यह कोई बहुत सुंदर समाधान नहीं है, थोड़ा जुगाड़ जैसा है, लेकिन disaster recovery के लिए काम का तरीका है
गाइड अच्छी है
लेकिन खासकर Hetzner इस्तेमाल करते समय firewall configuration पर मैं सहमत नहीं हूँ
अगर आपको सिर्फ़ simple setup चाहिए, तो Hetzner का दिया हुआ firewall ही काफ़ी है, और इससे “outsourcing” का फ़ायदा भी मिलता है
अगर थोड़ा ज़्यादा custom चाहिए, तो इसे API से भी configure किया जा सकता है
https://docs.hetzner.cloud/reference/cloud#firewalls
क्या Hetzner firewall की कोई गंभीर कमी है?
“SSH को सिर्फ़ अपने IP तक सीमित करो (optional, but recommended)” वाली सलाह मुझे जोखिमभरी लगती है
अगर IP बदल जाए, तो आप पूरी तरह बाहर हो सकते हैं
Hetzner dashboard से reset किया जा सकता है, लेकिन बार-बार बदलने वाले home IP से बाँधने के बजाय Tailscale जैसी चीज़ या
एक स्थिर external VPN IP रखना बेहतर है
सिर्फ़ SSH key authentication का उपयोग करने से ही ज़्यादातर security problems रुक जाती हैं
ऊपर से log noise कम करने के लिए एक और layer जोड़ना भी अच्छा है, और अगर SSH के अलावा ऐसी services हैं जिन्हें बाहर expose करने की ज़रूरत नहीं है,
तो उन्हें VPN वगैरह के पीछे रखना बेहतर है
असल में server पर SSH से ज़्यादा कमजोर services अक्सर दूसरी होती हैं
हाँ, यह निश्चित रूप से जोखिमभरा है
बहुत से लोग घर में dynamic IP इस्तेमाल करते हैं
मुझे लगता है SSH key सेट करके और root login बंद करके पर्याप्त सुरक्षा मिल जाती है
मुझे लगता है कि production app setup वाले हिस्से को Docker से बदल देना चाहिए
आजकल Docker कहीं ज़्यादा repeatable है और configure करना भी आसान है