Il y a un moment où PostgreSQL managé cesse d'être pratique : vous voulez une extension que l'offre ne propose pas, vous voulez voir le vrai plan de requête et régler work_mem, vous voulez le superutilisateur. Quand vous voulez posséder Postgres — la config, la version, les extensions, le calendrier de sauvegarde — un VPS avec root complet est la réponse honnête. Voici la configuration spécifique à PostgreSQL ; pour le tableau plus large « auto-héberger une base de données » (Postgres vs Redis, où une machine partagée est un mauvais choix), voyez le cas d'usage base de données général.
Pourquoi auto-héberger PostgreSQL
Sur votre propre machine, vous obtenez ce que les offres managées rationnent :
- Tout le
postgresql.conf—shared_buffers,work_mem,max_connections, paramètres WAL, réglés à votre charge, pas un défaut de fournisseur. - N'importe quelle extension.
pgvectorpour les embeddings,PostGISpour le géospatial,TimescaleDBpour les séries temporelles,pg_cron,pg_stat_statements— installez ce qu'il vous faut. C'est là qu'une offre managée dit le plus souvent non. - Votre version majeure, mise à niveau selon votre calendrier, pas celui du fournisseur.
- Le superutilisateur et l'OS en dessous — déplacez le répertoire de données, réglez le noyau, faites tourner une réplication en streaming vers une seconde machine.
Si pgvector est la raison de votre venue, notez que Postgres-plus-pgvector est un magasin de vecteurs complet sur une seule machine — le même bloc de construction derrière une pile RAG auto-hébergée et la mémoire d'agent.
Configurez-le (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;"
Lié à 127.0.0.1, il sert une application sur la même machine sans rien exposer. Pour laisser entrer d'autres serveurs, c'est la section suivante.
Laisser d'autres serveurs se connecter — en toute sécurité
Dès qu'une autre machine a besoin de la base, deux choses changent :
- Une adresse stable et routable — un plan à IPv4 dédiée (Small-IP 16 $, Medium-IP 20 $). Les plans NAT partagent une IP sortante, bien pour le sortant mais pas pour être une base que d'autres appellent.
- Pare-feu costaud. N'ouvrez 5432 qu'aux IP client spécifiques, jamais
0.0.0.0/0, et exigez TLS. Un port Postgres ouvert sur l'internet public est trouvé en quelques minutes — verrouillez-le avec un pare-feu UFW.
Les sauvegardes sont votre travail
Auto-héberger signifie que les sauvegardes vous incombent, et la règle est : faites-les avant d'en avoir besoin. pg_dump en cron pour des sauvegardes logiques, ou l'archivage WAL pour une récupération à un instant précis sur tout ce qui compte. Expédiez les dumps hors de la machine, et testez une restauration au moins une fois — une sauvegarde jamais restaurée est un espoir, pas une sauvegarde. Un add-on de sauvegardes managées est disponible si vous préférez ne pas le gérer vous-même.
Pourquoi EQVPS pour PostgreSQL
- Root complet, superutilisateur, votre config — à partir de 8 $/mois, NVMe (RAID1) qui compte dès qu'une base et son WAL écrivent en même temps.
- Sans KYC, paiement crypto. E-mail pour s'inscrire, USDC/USDT pour payer.
- UE (Allemagne, Finlande), root en ~60 secondes. Apportez votre schéma et c'est parti.
Cas d'usage base de données général (aperçu Postgres/Redis) → · RAG auto-hébergé à grande échelle →
Commentaires
Pas encore de commentaires. Soyez le premier.