Det finns ett ögonblick där hanterad PostgreSQL slutar vara bekväm: du vill ha ett tillägg som nivån inte erbjuder, du vill se den verkliga frågeplanen och justera work_mem, du vill ha superuser. När du vill äga Postgres — konfigurationen, versionen, tilläggen, säkerhetskopieringsschemat — är en VPS med full root det ärliga svaret. Detta är den PostgreSQL-specifika uppsättningen; för den bredare bilden "självhosta en databas" (Postgres vs Redis, var en delad maskin är fel) se det allmänna databasanvändningsfallet.
Varför självhosta PostgreSQL
På din egen maskin får du det som hanterade nivåer ransonerar:
- Hela
postgresql.conf—shared_buffers,work_mem,max_connections, WAL-inställningar, avstämda mot din arbetsbelastning, inte en leverantörs standard. - Vilket tillägg som helst.
pgvectorför embeddings,PostGISför geospatialt,TimescaleDBför tidsserier,pg_cron,pg_stat_statements— installera det du behöver. Det är här en hanterad nivå oftast säger nej. - Din huvudversion, uppgraderad på ditt schema, inte leverantörens.
- Superuser och operativsystemet under — flytta datakatalogen, justera kärnan, kör streaming-replikering till en andra maskin.
Om pgvector är anledningen till att du är här, notera att Postgres plus pgvector är ett komplett vektorlager på en maskin — samma byggsten bakom en självhostad RAG-stack och agentminne.
Sätt upp det (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;"
Bunden till 127.0.0.1 betjänar den en app på samma maskin utan att exponera något. För att släppa in andra servrar — det är nästa avsnitt.
Låta andra servrar ansluta — säkert
I det ögonblick en annan maskin behöver databasen ändras två saker:
- En stabil, routbar adress — ett plan med dedikerad IPv4 (Small-IP $16, Medium-IP $20). NAT-plan delar en utgående IP, bra för utgående men inte för att vara en databas som andra ringer upp.
- Brandvägg hårt. Öppna 5432 endast för de specifika klient-IP:n, aldrig
0.0.0.0/0, och kräv TLS. En öppen Postgres-port på det publika internet hittas på minuter — lås den med en UFW-brandvägg.
Säkerhetskopior är ditt jobb
Självhosting innebär att säkerhetskopior ligger på dig, och regeln är: gör dem innan du behöver dem. pg_dump på en cron för logiska säkerhetskopior, eller WAL-arkivering för point-in-time-återställning på allt du bryr dig om. Skeppa dumparna bort från maskinen och testa en återställning minst en gång — en säkerhetskopia du aldrig återställt är ett hopp, inte en säkerhetskopia. Ett tillägg för hanterade säkerhetskopior finns om du hellre inte kör det själv.
Varför EQVPS för PostgreSQL
- Full root, superuser, din konfiguration — från $8/mån, NVMe (RAID1) som spelar roll så snart en databas och dess WAL skriver samtidigt.
- Ingen KYC, kryptobetalning. E-post för att registrera, USDC/USDT för att betala.
- EU (Tyskland, Finland), root på ~60 sekunder. Ta med ditt schema och kör.
Allmänt databasanvändningsfall (Postgres/Redis-översikt) → · Självhostad RAG i skala →
Kommentarer
Inga kommentarer än. Bli först.