> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paradedb.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Installing Third Party Extensions

> How to install additional extensions into ParadeDB

<Note>
  [Foreign data
  wrapper](https://www.postgresql.org/docs/current/ddl-foreign-data.html)
  extensions can be used to query AWS S3 and other external data stores directly
  from ParadeDB.
</Note>

Postgres has a rich ecosystem of extensions. ParadeDB is designed to work alongside other PostgreSQL extensions for a complete data platform.

## Pre-installed Extensions

To keep the ParadeDB Docker image size manageable, the following extensions are pre-installed:

* **`pg_search`** — Full-text and hybrid search with BM25
* **`pgvector`** — Vector similarity search
* **`postgis`** — Geospatial queries and indexing
* **`pg_ivm`** — Incremental materialized views
* **`pg_cron`** — Scheduled jobs and background tasks

<Note>
  `pg_cron` is configured on the default `postgres` database and cannot be
  changed.
</Note>

## Compatible Extensions

ParadeDB has been tested with and supports the following popular extensions:

* **[Citus](/deploy/citus)** — Distributed PostgreSQL for horizontal scaling
* **`pg_partman`** — Automated partition management
* **`pg_stat_statements`** — Query performance monitoring
* **`postgres_fdw`** — Foreign data wrappers for federated queries

<Note>
  If you encounter any issues with extension compatibility, please [open an
  issue](https://github.com/paradedb/paradedb/issues) or reach out to our
  [community](https://www.paradedb.com/slack).
</Note>

## 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 <extension name>`

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 theme={null}
docker exec -it --user root paradedb bash
```

<Note>
  This command assumes that your ParadeDB container name is `paradedb`.
</Note>

Next, install the [prebuilt binaries](https://pkgs.org/search/?q=partman).
Most popular Postgres extensions can be installed with `apt-get install`.

```bash theme={null}
apt-get update
apt-get install -y --no-install-recommends postgresql-18-partman
```

<Note>
  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.
</Note>

### Add to `shared_preload_libraries`

<Accordion title="Modifying shared_preload_libraries">
  If you are installing an extension which requires this step, you can do so
  via the following command, replacing `<extension_name>` with your extension's name:

  ```bash theme={null}
  sed -i "/^shared_preload_libraries/s/'\([^']*\)'/'\1,<extension_name>'/" /var/lib/postgresql/data/postgresql.conf
  ```

  For `pg_partman`, the command is:

  ```bash theme={null}
  sed -i "/^shared_preload_libraries/s/'\([^']*\)'/'\1,pg_partman_bgw'/" /var/lib/postgresql/data/postgresql.conf
  ```
</Accordion>

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 theme={null}
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).
