एक क्षण आता है जब प्रबंधित PostgreSQL सुविधाजनक रहना बंद कर देता है: आप एक ऐसा एक्सटेंशन चाहते हैं जो टियर नहीं देता, आप वास्तविक क्वेरी प्लान देखना और work_mem ट्यून करना चाहते हैं, आप सुपरयूज़र चाहते हैं। जब आप Postgres को अपना बनाना चाहते हैं — कॉन्फ़िग, संस्करण, एक्सटेंशन, बैकअप शेड्यूल — तो पूर्ण root वाला VPS ईमानदार उत्तर है। यह PostgreSQL-विशिष्ट सेटअप है; व्यापक «डेटाबेस स्वयं-होस्ट करें» तस्वीर (Postgres बनाम Redis, कहाँ साझा मशीन ग़लत है) के लिए सामान्य डेटाबेस यूज़-केस देखें।
PostgreSQL स्वयं-होस्ट क्यों करें
अपनी मशीन पर आपको वह मिलता है जो प्रबंधित टियर राशन में देते हैं:
- पूरा
postgresql.conf—shared_buffers,work_mem,max_connections, WAL सेटिंग्स, आपके वर्कलोड के अनुसार ट्यून, न कि वेंडर डिफ़ॉल्ट। - कोई भी एक्सटेंशन। एम्बेडिंग के लिए
pgvector, जियोस्पेशियल के लिएPostGIS, टाइम सीरीज़ के लिएTimescaleDB,pg_cron,pg_stat_statements— जो चाहिए इंस्टॉल करें। यहीं प्रबंधित टियर सबसे अक्सर ना कहता है। - आपका मेजर संस्करण, आपके शेड्यूल पर अपग्रेड, प्रदाता के नहीं।
- सुपरयूज़र और नीचे का OS — डेटा डायरेक्टरी हिलाएँ, कर्नेल ट्यून करें, दूसरी मशीन पर स्ट्रीमिंग रेप्लिकेशन चलाएँ।
यदि pgvector वह कारण है जिससे आप यहाँ हैं, तो ध्यान दें कि Postgres-प्लस-pgvector एक ही मशीन पर एक पूर्ण वेक्टर स्टोर है — वही बिल्डिंग ब्लॉक जो स्वयं-होस्टेड RAG स्टैक और एजेंट मेमोरी के पीछे है।
इसे सेट करें (Ubuntu 24.04, Docker)
# docker-compose.yml — PostgreSQL 16 (+ pgvector via the pgvector image)
services:
db:
image: pgvector/pgvector:pg16
restart: always
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: change-me-strong
POSTGRES_DB: app
command: ["postgres", "-c", "shared_buffers=512MB", "-c", "work_mem=32MB"]
volumes: ["/srv/pg:/var/lib/postgresql/data"]
ports: ["127.0.0.1:5432:5432"] # localhost only; see below to expose safely
docker compose up -d
docker compose exec db psql -U app -c "CREATE EXTENSION IF NOT EXISTS vector;"
127.0.0.1 से बँधा, यह उसी मशीन पर एक ऐप की सेवा करता है, कुछ भी उजागर किए बिना। अन्य सर्वरों को अंदर आने देने के लिए, वह अगला खंड है।
अन्य सर्वरों को जुड़ने देना — सुरक्षित रूप से
जिस क्षण किसी अन्य मशीन को डेटाबेस चाहिए, दो चीज़ें बदल जाती हैं:
- एक स्थिर, रूट योग्य पता — एक समर्पित-IPv4 प्लान (Small-IP $16, Medium-IP $20)। NAT प्लान एक आउटबाउंड IP साझा करते हैं, आउटबाउंड के लिए ठीक पर एक ऐसा डेटाबेस होने के लिए नहीं जिसे दूसरे डायल करते हैं।
- कड़ा फ़ायरवॉल। 5432 केवल विशिष्ट क्लाइंट IP के लिए खोलें, कभी
0.0.0.0/0नहीं, और TLS अनिवार्य करें। सार्वजनिक इंटरनेट पर एक खुला Postgres पोर्ट मिनटों में मिल जाता है — इसे UFW फ़ायरवॉल से बंद करें।
बैकअप आपका काम है
स्वयं-होस्टिंग का मतलब है बैकअप आप पर हैं, और नियम है: उन्हें ज़रूरत पड़ने से पहले करें। लॉजिकल बैकअप के लिए cron पर pg_dump, या जिस चीज़ की आप परवाह करते हैं उस पर पॉइंट-इन-टाइम रिकवरी के लिए WAL आर्काइविंग। डंप को मशीन से बाहर भेजें, और कम-से-कम एक बार रिस्टोर टेस्ट करें — एक बैकअप जिसे आपने कभी रिस्टोर नहीं किया, वह एक उम्मीद है, बैकअप नहीं। यदि आप इसे स्वयं नहीं चलाना चाहते तो एक प्रबंधित-बैकअप ऐड-ऑन उपलब्ध है।
PostgreSQL के लिए EQVPS क्यों
- पूर्ण root, सुपरयूज़र, आपका कॉन्फ़िग — $8/माह से, NVMe (RAID1) जो तब मायने रखता है जब एक डेटाबेस और उसका WAL एक साथ लिखते हैं।
- कोई KYC नहीं, क्रिप्टो भुगतान। पंजीकरण के लिए ईमेल, भुगतान के लिए USDC/USDT।
- EU (जर्मनी, फ़िनलैंड), ~60 सेकंड में root। अपना स्कीमा लाएँ और चलें।
सामान्य डेटाबेस यूज़-केस (Postgres/Redis अवलोकन) → · स्केल पर स्वयं-होस्टेड RAG →
टिप्पणियाँ
अभी तक कोई टिप्पणी नहीं। पहले बनें।