docs-site/content/guide/install-typesense.md
Here are a couple of available options to install and run Typesense.
The easiest way to run Typesense is using our managed Cloud service called Typesense Cloud.
You can also run Typesense on your local machine or self-host it.
You'll find DEB, RPM and pre-built binaries for Linux and macOS on our downloads page.
We also publish official Docker images for Typesense on Docker hub.
mkdir "$(pwd)"/typesense-data
docker run -p 8108:8108
-v"$(pwd)"/typesense-data:/data typesense/typesense:{{ $site.themeConfig.typesenseLatestVersion }}
--data-dir /data
--api-key=$TYPESENSE_API_KEY
--enable-cors</code></pre>
</div>
</template>
</Tabs>
mkdir "$(pwd)"/typesense-data
docker-compose up
There are a few community supported contributions for deploying on Kubernetes:
:::warning Compatibility with macOS The macOS native binary only works with macOS Ventura (13.x) or above.
For older versions of macOS, please use the Docker or Docker Compose installation method above.
:::
For macOS running on Intel CPUs:
xyz and the default port is 8108/usr/local/etc/typesense/typesense.ini/usr/local/var/log/typesense//usr/local/var/lib/typesense/For macOS running on Apple Silicon CPUs:
xyz and the default port is 8108/opt/homebrew/etc/typesense/typesense.ini/opt/homebrew/var/log/typesense//opt/homebrew/var/lib/typesense/:::warning Compatibility with macOS The macOS native binary only works with macOS Ventura (13.x) or above.
For older versions of macOS, please use the Docker or Docker Compose installation method above.
:::
export TYPESENSE_API_KEY=xyz mkdir "$(pwd)"/typesense-data ./typesense-server --data-dir="$(pwd)"/typesense-data --api-key=$TYPESENSE_API_KEY --enable-cors </code></pre> </div> </template> <template v-slot:Intel> <div class="manual-highlight"> <pre class="language-bash"><code># Download Typesense curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-darwin-amd64.tar.gz tar -xzf typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-darwin-amd64.tar.gz
export TYPESENSE_API_KEY=xyz mkdir "$(pwd)"/typesense-data ./typesense-server --data-dir="$(pwd)"/typesense-data --api-key=$TYPESENSE_API_KEY --enable-cors </code></pre> </div> </template> </Tabs>
sudo systemctl start typesense-server.service</code></pre> </div> </template> <template v-slot:arm64> <div class="manual-highlight"> <pre class="language-bash"><code># Download & Install curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-arm64.deb sudo apt install ./typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-arm64.deb
sudo systemctl start typesense-server.service</code></pre> </div> </template> </Tabs>
/etc/typesense/typesense-server.ini
/var/log/typesense//var/lib/typesense/:::warning Compatibility v26.0+ of Typesense Server requires Ubuntu 20 or later. :::
sudo systemctl start typesense-server.service</code></pre> </div> </template> <template v-slot:aarch64> <div class="manual-highlight"> <pre class="language-bash"><code># Download & Install curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-1.aarch64.rpm sudo yum install ./typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-1.aarch64.rpm
sudo systemctl start typesense-server.service</code></pre> </div> </template> </Tabs>
/etc/typesense/typesense-server.ini
/var/log/typesense//var/lib/typesense/:::warning Compatibility v26.0+ of Typesense Server requires recent versions of the Linux kernel. :::
export TYPESENSE_API_KEY=xyz mkdir "$(pwd)"/typesense-data # Use a directory like /var/lib/typesense in production ./typesense-server --data-dir="$(pwd)"/typesense-data --api-key=$TYPESENSE_API_KEY --enable-cors</code></pre> </div> </template> <template v-slot:arm64> <div class="manual-highlight"> <pre class="language-bash"><code># Download curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-linux-arm64.tar.gz tar -xzf typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-linux-arm64.tar.gz
export TYPESENSE_API_KEY=xyz mkdir "$(pwd)"/typesense-data # Use a directory like /var/lib/typesense in production ./typesense-server --data-dir="$(pwd)"/typesense-data --api-key=$TYPESENSE_API_KEY --enable-cors</code></pre> </div> </template> </Tabs>
:::warning Compatibility v26.0+ of Typesense Server requires Ubuntu 20 or later or recent versions of the Linux kernel. :::
sudo /usr/bin/./typesense-server --config=/etc/typesense/typesense-server.ini</code></pre> </div> </template> </Tabs>
Note: Post install, you might see the message "installed typesense-server package post-installation script subprocess returned error exit status 1".
You can safely ignore this error message. Executing apt list --installed | grep typesense should show that installation was successful.
You can retrieve the hostname for the server on which Typesense is running using wsl hostname -I in cmd.
You should be able to connect to this hostname/IP address directly from Windows.
If you'd like Typesense to be started at startup, you can create a BAT file with the command powershell.exe /c wsl.exe sudo /usr/bin/./typesense-server --config=/etc/typesense/typesense-server.ini and set it to execute at startup.
By default, Typesense will start on port 8108, and the installation will generate a random API key, which you can view/change from the configuration file at /etc/typesense/typesense-server.ini
:::tip We are starting a single node here, but Typesense can also run in a clustered mode. See the High Availability section for more details. :::
Using a GPU will be handy for generating embeddings for vector search and for voice query.
You would have to install the following additional dependencies, after which Typesense will automatically make use of any available Nvidia GPUs:
Install CUDA following the instructions on Nvidia's site here.
You want to specifically install the following versions of these packages: cuda=11.8.0-1, libcudnn8=8.9.2.26-1+cuda11.8 and libcudnn8-dev=8.9.2.26-1+cuda11.8 and their dependencies.
Install cuDNN following the instructions here.
You want to specifically install the libcudnn8 and libcudnn8-dev packages.
Add the following to /etc/profile.d/cuda-path.sh:
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda/lib64
export CUDA_HOME=/usr/local/cuda
Install the Typesense GPU dependencies package:
<Tabs :tabs="['DEB', 'RPM', 'Linux-Binary']"> <template v-slot:DEB> <div class="manual-highlight"> <pre class="language-bash"><code># x64 curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-amd64.deb sudo apt install ./typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-amd64.debcurl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-arm64.deb sudo apt install ./typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-arm64.deb </code></pre> </div> </template> <template v-slot:RPM> <div class="manual-highlight"> <pre class="language-bash"><code># x64 curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-1.x86_64.rpm sudo apt install ./typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-1.x86_64.rpm
curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-1.aarch64.rpm sudo apt install ./typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-1.aarch64.rpm </code></pre> </div> </template> <template v-slot:Linux-Binary> <div class="manual-highlight"> <pre class="language-bash"><code># x64 curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-linux-amd64.tar.gz sudo apt install ./typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-linux-amd64.tar.gz
curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-linux-arm64.tar.gz tar -xzf typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion}}-linux-arm64.tar.gz </code></pre> </div> </template> </Tabs>
Some operating systems / runtimes running on ARM, use a larger 16K system page size than the default one we compile Typesense with (4K). For these environments, we now publish a separate "lg-pg-size" build.
<Tabs :tabs="['Typesense-Server', 'Typesense-GPU-Deps']"> <template v-slot:Typesense-Server> <div class="manual-highlight"> <pre class="language-bash"><code># Linux Binary curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-linux-arm64-lg-page16.tar.gz tar -xzf typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-linux-arm64-lg-page16.tar.gzcurl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-arm64-lg-page16.deb sudo apt install ./typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-arm64-lg-page16.deb
curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-1.lg.page16.aarch64.rpm sudo yum install ./typesense-server-{{ $site.themeConfig.typesenseLatestVersion }}-1.lg.page16.aarch64.rpm
docker pull typesense/typesense:{{ $site.themeConfig.typesenseLatestVersion }}-arm64-lg-page16 </code></pre> </div> </template> <template v-slot:Typesense-GPU-Deps> <div class="manual-highlight"> <pre class="language-bash"><code># Linux Binary curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-linux-arm64-lg-page16.tar.gz tar -xzf typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion}}-linux-arm64-lg-page16.tar.gz
curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-arm64-lg-page16.deb sudo apt install ./typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-arm64-lg-page16.deb
curl -O https://dl.typesense.org/releases/{{ $site.themeConfig.typesenseLatestVersion }}/typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-1.lg.page16.aarch64.rpm sudo yum install ./typesense-gpu-deps-{{ $site.themeConfig.typesenseLatestVersion }}-1.lg.page16.aarch64.rpm </code></pre> </div> </template> </Tabs>
You can use the /health API end-point to verify that the server is ready to accept requests.
You can use the /debug API end-point to verify the version of Typesense running.
See Managing Access to Data for more information about using API keys.
You can configure various Typesense Server settings using command line arguments. Read this reference article for more information on <RouterLink :to="`/${this.$site.themeConfig.typesenseLatestVersion}/api/server-configuration.html`">How To Configure Typesense Server</RouterLink>.