
आफ्नै Home Web Server कसरी बनाउने?
तपाईंको आफ्नै घरमा Home Web Server तयार गरेर वेबसाइट, एप वा पर्सनल क्लाउड (जस्तै Nextcloud, Media Server) होस्ट गर्ने तरिकाबारे एक पूर्ण, व्यावसायिक र चरणबद्ध (Step-by-Step) ब्लग गाइड तल प्रस्तुत गरिएको छ।
आजको डिजिटल युगमा डेटा प्राइभेसी, लागत बचत (Cost Saving) र नयाँ प्रविधि सिक्नका लागि आफ्नै Home Web Server बनाउनु एक उत्कृष्ट विकल्प हो। यदि तपाईं आफ्ना साना प्रोजेक्टहरू, लोकल वेबसाइट, टेस्टिङ इन्भाइरोन्मेन्ट वा पर्सनल फाइल सेयरिङका लागि सर्भर बनाउन चाहनुहुन्छ भने यो ब्लग गाइड तपाईंको लागि हो।
यस लेखमा हामी पुरानो कम्प्युटर वा Raspberry Pi लाई कसरी सुरक्षित र व्यावसायिक Linux Web Server मा रूपान्तरण गर्ने भन्नेबारे विस्तृत चर्चा गर्नेछौँ।
🛠️ आवश्यक सामाग्री (Hardware & Prerequisites)
घरमा सर्भर बनाउन ठूलो वा महँगो सर्भर हार्डवेयर चाहिँदैन। तपाईं निम्न सामाग्रीबाट सुरु गर्न सक्नुहुन्छ:
Hardware:
पुरानो PC/Laptop वा Raspberry Pi 4/5: कम्तिमा 2GB–4GB RAM भएको।
Storage: SSD (सिफारिस गरिएको) वा HDD।
Network connection: Ethernet Cable (WiFi भन्दा बढी भरपर्दो हुन्छ)।
Software & Infrastructure:
OS: Ubuntu Server LTS (Linux)
Web Server Software: Nginx वा Apache
Static IP / Dynamic DNS (DDNS): बाहिरी इन्टरनेटबाट एक्सेस गर्न।
Router Admin Access: Port Forwarding गर्नका लागि।
🚀 चरण १: Operating System (OS) इन्स्टल गर्ने
सर्भरका लागि Ubuntu Server LTS (24.04 LTS वा 22.04 LTS) सबैभन्दा राम्रो, सुरक्षित र lightweight मानिन्छ।
Bootable USB बनाउने:
Ubuntu Server को ISO फाइल डाउनलोड गर्नुहोस्।
Rufus वा BalenaEtcher प्रयोग गरी USB मा बूटेबल OS बनाउनुहोस्।
OS Install गर्ने:
USB लाई आफ्नो हार्डवेयरमा राखेर बूट गर्नुहोस्।
भाषाहरू छनोट गरी Install Ubuntu Server छान्नुहोस्।
इन्स्टलेसन प्रक्रियाको क्रममा OpenSSH Server अप्सन अनिवार्य रूपमा सेलेक्ट गर्नुहोस् (यसले पछि SSH मार्फत रिमोट एक्सेस गर्न दिन्छ)।
Static IP सेट गर्ने:
सर्भरलाई राउटरबाट सधैँ एउटै लोकल IP मिल्ने गरी (Router DHCP Static Binding मार्फत) सेट गर्नुहोस् (जस्तै: 192.168.1.100)।
💻 चरण २: सर्भरमा SSH मार्फत कनेक्ट हुने
इन्स्टलेसन सकिएपछि सर्भरमा सिधै मनिटर वा किबोर्ड जोडिरहनु पर्दैन। तपाईं आफ्नो अर्को कम्प्युटर (Windows/Mac) को Terminal बाट SSH प्रयोग गरी सर्भर चलाउन सक्नुहुन्छ:
Bashssh username@192.168.1.100
(यहाँ username र 192.168.1.100 लाई आफ्नो सर्भरको विवरणले फेर्नुहोस्)
⚙️ चरण ३: Web Server Stack (LEMP / LAMP) इन्स्टल गर्ने
वेबसाइट वा एप चलाउन वेब सर्भर र डेटाबेसको आवश्यकता पर्छ। हामी यहाँ Nginx, MySQL/PostgreSQL, र PHP/Node.js (LEMP Stack) प्रयोग गर्नेछौँ।
१. System Update गर्ने:
Bashsudo apt update && sudo apt upgrade -y
२. Nginx Web Server इन्स्टल गर्ने:
Bashsudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
जाँच गर्नुहोस्: आफ्नो ब्राउजरमा [http://192.168.1.100](http://192.168.1.100) खोल्दा "Welcome to nginx!" पृष्ठ देखियो भने तपाईंको वेब सर्भर तयार भयो।
३. Database (MySQL/MariaDB) इन्स्टल गर्ने:
Bashsudo apt install mysql-server -y sudo mysql_secure_installation
🌐 चरण ४: Port Forwarding र Domain Connection
आफ्नो सर्भरलाई घरको WiFi नेटवर्कभन्दा बाहिर (इन्टरनेट) मा उपलब्ध गराउन Port Forwarding गर्नुपर्छ।
Router Settings मा जाने:
ब्राउजरमा गएर राउटरको IP (उदा: 192.168.1.1) खोल्नुहोस् र लगइन गर्नुहोस्।
Port Forwarding कन्फिगर गर्ने:
Port 80 (HTTP) → सर्भरको लोकल IP (192.168.1.100)
Port 443 (HTTPS) → सर्भरको लोकल IP (192.168.1.100)
Public IP / Dynamic DNS (DDNS) सेटअप:
यदि तपाईंको ISPs (इन्टरनेट सेवा प्रदायक) ले Dynamic Public IP दिन्छ भने No-IP वा Cloudflare Tunnels प्रयोग गर्नुहोस्।
Cloudflare Tunnels प्रयोग गर्दा Port Forwarding बिना नै सुरक्षित रूपमा घरको सर्भरलाई Domain सँग जोड्न सकिन्छ।
🔒 चरण ५: Security र SSL Certificate (HTTPS)
इन्टरनेटमा सर्भर खुला गर्दा सुरक्षा (Security) सबैभन्दा महत्त्वपूर्ण पक्ष हो।
१. Firewall (UFW) कन्फिगर गर्ने:
Bashsudo ufw allow SSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
२. निःशुल्क SSL Certificate (HTTPS) राख्ने:
Certbot र Let's Encrypt प्रयोग गरी सुरक्षित SSL सर्टिफिकेट हाल्न सकिन्छ:
Bashsudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
यसले तपाईंको साइटमा https:// र Green Lock (सुरक्षा संकेत) थपिदिन्छ।
📈 चरण ६: Server Maintenance र Best Practices
Uninterruptible Power Supply (UPS): घरमा बिजुली जाँदा सर्भर बन्द नहोस् भन्नका लागि सानो UPS जोड्नुहोस्।
Automated Backups: आफ्नो डेटा र database को नियमित ब्याकअप बाहिरी ड्राइभ वा Cloud (S3/Drive) मा पठाउने script बनाउनुहोस्।
Docker प्रयोग गर्ने: यदि धेरै सेवाहरू (Nextcloud, WordPress, Pi-hole) चलाउनु छ भने Docker Containers प्रयोग गर्दा म्यानेज गर्न एकदमै सजिलो हुन्छ।