[{"data":1,"prerenderedAt":211},["ShallowReactive",2],{"seo-verification":3,"blog-heberger-clickhouse-vps-ma-fr":6,"promo-bar-likely":210},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-heberger-clickhouse-vps-ma-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":35,"sections":36,"ctaTitle":129,"ctaBody":130,"ctaButton":131,"ctaUrl":132,"relatedPosts":133},64,"heberger-clickhouse-vps",{"fr":10,"en":12,"ar":13,"es":14},"hosting-clickhouse-on-a-vps","استضافة-clickhouse-على-خادم-vps","alojar-clickhouse-en-un-vps","Héberger ClickHouse sur un VPS","Hébergez ClickHouse sur votre VPS : base analytique en colonnes pour vos logs, métriques et dashboards. Guide Docker, tuning mémoire et SSL.",9,0,false,"2026-04-17T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},6,"Bases de données","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-clickhouse-vps-poster.svg",{"categorySlug":25,"appSlug":34},"clickhouse","ClickHouse est une base de données analytique orientée colonnes, capable d'agréger des milliards de lignes en quelques millisecondes. C'est l'outil de référence pour le reporting, l'analyse de logs et les dashboards temps réel, et il s'auto-héberge très bien sur un VPS correctement dimensionné. Voici comment le déployer avec Docker, le sécuriser et le configurer pour des performances optimales.",[37,41,51,54,76,79,82,85,88,91,126],{"type":38,"title":39,"body":40},"h2","Pourquoi auto-héberger ClickHouse sur un VPS","ClickHouse excelle sur les requêtes analytiques (OLAP) : grâce à son stockage en colonnes et sa compression agressive, il peut scanner des téraoctets sur du matériel modeste là où une base relationnelle classique s'effondrerait. L'auto-héberger sur un VPS vous évite les coûts au volume de requêtes des offres managées (ClickHouse Cloud, BigQuery) et vous donne la maîtrise complète du schéma, des moteurs de table et de la rétention. C'est particulièrement pertinent pour ingérer vos propres logs applicatifs, métriques produit ou événements analytics sans envoyer vos données à un tiers. Comme ClickHouse compresse souvent les données d'un facteur 5 à 10, un VPS avec un disque SSD raisonnable peut stocker des centaines de millions d'événements. Vous gardez aussi le contrôle sur la latence : vos dashboards interrogent une instance proche de vos utilisateurs plutôt qu'un service distant.",{"type":42,"title":43,"items":44},"ul","Les bénéfices concrets du self-hosting de ClickHouse",[45,46,47,48,49,50],"Requêtes analytiques extrêmement rapides : agrégations sur des centaines de millions de lignes en sous-seconde.","Compression colonne de 5x à 10x qui réduit drastiquement le coût de stockage de vos logs et événements.","Ingestion massive : des centaines de milliers de lignes par seconde sur un seul nœud bien réglé.","Compatible SQL et avec de nombreux connecteurs (Grafana, Metabase, clients HTTP et natifs).","Souveraineté analytique : vos logs et métriques produit restent sur votre infrastructure.","Pas de facturation à la requête : un coût VPS fixe pour un volume analytique élevé.",{"type":38,"title":52,"body":53},"Prérequis matériels et logiciels","ClickHouse aime la RAM et le disque rapide. Le minimum absolu est 2 Go de RAM pour un environnement de test ou de développement, mais 4 Go constituent le plancher recommandé pour une charge de production légère, et 8 Go offrent une marge bien plus saine pour les agrégations volumineuses et les marques (`mark cache`). En dessous, vous rencontrerez rapidement des erreurs OOM dès que vous interrogez plusieurs millions de lignes. Côté CPU, 2 vCPU permettent d'exploiter le parallélisme de ClickHouse sur des requêtes simples ; 4 vCPU deviennent nécessaires dès que vous lancez des agrégations ou des jointures sur des tables denses. Le disque est le facteur le plus critique : un SSD NVMe est obligatoire — ClickHouse génère une I\u002FO intense lors des merges de partitions et des requêtes de scan ; un disque rotatif HDD plafonne immédiatement les performances même sur un petit volume. Prévoyez au minimum 50 Go pour démarrer, et augmentez selon votre rétention sachant que la compression réduit l'empreinte réelle d'un facteur 5 à 10. Deux ports sont à connaître : le port 8123 pour l'interface HTTP (utilisé par les connecteurs Grafana, Metabase, curl) et le port 9000 pour le protocole TCP natif (utilisé par les clients ClickHouse en Go, Python, ou `clickhouse-client`). N'exposez jamais le port 9000 directement sur Internet sans filtrage réseau.",{"type":55,"title":56,"steps":57},"steps","Déployer ClickHouse étape par étape",[58,61,64,67,70,73],{"title":59,"body":60},"Préparer le VPS","Installez Docker, augmentez les limites système (`ulimit -n` à 262144) car ClickHouse ouvre beaucoup de descripteurs de fichiers. Désactivez le swap excessif et vérifiez que le disque est bien en SSD NVMe.",{"title":62,"body":63},"Lancer ClickHouse via Docker","Utilisez l'image officielle `clickhouse\u002Fclickhouse-server`. Montez trois volumes persistants : `\u002Fvar\u002Flib\u002Fclickhouse` (données), `\u002Fvar\u002Flog\u002Fclickhouse-server` (logs) et un dossier de configuration `\u002Fetc\u002Fclickhouse-server\u002Fconfig.d`. Ajoutez `ulimits: nofile: 262144` dans le compose.",{"title":65,"body":66},"Créer un utilisateur et un mot de passe","Ne laissez jamais l'utilisateur `default` sans mot de passe. Créez un fichier `users.d\u002Fcustom.xml` avec un utilisateur dédié, un mot de passe hashé (`echo -n motdepasse | sha256sum`) et des quotas. Restreignez `\u003Cnetworks>` aux IP autorisées.",{"title":68,"body":69},"Régler la mémoire et le profil","Dans `config.d`, fixez `max_server_memory_usage_to_ram_ratio` à 0.8 et définissez un `max_memory_usage` par requête adapté à votre VPS pour éviter les OOM. Activez la rétention des partitions avec un TTL sur vos tables (`TTL date + INTERVAL 90 DAY`).",{"title":71,"body":72},"Exposer l'interface HTTP derrière un reverse proxy","ClickHouse expose une API HTTP sur le port `8123`. Placez Nginx ou Caddy devant pour le TLS et l'authentification supplémentaire, et n'ouvrez pas le port natif `9000` au public. Réservez l'accès natif au réseau interne ou via tunnel SSH.",{"title":74,"body":75},"Connecter un outil de visualisation","Branchez Grafana ou Metabase sur l'endpoint HTTPS pour construire vos dashboards. Créez vos tables avec le moteur `MergeTree`, choisissez une `ORDER BY` pertinente et partitionnez par mois pour des requêtes et une purge efficaces.",{"type":38,"title":77,"body":78},"Configuration post-installation : utilisateurs, base de données et compression","Une fois ClickHouse lancé, trois gestes de configuration consolident la sécurité et les performances. D'abord, créez une base de données dédiée via `CREATE DATABASE analytics;` dans la console SQL ou via l'API HTTP. Évitez d'écrire directement dans la base `default` — un espace de nommage propre facilite les backups, les quotas et la gestion des permissions. Ensuite, définissez vos utilisateurs dans un fichier `users.d\u002Fproduction.xml` plutôt que dans `users.xml` principal : ce découpage permet de recharger les utilisateurs sans redémarrer le serveur (`SYSTEM RELOAD USERS`). Spécifiez pour chaque utilisateur un profil (`\u003Cprofile>default\u003C\u002Fprofile>`), un quota (`\u003Cquota>default\u003C\u002Fquota>`) et une liste réseau (`\u003Cnetworks>\u003Cip>10.0.0.0\u002F8\u003C\u002Fip>\u003C\u002Fnetworks>`). Enfin, activez la compression LZ4 dans `config.d\u002Fcompression.xml` : c'est le codec par défaut de ClickHouse pour les colonnes, mais le définir explicitement garantit son application sur toutes les tables y compris celles créées avant la modification. LZ4 offre un bon équilibre entre taux de compression et vitesse de décompression à la lecture — pour un stockage encore plus compact au détriment d'un CPU légèrement plus sollicité, ZSTD (niveau 1 à 3) est une alternative viable sur les colonnes rarement requêtées.",{"type":38,"title":80,"body":81},"Cas d'usage concrets : logs applicatifs et métriques time-series","ClickHouse est une alternative naturelle à Elasticsearch pour les pipelines de logs analytiques. Là où Elasticsearch indexe chaque champ de chaque document en JSON et consomme une mémoire de JVM importante, ClickHouse stocke chaque colonne séparément et compresse les valeurs répétitives (niveau de log, hostname, service) de façon extrêmement efficace. Pour un pipeline de logs, créez une table `logs` avec un moteur `MergeTree` partitionné par jour (`PARTITION BY toDate(timestamp)`) et trié par `(service, timestamp)`. Ingérez via l'API HTTP en INSERT batch (voir la section performance ci-dessous) ou via Vector.dev, Fluent Bit ou Filebeat qui disposent tous d'un output ClickHouse natif. Pour les métriques time-series, le moteur `MergeTree` avec une `ORDER BY (metric_name, timestamp)` convient pour des volumes modérés. À plus grande échelle, le moteur `AggregatingMergeTree` permet de pré-agréger les données au merge, réduisant encore l'empreinte et accélérant les requêtes de tendances (`avg`, `quantile`, `count`). Une requête typique sur 500 millions de lignes filtrées par un intervalle de temps et groupées par service s'exécute en 2 à 8 secondes sur un VPS 4 vCPU \u002F 8 Go selon l'index — souvent nettement plus rapide que les bases OLTP pour l'analytique qu'une base relationnelle standard.",{"type":38,"title":83,"body":84},"Performance : inserts en batch et surveillance des parts","Le comportement d'écriture de ClickHouse est fondamentalement différent des bases OLTP. Chaque INSERT crée une nouvelle part sur le disque, et ClickHouse fusionne ces parts en arrière-plan (merge). Si vous insérez ligne par ligne ou en petits lots (moins de 1000 lignes), vous inondez le système de petites parts — le merge ne suit plus, les performances se dégradent et vous obtenez l'erreur `Too many parts` (au-delà de 300 parts actives par partition). La règle d'or est d'insérer par lots de 10 000 à 100 000 lignes minimum, et d'espacer les insertions d'au moins une seconde si vous insérez en continu depuis plusieurs sources. Depuis un script Python, utilisez `clickhouse-driver` ou `clickhouse-connect` avec l'option `insert_block_size` pour contrôler la taille des blocs. Depuis Node.js, le client officiel `@clickhouse\u002Fclient` expose une API de streaming qui construit les batches automatiquement. Surveillez la santé des parts en temps réel avec `SELECT table, count() as parts, sum(rows) FROM system.parts WHERE active GROUP BY table ORDER BY parts DESC` — si une table dépasse 100 parts actives, c'est un signal d'alerte.",{"type":38,"title":86,"body":87},"Dépannage des erreurs fréquentes","Trois erreurs reviennent régulièrement lors du déploiement de ClickHouse sur un VPS. **Too many parts** : vous insérez en trop petits lots ; regroupez vos inserts, ajoutez un buffer applicatif, ou utilisez le moteur `Buffer` comme table intermédiaire qui vide automatiquement vers la table principale. **Erreur OOM (Killed, Memory limit exceeded)** : la requête a consommé plus de RAM que `max_memory_usage` le permet. Augmentez ce paramètre dans le profil utilisateur, ajoutez la clause `LIMIT` à vos requêtes exploratoires, ou passez à un VPS avec plus de RAM. Une requête sans filtre sur une table de plusieurs milliards de lignes peut consommer plusieurs Go en une seconde. **Permission denied sur `\u002Fvar\u002Flib\u002Fclickhouse`** : l'utilisateur système `clickhouse` (UID 101 dans l'image Docker officielle) n'a pas les droits en écriture sur le volume monté. Lors du premier démarrage, exécutez `chown -R 101:101 \u002Fvotre\u002Fchemin\u002Fclickhouse-data` sur l'hôte avant de lancer le conteneur. Si ClickHouse a démarré mais ne répond pas sur le port 8123, vérifiez les logs avec `docker logs \u003Cnom-du-conteneur>` — l'erreur de permission y est explicitement affichée.",{"type":38,"title":89,"body":90},"L'installer en un clic depuis le Marketplace ServOrbit","Tout ce qui précède se fait à la main, et c'est utile de savoir le faire. Si vous préférez ne pas le faire, ClickHouse figure au Marketplace ServOrbit et s'installe sur votre VPS en un clic. Le modèle déploie la version 26.3 LTS épinglée, monte les volumes persistants pour les données et les journaux, porte la limite de descripteurs de fichiers à 262144 comme l'exige ClickHouse, et crée une base `analytics` au premier démarrage. Il ferme surtout le piège le plus courant du déploiement manuel : l'image d'origine livre un compte `default` sans aucun mot de passe, et l'installation le retire au démarrage pour le remplacer par un compte `admin` dont le mot de passe est généré pour votre serveur et affiché dans votre espace client. Seul le port 8123 est publié, et uniquement sur la boucle locale : attachez un domaine et la console SQL intégrée répond sur `https:\u002F\u002F\u003Cvotre-domaine>\u002Fplay` avec son certificat TLS ; sans domaine, passez par un tunnel `ssh -L 8123:127.0.0.1:8123 root@\u003Cip-du-vps>` puis `http:\u002F\u002Flocalhost:8123\u002Fplay`.",{"type":92,"title":93,"rows":94,"headers":121},"comparison","ClickHouse vs Elasticsearch pour les logs : quelle base choisir ?",[95,100,104,108,112,116],[96,97,98,99],"Stockage par Go de logs","ClickHouse","Elasticsearch","ClickHouse (compression 5-10x vs 1-2x)",[101,102,103,97],"Requêtes analytiques (agrégats, tendances)","Quelques secondes sur 500M lignes","Minutes ou dégradation",[105,106,107,98],"Recherche full-text dans les messages","Limitée (LIKE, token BF)","Native et performante",[109,110,111,97],"RAM requise pour démarrer","2 Go minimum","4-8 Go minimum (JVM)",[113,114,115,98],"Ingestion en temps réel (streaming)","Batch recommandé","Natif et optimisé",[117,118,119,120],"Connecteurs Grafana \u002F BI","Plugin natif ClickHouse","Plugin Elasticsearch","Équivalent",[122,123,124,125],"Backend","a","b","verdict",{"type":127,"body":128},"tip","Le choix de la clé de tri (`ORDER BY`) du moteur MergeTree est le facteur décisif de performance : placez en premier les colonnes les plus filtrées dans vos requêtes (souvent une date et un identifiant). Utilisez les tables `Buffer` ou des inserts par lots de plusieurs milliers de lignes plutôt que des insertions ligne par ligne, qui créent une multitude de petites partitions et déclenchent des merges coûteux. Surveillez `system.merges` et `system.parts` pour détecter une fragmentation excessive.","Déployez ClickHouse en un clic sur un VPS ServOrbit","Version 26.3 LTS épinglée, volumes persistants, compte administrateur généré : l'entrepôt analytique prêt à recevoir vos événements.","Voir la fiche ClickHouse","\u002Fapplications\u002Fbases-de-donnees\u002Fclickhouse",[134,152,169,187],{"id":135,"slug":136,"slugs":137,"title":141,"excerpt":142,"readTime":17,"views":143,"isPinned":19,"noindex":19,"publishedAt":144,"updatedAt":145,"category":146,"categories":147,"featuredImage":30,"bgImage":31,"posterImage":149,"relatedSolution":150},56,"heberger-postgresql-vps",{"fr":136,"en":138,"ar":139,"es":140},"postgresql-on-a-vps-a-reliable-and-controlled-database","postgresql-على-خادم-vps-قاعدة-بيانات-موثوقة-ومتحكم-بها","alojar-postgresql-en-un-vps","PostgreSQL sur VPS : base fiable et contrôlée","Hébergez PostgreSQL sur VPS : configuration prod, sauvegardes pgBackRest, haute disponibilité streaming, comparatif RDS\u002FSupabase\u002FNeon et dépannage OOM.",1,"2026-04-25T00:00:00+00:00","2026-10-21T15:21:37+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[148],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-postgresql-vps-poster.svg",{"categorySlug":25,"appSlug":151},"postgresql-stack",{"id":153,"slug":154,"slugs":155,"title":159,"excerpt":160,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":161,"updatedAt":162,"category":163,"categories":164,"featuredImage":30,"bgImage":31,"posterImage":166,"relatedSolution":167},57,"heberger-mysql-vps",{"fr":154,"en":156,"ar":157,"es":158},"hosting-mysql-on-a-vps","استضافة-mysql-على-خادم-vps","alojar-mysql-en-un-vps","Héberger MySQL sur un VPS : guide complet","Installez MySQL 8.4 LTS sur un VPS : prérequis, sécurisation, performances InnoDB, accès distant sécurisé, sauvegardes automatisées et dépannage.","2026-04-24T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[165],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-mysql-vps-poster.svg",{"categorySlug":25,"appSlug":168},"mysql-stack",{"id":170,"slug":171,"slugs":172,"title":176,"excerpt":177,"readTime":178,"views":18,"isPinned":19,"noindex":19,"publishedAt":179,"updatedAt":180,"category":181,"categories":182,"featuredImage":30,"bgImage":31,"posterImage":184,"relatedSolution":185},58,"heberger-redis-vps",{"fr":171,"en":173,"ar":174,"es":175},"hosting-redis-on-a-vps","استضافة-redis-على-خادم-vps","alojar-redis-en-un-vps","Héberger Redis sur un VPS : guide complet","Déployez Redis sur votre VPS Cloud : prérequis RAM\u002FCPU, sécurité (ACL, TLS), persistance RDB\u002FAOF, dépannage et haute disponibilité.",10,"2026-04-23T00:00:00+00:00","2026-09-08T21:59:59+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[183],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-redis-vps-poster.svg",{"categorySlug":25,"appSlug":186},"redis-stack",{"id":188,"slug":189,"slugs":190,"title":194,"excerpt":195,"readTime":17,"views":196,"isPinned":19,"noindex":19,"publishedAt":197,"updatedAt":198,"category":199,"categories":205,"featuredImage":30,"bgImage":31,"posterImage":207,"relatedSolution":208},168,"self-host-metabase-vps",{"fr":189,"en":191,"ar":192,"es":193},"how-to-self-host-metabase-on-a-vps-open-source-bi-dashboards","استضافة-metabase-على-vps-لوحات-ذكاء-أعمال-مفتوحة-المصدر","alojar-metabase-en-un-vps","Héberger Metabase sur un VPS : tableaux de bord BI open source","Déployez Metabase sur votre VPS : connectez n'importe quelle base SQL et construisez tableaux de bord et graphiques dans le navigateur, avec un Postgres compagnon.",4,"2026-07-06T00:00:00+00:00","2026-10-20T23:18:08+00:00",{"id":200,"name":201,"slug":202,"color":203,"icon":204},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[206],{"id":200,"name":201,"slug":202,"color":203,"icon":204},"\u002Fblog\u002Fcovers\u002Fself-host-metabase-vps-poster.svg",{"categorySlug":25,"appSlug":209},"metabase",true,1794270714019]