--- 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).