[{"data":1,"prerenderedAt":117},["ShallowReactive",2],{"seo-verification":3,"blog-heberger-typesense-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":20,"featuredImage":22,"bgImage":23,"posterImage":24,"relatedSolution":25,"intro":27,"sections":28,"ctaTitle":71,"ctaBody":72,"ctaButton":73,"ctaUrl":74,"relatedPosts":75},68,"heberger-typesense-vps","Hosting Typesense on a VPS","Deploy Typesense on your Cloud VPS: an instant, fault-tolerant search engine, in Docker with reverse proxy and SSL.",6,316,false,"2026-04-13T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},"Databases","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[21],{"id":11,"name":16,"slug":17,"color":18,"icon":19},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-typesense-vps-poster.svg",{"categorySlug":17,"appSlug":26},"typesense","Typesense is a typo-tolerant open-source search engine, ultra-lightweight and far simpler to operate than Elasticsearch. On a dedicated VPS, you keep control of your data and your costs. Here is how to deploy it cleanly in production.",[29,33,43,46,68],{"type":30,"title":31,"body":32},"h2","Why self-host Typesense on a VPS","Managed search services (Algolia, etc.) bill per query and per indexed document: the bill climbs quickly as soon as your catalogue grows. Typesense offers instant search (p95 latency under 50 ms) with typo tolerance and relevance-based sorting, all in a single binary with no JVM. By deploying it on your own VPS, you set a predictable monthly cost, you keep your user indexes out of a third-party cloud, and you can place your instance as close as possible to your application to minimize network latency.",{"type":34,"title":35,"items":36},"ul","What you gain in concrete terms",[37,38,39,40,41,42],"A fixed cost instead of per-query billing that explodes with traffic","Minimal latency by placing Typesense on the same private network as your app","Fault tolerance and search-as-you-type (typo-tolerance) with no complex tuning","Index data and search logs kept on your infrastructure","A reduced memory footprint: no JVM, a single process to supervise","A simple REST API and scoped API keys (search-only \u002F admin) to secure the front-end",{"type":30,"title":44,"body":45},"Realistic prerequisites","Typesense loads its indexes into memory: size the RAM according to the size of your corpus. For a catalogue of up to a few hundred thousand documents, a 2 vCPU \u002F 4 GB RAM VPS is more than enough. Count on 8 GB beyond a million documents or for vector fields (semantic search). Plan for an SSD for data persistence, Docker and Docker Compose installed, as well as a subdomain such as `search.yourdomain.com` pointing to the VPS IP.",{"type":47,"title":48,"steps":49},"steps","Step-by-step deployment",[50,53,56,59,62,65],{"title":51,"body":52},"Prepare the VPS and Docker","Update the system, install Docker and the Compose plugin, then create a dedicated folder: `mkdir -p \u002Fopt\u002Ftypesense\u002Fdata`. This volume will host the indexes persisted on the SSD.",{"title":54,"body":55},"Define the service with a strong API key","In a `docker-compose.yml`, declare the `typesense\u002Ftypesense:0.25.2` image, mount `\u002Fopt\u002Ftypesense\u002Fdata:\u002Fdata`, expose port 8108 locally only (`127.0.0.1:8108`) and pass `--api-key` via a variable generated with `openssl rand -base64 32`.",{"title":57,"body":58},"Launch and check health","Start with `docker compose up -d` then test: `curl http:\u002F\u002F127.0.0.1:8108\u002Fhealth` should return `{\"ok\":true}`. Then create a first collection via the REST API to validate indexing.",{"title":60,"body":61},"Place a reverse proxy + SSL","Configure Nginx (or Caddy) to expose `search.yourdomain.com` to `127.0.0.1:8108`. With Caddy, a simple `reverse_proxy 127.0.0.1:8108` block generates the Let's Encrypt certificate automatically; with Nginx, use `certbot --nginx`.",{"title":63,"body":64},"Compartmentalize the API keys","Never distribute the admin key on the browser side. Generate a `search-only` scoping key (`actions: documents:search`) and expose only that one in your JavaScript front-end.",{"title":66,"body":67},"Automate backups","Schedule a `docker exec` of the `\u002Foperations\u002Fsnapshot` endpoint or a `tar` of the `\u002Fopt\u002Ftypesense\u002Fdata` volume pushed each night to a remote object storage.",{"type":69,"body":70},"tip","Enabling a single node in persistent mode is enough for most projects, but if your search becomes critical, set up a 3-node Raft cluster (`--nodes`) across 3 VPS for high availability: Typesense handles replication itself and automatically fails over the leader in case of failure, with no application-level load balancer on the write side.","Deploy Typesense in minutes","The ServOrbit Cloud VPS comes with Docker preconfigured and a low-latency private network, ideal for running Typesense alongside your application. Ready-to-use templates included.","Launch my Cloud VPS","\u002Fvps-cloud",[76,90,104],{"id":77,"slug":78,"title":79,"excerpt":80,"readTime":81,"views":82,"isPinned":13,"publishedAt":83,"category":84,"categories":85,"featuredImage":22,"bgImage":23,"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.",8,2240,"2026-04-25T00:00:00+00:00",{"id":11,"name":16,"slug":17,"color":18,"icon":19},[86],{"id":11,"name":16,"slug":17,"color":18,"icon":19},"\u002Fblog\u002Fcovers\u002Fheberger-postgresql-vps-poster.svg",{"categorySlug":17,"appSlug":89},"postgresql",{"id":91,"slug":92,"title":93,"excerpt":94,"readTime":95,"views":96,"isPinned":13,"publishedAt":97,"category":98,"categories":99,"featuredImage":22,"bgImage":23,"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":11,"name":16,"slug":17,"color":18,"icon":19},[100],{"id":11,"name":16,"slug":17,"color":18,"icon":19},"\u002Fblog\u002Fcovers\u002Fheberger-mysql-vps-poster.svg",{"categorySlug":17,"appSlug":103},"mysql",{"id":105,"slug":106,"title":107,"excerpt":108,"readTime":95,"views":109,"isPinned":13,"publishedAt":110,"category":111,"categories":112,"featuredImage":22,"bgImage":23,"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":11,"name":16,"slug":17,"color":18,"icon":19},[113],{"id":11,"name":16,"slug":17,"color":18,"icon":19},"\u002Fblog\u002Fcovers\u002Fheberger-redis-vps-poster.svg",{"categorySlug":17,"appSlug":116},"redis",1785628447921]