Kuna wakati ambapo PostgreSQL inayosimamiwa inaacha kuwa rahisi: unataka kiendelezi ambacho ngazi haitoi, unataka kuona mpango halisi wa query na kurekebisha work_mem, unataka superuser. Unapotaka kumiliki Postgres — usanidi, toleo, viendelezi, ratiba ya nakala za akiba — VPS yenye root kamili ndiyo jibu la uaminifu. Huu ni usanidi mahsusi wa PostgreSQL; kwa picha pana ya "jiwekee database mwenyewe" (Postgres dhidi ya Redis, wapi mashine ya kushirikiwa ni kosa), angalia matumizi ya jumla ya database.
Kwa nini kujiwekea PostgreSQL mwenyewe
Kwenye mashine yako mwenyewe unapata kile ngazi zinazosimamiwa zinachogawa kwa mgao:
postgresql.confnzima —shared_buffers,work_mem,max_connections, mipangilio ya WAL, iliyorekebishwa kulingana na mzigo wako, si chaguo-msingi la muuzaji.- Kiendelezi chochote.
pgvectorkwa embedding,PostGISkwa geospatial,TimescaleDBkwa mfululizo wa muda,pg_cron,pg_stat_statements— sakinisha unachohitaji. Hapa ndipo ngazi inayosimamiwa mara nyingi husema hapana. - Toleo lako kuu, lililoboreshwa kwa ratiba yako, si ya mtoa huduma.
- Superuser na OS iliyo chini yake — hamisha saraka ya data, rekebisha kernel, endesha replication ya kutiririka hadi mashine ya pili.
Ikiwa pgvector ndiyo sababu ya kuwa hapa, tambua kwamba Postgres-pamoja-na-pgvector ni hifadhi kamili ya vekta kwenye mashine moja — kizuizi kilekile cha ujenzi nyuma ya stack ya RAG ya self-host na kumbukumbu ya wakala.
Iweke (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;"
Ikiwa imefungwa kwa 127.0.0.1, inahudumia app kwenye mashine ileile bila kufichua chochote. Kuruhusu seva nyingine ndani, hicho ni kifungu kinachofuata.
Kuruhusu seva nyingine kuunganisha — kwa usalama
Wakati mashine nyingine inapohitaji database, mambo mawili yanabadilika:
- Anwani thabiti, inayoweza kurutwa — mpango wa IPv4 maalum (Small-IP $16, Medium-IP $20). Mipango ya NAT hushiriki IP ya kutoka, sawa kwa kutoka lakini si kuwa database ambayo wengine wanaipigia simu.
- Firewall kwa ukali. Fungua 5432 tu kwa IP mahsusi za mteja, kamwe si
0.0.0.0/0, na lazimisha TLS. Bandari ya Postgres iliyo wazi kwenye intaneti ya umma inapatikana ndani ya dakika — ifunge kwa firewall ya UFW.
Nakala za akiba ni kazi yako
Self-hosting inamaanisha nakala za akiba ziko juu yako, na sheria ni: zifanye kabla ya kuzihitaji. pg_dump kwenye cron kwa nakala za kimantiki, au uwekaji kumbukumbu wa WAL kwa urejeshaji wa wakati mahususi kwa chochote unachojali. Peleka dump nje ya mashine, na jaribu urejeshaji angalau mara moja — nakala usiyowahi kuirejesha ni tumaini, si nakala. Nyongeza ya nakala za akiba zinazosimamiwa inapatikana ikiwa ungependelea usiiendeshe mwenyewe.
Kwa nini EQVPS kwa PostgreSQL
- Root kamili, superuser, usanidi wako — kuanzia $8/mwezi, NVMe (RAID1) inayohusika mara database na WAL yake vinapoandika kwa pamoja.
- Hakuna KYC, malipo ya kripto. Barua pepe kujisajili, USDC/USDT kulipa.
- EU (Ujerumani, Finland), root ndani ya ~sekunde 60. Leta schema yako na uende.
Matumizi ya jumla ya database (muhtasari wa Postgres/Redis) → · RAG ya self-host kwa kiwango →
Maoni
Bado hakuna maoni. Kuwa wa kwanza.