---
title: Installing Third Party Extensions
---
Postgres has a rich ecosystem of extensions. To keep the size of the ParadeDB Dockerfile small, only the ParadeDB extensions — `pg_search` and `pg_analytics` — and a limited set of third party extensions are included:
- `pg_search` for full text search
- `pg_analytics` for fast queries over data lakes
- `pgvector` for vector search
- `postgis` for geospatial search
- `pg_ivm` for incremental materialized views
- `pg_cron` for cron jobs
`pg_cron` is configured on the default `postgres` database and cannot be
changed.
However, additional Postgres extensions can be installed inside existing ParadeDB Docker and Kubernetes deployments.
## Installing Third Party Extensions
The process for installing an extension varies by extension. Generally speaking, it requires:
- Download the prebuilt binaries inside ParadeDB
- Install the extension binary and any dependencies inside ParadeDB
- Add the extension to `shared_preload_libraries` in `postgresql.conf`, if required by the extension
- Run `CREATE EXTENSION `
We recommend installing third party extensions from prebuilt binaries to keep the image size small. As an
example, let's install [pg_partman](https://github.com/pgpartman/pg_partman), an extension for managing table partition sets.
### Install Prebuilt Binaries
First, enter a shell with root permissions in the ParadeDB image.
```bash
docker exec -it --user root paradedb bash
```
This command assumes that your ParadeDB container name is `paradedb`.
Next, install the [prebuilt binaries](https://pkgs.org/search/?q=partman).
Most popular Postgres extensions can be installed with `apt-get install`.
```bash
apt-get update
apt-get install -y --no-install-recommends postgresql-17-partman
```
If the extension is not available with `apt-get install`, you can usually
`curl` the prebuilt binary from a GitHub Release page. You will need to first
install `curl` via `apt-get install` if you are taking this approach.
### Add to `shared_preload_libraries`
If you are installing an extension which requires this step, you can do so
via the following command, replacing `` with your extension's name:
```bash
sed -i "/^shared_preload_libraries/s/'\([^']*\)'/'\1,'/" /var/lib/postgresql/data/postgresql.conf
```
For `pg_partman`, the command is:
```bash
sed -i "/^shared_preload_libraries/s/'\([^']*\)'/'\1,pg_partman_bgw'/" /var/lib/postgresql/data/postgresql.conf
```
Postgres must be restarted afterwards. We recommend simply restarting the Docker container.
### Create the Extension
Connect to ParadeDB via `psql` and create the extension.
```sql
CREATE EXTENSION pg_partman;
```
`pg_partman` is now ready to use!
Note that this is a simple example of installing `pg_partman`. The full list of settings and optional dependencies can be found in the [official installation instructions](https://github.com/pgpartman/pg_partman?tab=readme-ov-file#installation).