Der er et øjeblik, hvor managed PostgreSQL holder op med at være bekvem: du vil have en udvidelse, som niveauet ikke tilbyder, du vil se den ægte query-plan og tune work_mem, du vil have superbruger. Når du vil eje Postgres — konfigurationen, versionen, udvidelserne, backup-skemaet — er en VPS med fuld root det ærlige svar. Dette er den PostgreSQL-specifikke opsætning; for det bredere billede "selv-host en database" (Postgres vs Redis, hvor en delt maskine er forkert) se den generelle database-use-case.
Hvorfor selv-hoste PostgreSQL
På din egen maskine får du det, managed niveauer rationerer:
- Hele
postgresql.conf—shared_buffers,work_mem,max_connections, WAL-indstillinger, afstemt til din arbejdsbelastning, ikke en leverandørs standard. - Enhver udvidelse.
pgvectortil embeddings,PostGIStil geospatialt,TimescaleDBtil tidsserier,pg_cron,pg_stat_statements— installér, hvad du har brug for. Her siger et managed niveau oftest nej. - Din hovedversion, opgraderet på dit skema, ikke udbyderens.
- Superbruger og operativsystemet nedenunder — flyt datamappen, tune kernen, kør streaming-replikering til en anden maskine.
Hvis pgvector er grunden til, at du er her, så bemærk, at Postgres plus pgvector er en komplet vektorlager på én maskine — den samme byggeklods bag en selv-hostet RAG-stak og agent-hukommelse.
Sæt det op (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;"
Bundet til 127.0.0.1 betjener den en app på samme maskine uden at eksponere noget. For at lukke andre servere ind — det er næste afsnit.
Lade andre servere forbinde — sikkert
I det øjeblik en anden maskine har brug for databasen, ændrer to ting sig:
- En stabil, rutbar adresse — en plan med dedikeret IPv4 (Small-IP $16, Medium-IP $20). NAT-planer deler en udgående IP, fint til udgående, men ikke til at være en database, som andre ringer op til.
- Firewall hårdt. Åbn 5432 kun for de specifikke klient-IP'er, aldrig
0.0.0.0/0, og kræv TLS. En åben Postgres-port på det offentlige internet findes på minutter — lås den med en UFW-firewall.
Backups er dit job
Selv-hosting betyder, at backups er op til dig, og reglen er: lav dem, før du får brug for dem. pg_dump på en cron til logiske backups, eller WAL-arkivering til point-in-time-gendannelse på alt, du bekymrer dig om. Send dumpsene væk fra maskinen, og test en gendannelse mindst én gang — en backup, du aldrig har gendannet, er et håb, ikke en backup. Et managed-backup-add-on er tilgængeligt, hvis du hellere ikke vil køre det selv.
Hvorfor EQVPS til PostgreSQL
- Fuld root, superbruger, din konfiguration — fra $8/md, NVMe (RAID1) der betyder noget, så snart en database og dens WAL skriver samtidig.
- Ingen KYC, kryptobetaling. E-mail for at registrere, USDC/USDT for at betale.
- EU (Tyskland, Finland), root på ~60 sekunder. Tag dit skema med og kør.
Generel database-use-case (Postgres/Redis-overblik) → · Selv-hostet RAG i skala →
Kommentarer
Ingen kommentarer endnu. Vær den første.