[{"data":1,"prerenderedAt":130},["ShallowReactive",2],{"seo-verification":3,"blog-hosting-typesense-on-a-vps-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":24,"featuredImage":26,"bgImage":27,"posterImage":28,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":79,"ctaBody":80,"ctaButton":81,"ctaUrl":82,"relatedPosts":83},68,"hosting-typesense-on-a-vps",{"fr":10,"en":8,"ar":11},"heberger-typesense-vps","استضافة-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.",3,1,false,"2026-04-13T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},6,"Databases","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[25],{"id":19,"name":20,"slug":21,"color":22,"icon":23},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-typesense-vps-poster.svg",{"categorySlug":30,"appSlug":31},"development","typesense","Typesense is a typo-tolerant open-source search engine, shipped as a single binary with no JVM 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.",[34,38,48,51,73,76],{"type":35,"title":36,"body":37},"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 — the vendor states 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":39,"title":40,"items":41},"ul","What you gain in concrete terms",[42,43,44,45,46,47],"A fixed cost instead of per-query billing that explodes with traffic","No public network hop: 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":35,"title":49,"body":50},"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":52,"title":53,"steps":54},"steps","Step-by-step deployment",[55,58,61,64,67,70],{"title":56,"body":57},"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":59,"body":60},"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":62,"body":63},"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":65,"body":66},"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":68,"body":69},"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":71,"body":72},"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":74,"body":75},"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.",{"type":35,"title":77,"body":78},"Deploy Typesense from the ServOrbit Marketplace","The ServOrbit Marketplace offers Typesense as a one-click deployment: select **Development → Typesense**, click **Install**, and provisioning starts automatically. A `typesense\u002Ftypesense:29.0` container launches on your Ubuntu VPS, with a persistent volume for your indexes and a randomly generated admin API key — shown directly in your client area, with no manual configuration.\n\nCompared to a manual setup (docker compose, key generation, Nginx vhost + SSL), the Marketplace route removes the repetitive steps and takes you straight to the first collection. The app becomes orderable as soon as the first green install verdict is confirmed by our automated validation loop.","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","\u002Fmarketplace\u002Fdevelopment\u002Ftypesense",[84,102,115],{"id":85,"slug":86,"slugs":87,"title":90,"excerpt":91,"readTime":92,"views":93,"isPinned":16,"publishedAt":94,"category":95,"categories":96,"featuredImage":26,"bgImage":27,"posterImage":98,"relatedSolution":99},56,"postgresql-on-a-vps-a-reliable-and-controlled-database",{"fr":88,"en":86,"ar":89},"heberger-postgresql-vps","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.",4,0,"2026-04-25T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},[97],{"id":19,"name":20,"slug":21,"color":22,"icon":23},"\u002Fblog\u002Fcovers\u002Fheberger-postgresql-vps-poster.svg",{"categorySlug":100,"appSlug":101},"databases","postgresql-stack",{"id":103,"slug":104,"slugs":105,"title":108,"excerpt":109,"readTime":14,"views":93,"isPinned":16,"publishedAt":110,"category":111,"categories":112,"featuredImage":26,"bgImage":27,"posterImage":114,"relatedSolution":26},57,"hosting-mysql-on-a-vps",{"fr":106,"en":104,"ar":107},"heberger-mysql-vps","استضافة-mysql-على-خادم-vps","Hosting MySQL on a VPS","Host MySQL on your Cloud VPS: Docker deployment, hardening, InnoDB tuning, and automated backups, step by step.","2026-04-24T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},[113],{"id":19,"name":20,"slug":21,"color":22,"icon":23},"\u002Fblog\u002Fcovers\u002Fheberger-mysql-vps-poster.svg",{"id":116,"slug":117,"slugs":118,"title":121,"excerpt":122,"readTime":92,"views":93,"isPinned":16,"publishedAt":123,"category":124,"categories":125,"featuredImage":26,"bgImage":27,"posterImage":127,"relatedSolution":128},58,"hosting-redis-on-a-vps",{"fr":119,"en":117,"ar":120},"heberger-redis-vps","استضافة-redis-على-خادم-vps","Hosting Redis on a VPS","Deploy Redis on your Cloud VPS: in-memory cache, sessions, and queues, with persistence, security, and tuning.","2026-04-23T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},[126],{"id":19,"name":20,"slug":21,"color":22,"icon":23},"\u002Fblog\u002Fcovers\u002Fheberger-redis-vps-poster.svg",{"categorySlug":100,"appSlug":129},"redis-stack",1787581002624]