[{"data":1,"prerenderedAt":184},["ShallowReactive",2],{"seo-verification":3,"blog-meilisearch-vs-typesense-which-self-hosted-search-engine-ma-en":6,"promo-bar-likely":183},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-meilisearch-vs-typesense-which-self-hosted-search-engine-ma-en",{"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":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":117,"ctaBody":118,"ctaButton":119,"ctaUrl":120,"relatedPosts":121},101,"meilisearch-vs-typesense-which-self-hosted-search-engine",{"fr":12,"en":10,"ar":13,"es":14},"meilisearch-vs-typesense","meilisearch-مقابل-typesense-أي-محرك-بحث-مستضاف-ذاتيا","meilisearch-vs-typesense-motor-de-busqueda-self-hosted","Meilisearch vs Typesense: Which Self-Hosted Search Engine?","Meilisearch vs Typesense self-hosted: relevance, typo tolerance, facets, and memory usage compared for your search engine on a VPS.",4,2,false,"2026-03-11T00:00:00+00:00","2026-11-08T01:13:14+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},5,"Comparison","comparatif","bg-info\u002F10 text-info",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fmeilisearch-vs-typesense-poster.svg",{"categorySlug":33,"appSlug":34},"development","meilisearch","Adding instant search to your app without relying on a SaaS is possible with Meilisearch or Typesense. Two developer-focused search engines that self-host in a few minutes. Let's compare them.",[37,41,51,54,76,114],{"type":38,"title":39,"body":40},"h2","Why Self-Host Your Search Engine on a VPS","A dedicated search engine replaces slow `LIKE '%...%'` queries with instant search that is typo-tolerant and ranked by relevance. Self-hosting it on a VPS spares you the per-search or per-document billing of SaaS solutions and keeps your index (and therefore your customer data, your catalog) on your own infrastructure. Meilisearch and Typesense are designed for 'search-as-you-type': responses in a few milliseconds, a simple REST API, typo tolerance, and facets included. Meilisearch shines with its ease of use and default relevance quality; Typesense emphasizes raw performance, fine-grained ranking control, and high-availability clustering. Typesense keeps the entire searchable index in RAM; Meilisearch stores it on disk (LMDB, a memory-mapped file) and uses RAM as a cache: either way, memory directly sizes your VPS.",{"type":42,"title":43,"items":44},"ul","The Strengths of a Self-Hosted Search Engine",[45,46,47,48,49,50],"Instant search with typo tolerance, without coding the algorithm","No billing per indexed document or per query","Index and business data kept on your VPS","Facets, filters, and sorting to build rich catalog interfaces","A REST API and scoped keys for secure frontend-side use","Synonyms and relevance rules adjustable to your business vocabulary",{"type":38,"title":52,"body":53},"Prerequisites: RAM Above All","RAM is the critical resource: Typesense loads the entire searchable index into memory (its documentation counts 2 to 3 times the size of the searchable fields), and Meilisearch answers faster the more of its index fits in memory. For a few tens of thousands of documents, 1 to 2 GB of RAM and 1 vCPU are enough. For hundreds of thousands to a few million documents with facets, aim for 4 GB and 2 vCPUs. An SSD disk speeds up persistence and reloading at startup. You'll need Docker and Compose, a subdomain (search.yourdomain.com) if you expose the API to the frontend, and a reverse proxy for TLS. Plan for a strong master key and search keys with limited scope so that you never expose the admin key on the browser side.",{"type":55,"title":56,"steps":57},"steps","Deploy Meilisearch (or Typesense) on a VPS",[58,61,64,67,70,73],{"title":59,"body":60},"Define the Docker Service","Declare `getmeili\u002Fmeilisearch` (or `typesense\u002Ftypesense`), mount a volume for index persistence, and pass the master key via an environment variable (`MEILI_MASTER_KEY` or `TYPESENSE_API_KEY`), generated with `openssl rand -base64 32` and kept in `.env`. For Meilisearch, add `MEILI_ENV=production`: the master key (at least 16 bytes) becomes mandatory and the built-in search preview is disabled. Bind port `7700`\u002F`8108` locally only.",{"title":62,"body":63},"Launch and Check Health","Run `docker compose up -d`, then test `curl http:\u002F\u002F127.0.0.1:7700\u002Fhealth`. An `available` response confirms that the engine is ready to receive documents.",{"title":65,"body":66},"Create the Index and Feed in the Data","Send your documents as JSON through the API (POST to `\u002Findexes\u002Fproduits\u002Fdocuments`). Define the searchable, filterable, and sortable attributes; in a search engine, the declaration order of the searchable attributes directly influences relevance.",{"title":68,"body":69},"Expose the API Behind a Reverse Proxy","Proxy search.yourdomain.com to the local port with Caddy or Nginx for HTTPS. Restrict CORS to your application domain: in the proxy for Meilisearch, which has no CORS option, and with `--cors-domains` for Typesense. CORS only blocks browsers: the scoped key is what actually protects the engine.",{"title":71,"body":72},"Generate Scoped Keys","Create a key limited to search operations on a given index, to be used on the browser side. The master key must never leave the server or appear in the frontend code.",{"title":74,"body":75},"Sync with Your Database","Set up a job (webhook or scheduled task) that pushes creations and updates to the index on every database change, to keep search consistent with the source of truth.",{"type":77,"headers":78,"rows":82},"comparison",[79,80,81],"Criterion","Meilisearch","Typesense",[83,87,91,95,99,103,107,110],[84,85,86],"Getting started","Very simple, excellent default relevance","Simple, more explicit control",[88,89,90],"Typo tolerance","Native and tunable","Native, configurable per field",[92,93,94],"Ranking control","Ordered ranking rules","Very granular (per-field ranking, weights)",[96,97,98],"Facets \u002F filters","Complete","Complete and high-performance",[100,101,102],"High availability","Replication and sharding reserved for the Enterprise Edition","Built-in Raft clustering",[104,105,106],"Memory usage","Index on disk, RAM used as a cache","Entire searchable index in RAM",[108,109,109],"Vector search","Supported",[111,112,113],"Language \u002F deployment","Rust, single binary (MIT; Enterprise Edition under BUSL 1.1)","C++, single binary (GPL v3)",{"type":115,"body":116},"tip","Before oversizing your VPS, only index the fields that are actually searchable. Storing a large, full HTML text in the index needlessly inflates RAM: index the title, the tags, and a summary, and keep the heavy content in the database, fetched after the click. You'll noticeably reduce the memory footprint without losing relevance.","Instant Search on Your VPS","The ServOrbit Cloud VPS with a Docker template lets you deploy Meilisearch or Typesense with a reverse proxy and SSL, ready to index your catalog in a few minutes.","Deploy My Search Engine","\u002Fvps-cloud",[122,145,164],{"id":123,"slug":124,"slugs":125,"title":129,"excerpt":130,"readTime":23,"views":131,"isPinned":19,"noindex":19,"publishedAt":132,"updatedAt":133,"category":134,"categories":140,"featuredImage":29,"bgImage":30,"posterImage":142,"relatedSolution":143},67,"hosting-meilisearch-on-a-vps",{"fr":126,"en":124,"ar":127,"es":128},"heberger-meilisearch-vps","استضافة-meilisearch-على-خادم-vps","alojar-meilisearch-en-un-vps","Hosting Meilisearch on a VPS","Host Meilisearch on your VPS: an instant, fault-tolerant and typo-tolerant search engine. A Docker, master key and SSL guide.",3,"2026-04-14T00:00:00+00:00","2026-09-08T22:00:01+00:00",{"id":135,"name":136,"slug":137,"color":138,"icon":139},6,"Databases","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[141],{"id":135,"name":136,"slug":137,"color":138,"icon":139},"\u002Fblog\u002Fcovers\u002Fheberger-meilisearch-vps-poster.svg",{"categorySlug":144,"appSlug":34},"databases",{"id":146,"slug":147,"slugs":148,"title":152,"excerpt":153,"readTime":154,"views":131,"isPinned":19,"noindex":19,"publishedAt":155,"updatedAt":156,"category":157,"categories":158,"featuredImage":29,"bgImage":30,"posterImage":160,"relatedSolution":161},93,"n8n-vs-node-red-which-self-hosted-automation-tool-to-choose",{"fr":149,"en":147,"ar":150,"es":151},"n8n-vs-node-red","n8n-مقابل-node-red-أي-أداة-أتمتة-مستضافة-ذاتيا-تختار","n8n-vs-node-red-que-automatizacion-self-hosted-elegir","n8n vs Node-RED: which self-hosted automation tool to choose?","n8n or Node-RED for your VPS workflows? Complete technical comparison: license, server resources, IoT vs SaaS use cases, migration steps, and Docker deployment.",9,"2026-03-19T00:00:00+00:00","2026-11-08T01:13:15+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[159],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fn8n-vs-node-red-poster.svg",{"categorySlug":162,"appSlug":163},"automation-workflows","n8n",{"id":165,"slug":166,"slugs":167,"title":171,"excerpt":172,"readTime":173,"views":174,"isPinned":19,"noindex":19,"publishedAt":175,"updatedAt":176,"category":177,"categories":178,"featuredImage":29,"bgImage":30,"posterImage":180,"relatedSolution":181},94,"supabase-vs-appwrite-which-self-hosted-backend-for-your-vps",{"fr":168,"en":166,"ar":169,"es":170},"supabase-vs-appwrite","supabase-مقابل-appwrite-أي-خلفية-مستضافة-ذاتيا-لـ-vps","supabase-vs-appwrite-que-backend-self-hosted-para-vps","Supabase vs Appwrite: Choosing Your Open-Source BaaS on a VPS","Full comparison of Supabase vs Appwrite: Docker deployment, RAM requirements, auth, serverless functions, realtime, and a decision guide for your VPS.",14,0,"2026-03-18T00:00:00+00:00","2026-11-08T01:13:16+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[179],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fsupabase-vs-appwrite-poster.svg",{"categorySlug":144,"appSlug":182},"supabase",true,1794270442950]