[{"data":1,"prerenderedAt":117},["ShallowReactive",2],{"seo-verification":3,"blog-heberger-elasticsearch-vps-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":21,"featuredImage":23,"bgImage":24,"posterImage":25,"relatedSolution":26,"intro":28,"sections":29,"ctaTitle":72,"ctaBody":73,"ctaButton":74,"ctaUrl":75,"relatedPosts":76},69,"heberger-elasticsearch-vps","Hosting Elasticsearch on a VPS","Install Elasticsearch on your VPS: full-text indexing, aggregations and centralized logs in Docker, with security and SSL.",8,353,false,"2026-04-12T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},6,"Databases","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[22],{"id":16,"name":17,"slug":18,"color":19,"icon":20},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-elasticsearch-vps-poster.svg",{"categorySlug":18,"appSlug":27},"elasticsearch","Elasticsearch remains the reference for advanced full-text search, aggregations and large-scale log analysis. Self-hosted on a properly sized VPS, it gives you power that managed offerings charge a premium for. Here is a production-ready deployment.",[30,34,44,47,69],{"type":31,"title":32,"body":33},"h2","Why self-host Elasticsearch on a VPS","Elasticsearch shines where simple search no longer suffices: fine scoring, nested aggregations, multilingual analysis, geo-queries, and the ELK stack to centralize your logs. Managed cloud offerings (Elastic Cloud, OpenSearch Service) quickly become costly once you exceed a few gigabytes indexed. On your VPS, you control the version, the analysis plugins (such as the French analyzer or ICU), the retention of your logs, and you avoid outbound transfer fees. It is also the way to keep sensitive data strictly on your infrastructure.",{"type":35,"title":36,"items":37},"ul","The benefits of an in-house Elasticsearch",[38,39,40,41,42,43],"Advanced full-text search: BM25 scoring, synonyms, custom linguistic analyzers","Complex aggregations and facets for e-commerce or analytics","A complete ELK stack (Logstash\u002FBeats + Kibana) to centralize your logs at no extra cost","Full control of the version, plugins and index lifecycle policies","No billing per indexed volume or egress fees","Snapshots to your own object storage for disaster recovery",{"type":31,"title":45,"body":46},"Realistic prerequisites","Elasticsearch runs on a JVM and is RAM-hungry: do not go below 4 GB for a test, aim for 8 GB (2-4 vCPU) for light production use, and 16 GB as soon as you index several million documents or add Kibana. Set the JVM heap to 50% of RAM (without exceeding 32 GB). On the system side, increase `vm.max_map_count=262144`, disable swap, provide a fast SSD, Docker + Compose, and an `es.yourdomain.com` subdomain.",{"type":48,"title":49,"steps":50},"steps","Step-by-step deployment",[51,54,57,60,63,66],{"title":52,"body":53},"Prepare the kernel and the system","First of all: `sysctl -w vm.max_map_count=262144` (and persist it in `\u002Fetc\u002Fsysctl.conf`). Disable swap or reserve memory with `bootstrap.memory_lock=true`. These settings prevent crashes at startup.",{"title":55,"body":56},"Define the Docker service with a controlled heap","In `docker-compose.yml`, use `docker.elastic.co\u002Felasticsearch\u002Felasticsearch:8.13.0`, set `ES_JAVA_OPTS=-Xms4g -Xmx4g`, mount a named volume for `\u002Fusr\u002Fshare\u002Felasticsearch\u002Fdata` and expose port 9200 only on `127.0.0.1`.",{"title":58,"body":59},"Enable native security","Since 8.x, TLS security is enabled by default. Run `docker compose up -d`, then generate the `elastic` password with `bin\u002Felasticsearch-reset-password -u elastic`. Keep it in a secrets manager.",{"title":61,"body":62},"Expose via HTTPS reverse proxy","Place Nginx or Caddy in front of port 9200 to serve `es.yourdomain.com` over public HTTPS, with additional basic authentication on the proxy side if the API must be reached from outside.",{"title":64,"body":65},"Configure snapshots","Register a repository of type `s3` or `fs` (`PUT _snapshot\u002Fbackup`) pointing to an object storage, then create a Snapshot Lifecycle Policy (SLM) for automatic daily backups with retention.",{"title":67,"body":68},"Add Kibana (optional)","Add a `kibana:8.13.0` service in the same Compose, connected to the internal Docker network, and expose it behind the proxy on `kibana.yourdomain.com` to explore your indexes and build dashboards.",{"type":70,"body":71},"tip","Set up Index Lifecycle Management (ILM) policies from the start: hot\u002Fwarm\u002Fcold phases that automatically reduce the number of replicas and force-merge segments on old indexes. On a VPS where disk space is at a premium, this is what prevents your logs from saturating the SSD and keeps queries fast on hot data.","A VPS built for Elasticsearch","Generous RAM, NVMe SSD and adjustable kernel settings: the ServOrbit Cloud VPS gives you the foundation an Elasticsearch JVM requires in production. Docker template available.","Configure my Cloud VPS","\u002Fvps-cloud",[77,90,104],{"id":78,"slug":79,"title":80,"excerpt":81,"readTime":11,"views":82,"isPinned":13,"publishedAt":83,"category":84,"categories":85,"featuredImage":23,"bgImage":24,"posterImage":87,"relatedSolution":88},56,"heberger-postgresql-vps","PostgreSQL on a VPS: a reliable and controlled database","Host PostgreSQL on a VPS: volumes, backups, restricted network access and sound configuration for your applications.",2240,"2026-04-25T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[86],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fheberger-postgresql-vps-poster.svg",{"categorySlug":18,"appSlug":89},"postgresql",{"id":91,"slug":92,"title":93,"excerpt":94,"readTime":95,"views":96,"isPinned":13,"publishedAt":97,"category":98,"categories":99,"featuredImage":23,"bgImage":24,"posterImage":101,"relatedSolution":102},57,"heberger-mysql-vps","Hosting MySQL on a VPS","Host MySQL on your Cloud VPS: Docker deployment, hardening, InnoDB tuning, and automated backups, step by step.",7,509,"2026-04-24T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[100],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fheberger-mysql-vps-poster.svg",{"categorySlug":18,"appSlug":103},"mysql",{"id":105,"slug":106,"title":107,"excerpt":108,"readTime":95,"views":109,"isPinned":13,"publishedAt":110,"category":111,"categories":112,"featuredImage":23,"bgImage":24,"posterImage":114,"relatedSolution":115},58,"heberger-redis-vps","Hosting Redis on a VPS","Deploy Redis on your Cloud VPS: ultra-fast cache, sessions, and queues, with persistence, security, and memory tuning.",546,"2026-04-23T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[113],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fheberger-redis-vps-poster.svg",{"categorySlug":18,"appSlug":116},"redis",1785628435801]