Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,16 @@ Minimal images contain Postgres, and the following extensions:

Standard images are based on minimal images, and contain additional extension and tools.

- PGAudit
- pgAudit
- PostGIS
- pgVector
- pgEdge Vectorizer
- pg_tokenizer
- vchord_bm25
- pg_vectorize
- pgmq
- pg_cron
- pg_stat_monitor
- Patroni
- pgBackRest
- psycopg2
Expand Down
25 changes: 17 additions & 8 deletions examples/compose/distributed/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ services:
PGEDGE_USER: ${REPL_USER:-pgedge}
PGEDGE_PASSWORD: ${REPL_PASSWORD:-password}
NODE_NAME: n1
NODE_ORDINAL: 1
ports:
- target: 5432
published: 6432
Expand All @@ -24,8 +25,8 @@ services:
- source: init-extensions
target: /docker-entrypoint-initdb.d/10-init-extensions.sh
mode: 0755
- source: configure-spock
target: /docker-entrypoint-initdb.d/20-configure-spock.sh
- source: init-pgconf
target: /docker-entrypoint-initdb.d/20-init-pgconf.sh
mode: 0755
- source: restart-postgres
target: /docker-entrypoint-initdb.d/30-restart-postgres.sh
Expand All @@ -51,6 +52,7 @@ services:
PGEDGE_USER: ${REPL_USER:-pgedge}
PGEDGE_PASSWORD: ${REPL_PASSWORD:-password}
NODE_NAME: n2
NODE_ORDINAL: 2
ports:
- target: 5432
published: 6433
Expand All @@ -63,8 +65,8 @@ services:
- source: init-extensions
target: /docker-entrypoint-initdb.d/10-init-extensions.sh
mode: 0755
- source: configure-spock
target: /docker-entrypoint-initdb.d/20-configure-spock.sh
- source: init-pgconf
target: /docker-entrypoint-initdb.d/20-init-pgconf.sh
mode: 0755
- source: restart-postgres
target: /docker-entrypoint-initdb.d/30-restart-postgres.sh
Expand Down Expand Up @@ -109,7 +111,7 @@ configs:
#!/usr/bin/env bash
set -Eeo pipefail

EXTENSIONS=("pg_stat_statements" "pgaudit" "snowflake" "spock" "postgis-3")
EXTENSIONS=("pg_stat_statements" "pgaudit" "snowflake" "spock" "postgis-3" "pg_stat_monitor" "pg_tokenizer" "pg_cron" "vectorize" "pgedge_vectorizer")

PGCONF="$$PGDATA/postgresql.conf"

Expand All @@ -122,14 +124,14 @@ configs:
else
echo "shared_preload_libraries = '$$LIBS'" >> "$$PGCONF"
fi
configure-spock:
init-pgconf:
content: |-
#!/usr/bin/env bash
set -Eeo pipefail

PGCONF="$$PGDATA/postgresql.conf"

echo "Initializing required spock configuration parameters in postgresql.conf"
echo "Initializing required configuration parameters in postgresql.conf"

# Allow connections from any address (for demo purposes)
echo "listen_addresses = '*'" >> "$$PGCONF"
Expand All @@ -148,6 +150,13 @@ configs:
echo "spock.conflict_resolution = 'last_update_wins'" >> "$$PGCONF"
echo "spock.save_resolutions = 'on'" >> "$$PGCONF"
echo "spock.conflict_log_level = 'DEBUG'" >> "$$PGCONF"

# Set LOLOR and Snowflake parameters
echo "lolor.node = '$${NODE_ORDINAL}'" >> "$$PGCONF"
echo "snowflake.node_id = '$${NODE_ORDINAL}'" >> "$$PGCONF"

# Setup pg_cron
echo "cron.database_name = '$${POSTGRES_DB:-example_db}'" >> "$$PGCONF"
restart-postgres:
content: |-
#!/usr/bin/env bash
Expand All @@ -160,7 +169,7 @@ configs:
#!/usr/bin/env bash
set -Eeo pipefail

EXTENSIONS=("pg_stat_statements" "pgaudit" "snowflake" "spock" "vector" "postgis")
EXTENSIONS=("pg_stat_statements" "pgaudit" "snowflake" "spock" "vector" "postgis" "lolor" "pgmq" "pg_cron" "pg_stat_monitor" "pg_tokenizer" "vectorize" "pgedge_vectorizer")

echo "Initializing extensions: $${EXTENSIONS[*]}"
for EXT in "$${EXTENSIONS[@]}"; do
Expand Down
37 changes: 1 addition & 36 deletions examples/compose/enterprise/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# pgEdge Enterprise Postgres - Docker Compose Example

This example spins up a single pgEdge Enterprise Postgres container with additional enterprise extensions enabled (pgAudit, PostGIS, Snowflake, Spock, etc.). The container is configured with logical replication support and initializes all extensions automatically at startup.
This example spins up a single pgEdge Enterprise Postgres container with enterprise extensions enabled.

## Prerequisites

Expand All @@ -26,41 +26,6 @@ This will build and start the pgEdge Enterprise Postgres service.
docker compose exec pgedge-postgres psql -U admin example_db
```

### Enterprise Extensions

This enterprise image automatically enables and installs the following extensions:

- pg_stat_statements
- pgAudit
- Snowflake
- Spock
- pgVector
- PostGIS

These are configured in two phases:

The init-extensions and configure-spock scripts update postgresql.conf with preload libraries and Spock settings.

The create-extensions script runs CREATE EXTENSION commands to load them into your database.

You can confirm extensions are installed by running:

```sh
\dx
```

inside your psql session.

### Restarting PostgreSQL During Init

To apply configuration changes, the initialization sequence includes a controlled restart of PostgreSQL:

```sh
pg_ctl -D $PGDATA -m fast restart
```

This happens automatically during first startup. You don’t need to run this manually unless you change configuration.

### Loading Sample Data

You can load the Northwind sample dataset into your Postgres database by running:
Expand Down
23 changes: 16 additions & 7 deletions examples/compose/enterprise/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@ services:
POSTGRES_USER: ${POSTGRES_USER:-admin}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password}
POSTGRES_DB: ${POSTGRES_DB:-example_db}
NODE_NAME: n1
NODE_ORDINAL: 1
configs:
- source: init-extensions
target: /docker-entrypoint-initdb.d/10-init-extensions.sh
mode: 0755
- source: configure-spock
target: /docker-entrypoint-initdb.d/20-configure-spock.sh
- source: init-pgconf
target: /docker-entrypoint-initdb.d/20-init-pgconf.sh
mode: 0755
- source: restart-postgres
target: /docker-entrypoint-initdb.d/30-restart-postgres.sh
Expand All @@ -30,7 +32,7 @@ configs:
#!/usr/bin/env bash
set -Eeo pipefail

EXTENSIONS=("pg_stat_statements" "pgaudit" "snowflake" "spock" "postgis-3")
EXTENSIONS=("pg_stat_statements" "pgaudit" "snowflake" "spock" "postgis-3" "pg_stat_monitor" "pg_tokenizer" "pg_cron" "vectorize" "pgedge_vectorizer")

PGCONF="$$PGDATA/postgresql.conf"

Expand All @@ -43,18 +45,18 @@ configs:
else
echo "shared_preload_libraries = '$$LIBS'" >> "$$PGCONF"
fi
configure-spock:
init-pgconf:
content: |-
#!/usr/bin/env bash
set -Eeo pipefail

PGCONF="$$PGDATA/postgresql.conf"

echo "Initializing required spock configuration parameters in postgresql.conf"
echo "Initializing required configuration parameters in postgresql.conf"

# Allow connections from any address (for demo purposes)
echo "listen_addresses = '*'" >> "$$PGCONF"

# Enable logical replication
echo "wal_level = 'logical'" >> "$$PGCONF"
echo "max_worker_processes = 10" >> "$$PGCONF"
Expand All @@ -69,6 +71,13 @@ configs:
echo "spock.conflict_resolution = 'last_update_wins'" >> "$$PGCONF"
echo "spock.save_resolutions = 'on'" >> "$$PGCONF"
echo "spock.conflict_log_level = 'DEBUG'" >> "$$PGCONF"

# Set LOLOR and Snowflake parameters
echo "lolor.node = '$${NODE_ORDINAL}'" >> "$$PGCONF"
echo "snowflake.node_id = '$${NODE_ORDINAL}'" >> "$$PGCONF"

# Setup pg_cron
echo "cron.database_name = '$${POSTGRES_DB:-example_db}'" >> "$$PGCONF"
restart-postgres:
content: |-
#!/usr/bin/env bash
Expand All @@ -81,7 +90,7 @@ configs:
#!/usr/bin/env bash
set -Eeo pipefail

EXTENSIONS=("pg_stat_statements" "pgaudit" "snowflake" "spock" "vector" "postgis")
EXTENSIONS=("pg_stat_statements" "pgaudit" "snowflake" "spock" "vector" "postgis" "lolor" "pgmq" "pg_cron" "pg_stat_monitor" "pg_tokenizer" "vectorize" "pgedge_vectorizer")

echo "Initializing extensions: $${EXTENSIONS[*]}"
for EXT in "$${EXTENSIONS[@]}"; do
Expand Down
4 changes: 4 additions & 0 deletions packagelists/amd64/pg16.10-spock5.0.4-minimal.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pgedge-postgresql16-16.10-1.el9
pgedge-spock50_16-5.0.4-1.el9
pgedge-snowflake_16-2.4-1.el9
pgedge-lolor_16-1.2.1-1.el9
16 changes: 16 additions & 0 deletions packagelists/amd64/pg16.10-spock5.0.4-standard.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
pgedge-postgresql16-16.10-1.el9
pgedge-spock50_16-5.0.4-1.el9
pgedge-snowflake_16-2.4-1.el9
pgedge-lolor_16-1.2.1-1.el9
pgedge-pgaudit_16-16.1-1.el9
pgedge-postgis35_16-3.5.3-1.el9
pgedge-pgvector_16-0.8.1-1.el9
pgedge-pgbackrest-2.57.0-1.el9
pgedge-python3-psycopg2-2.9.10-1.el9
pgedge-pgmq_16-1.8.0-1.el9
pgedge-pg_cron_16-1.6.7-1.el9
pgedge-pg-tokenizer_16-0.1.1-1.el9
pgedge-pg-vectorize_16-0.23.0-1.el9
pgedge-pg-stat-monitor_16-2.3.0-1.el9
pgedge-vchord-bm25_16-0.2.2-1.el9
pgedge-vectorizer_16-1.0-beta1_1.el9
7 changes: 7 additions & 0 deletions packagelists/amd64/pg16.11-spock5.0.4-standard.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,10 @@ pgedge-postgis35_16-3.5.3-1.el9
pgedge-pgvector_16-0.8.1-1.el9
pgedge-pgbackrest-2.57.0-1.el9
pgedge-python3-psycopg2-2.9.10-1.el9
pgedge-pgmq_16-1.8.0-1.el9
pgedge-pg_cron_16-1.6.7-1.el9
pgedge-pg-tokenizer_16-0.1.1-1.el9
pgedge-pg-vectorize_16-0.23.0-1.el9
pgedge-pg-stat-monitor_16-2.3.0-1.el9
pgedge-vchord-bm25_16-0.2.2-1.el9
pgedge-vectorizer_16-1.0-beta1_1.el9
4 changes: 4 additions & 0 deletions packagelists/amd64/pg17.6-spock5.0.4-minimal.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pgedge-postgresql17-17.6-1.el9
pgedge-spock50_17-5.0.4-1.el9
pgedge-snowflake_17-2.4-1.el9
pgedge-lolor_17-1.2.1-1.el9
16 changes: 16 additions & 0 deletions packagelists/amd64/pg17.6-spock5.0.4-standard.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
pgedge-postgresql17-17.6-1.el9
pgedge-spock50_17-5.0.4-1.el9
pgedge-snowflake_17-2.4-1.el9
pgedge-lolor_17-1.2.1-1.el9
pgedge-pgaudit_17-17.1-1.el9
pgedge-postgis35_17-3.5.3-1.el9
pgedge-pgvector_17-0.8.1-1.el9
pgedge-pgbackrest-2.57.0-1.el9
pgedge-python3-psycopg2-2.9.10-1.el9
pgedge-pgmq_17-1.8.0-1.el9
pgedge-pg_cron_17-1.6.7-1.el9
pgedge-pg-tokenizer_17-0.1.1-1.el9
pgedge-pg-vectorize_17-0.23.0-1.el9
pgedge-pg-stat-monitor_17-2.3.0-1.el9
pgedge-vchord-bm25_17-0.2.2-1.el9
pgedge-vectorizer_17-1.0-beta1_1.el9
7 changes: 7 additions & 0 deletions packagelists/amd64/pg17.7-spock5.0.4-standard.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,10 @@ pgedge-postgis35_17-3.5.3-1.el9
pgedge-pgvector_17-0.8.1-1.el9
pgedge-pgbackrest-2.57.0-1.el9
pgedge-python3-psycopg2-2.9.10-1.el9
pgedge-pgmq_17-1.8.0-1.el9
pgedge-pg_cron_17-1.6.7-1.el9
pgedge-pg-tokenizer_17-0.1.1-1.el9
pgedge-pg-vectorize_17-0.23.0-1.el9
pgedge-pg-stat-monitor_17-2.3.0-1.el9
pgedge-vchord-bm25_17-0.2.2-1.el9
pgedge-vectorizer_17-1.0-beta1_1.el9
4 changes: 4 additions & 0 deletions packagelists/amd64/pg18.0-spock5.0.4-minimal.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pgedge-postgresql18-18.0-1.el9
pgedge-spock50_18-5.0.4-1.el9
pgedge-snowflake_18-2.4-1.el9
pgedge-lolor_18-1.2.1-1.el9
16 changes: 16 additions & 0 deletions packagelists/amd64/pg18.0-spock5.0.4-standard.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
pgedge-postgresql18-18.0-1.el9
pgedge-spock50_18-5.0.4-1.el9
pgedge-snowflake_18-2.4-1.el9
pgedge-lolor_18-1.2.1-1.el9
pgedge-pgaudit_18-18.0-1.el9
pgedge-postgis35_18-3.5.3-1.el9
pgedge-pgvector_18-0.8.1-1.el9
pgedge-pgbackrest-2.57.0-1.el9
pgedge-python3-psycopg2-2.9.10-1.el9
pgedge-pgmq_18-1.8.0-1.el9
pgedge-pg_cron_18-1.6.7-1.el9
pgedge-pg-tokenizer_18-0.1.1-1.el9
pgedge-pg-vectorize_18-0.23.0-1.el9
pgedge-pg-stat-monitor_18-2.3.0-1.el9
pgedge-vchord-bm25_18-0.2.2-1.el9
pgedge-vectorizer_18-1.0-beta1_1.el9
7 changes: 7 additions & 0 deletions packagelists/amd64/pg18.1-spock5.0.4-standard.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,10 @@ pgedge-postgis35_18-3.5.3-1.el9
pgedge-pgvector_18-0.8.1-1.el9
pgedge-pgbackrest-2.57.0-1.el9
pgedge-python3-psycopg2-2.9.10-1.el9
pgedge-pgmq_18-1.8.0-1.el9
pgedge-pg_cron_18-1.6.7-1.el9
pgedge-pg-tokenizer_18-0.1.1-1.el9
pgedge-pg-vectorize_18-0.23.0-1.el9
pgedge-pg-stat-monitor_18-2.3.0-1.el9
pgedge-vchord-bm25_18-0.2.2-1.el9
pgedge-vectorizer_18-1.0-beta1_1.el9
4 changes: 4 additions & 0 deletions packagelists/arm64/pg16.10-spock5.0.4-minimal.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pgedge-postgresql16-16.10-1.el9
pgedge-spock50_16-5.0.4-1.el9
pgedge-snowflake_16-2.4-1.el9
pgedge-lolor_16-1.2.1-1.el9
16 changes: 16 additions & 0 deletions packagelists/arm64/pg16.10-spock5.0.4-standard.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
pgedge-postgresql16-16.10-1.el9
pgedge-spock50_16-5.0.4-1.el9
pgedge-snowflake_16-2.4-1.el9
pgedge-lolor_16-1.2.1-1.el9
pgedge-pgaudit_16-16.1-1.el9
pgedge-postgis35_16-3.5.3-1.el9
pgedge-pgvector_16-0.8.1-1.el9
pgedge-pgbackrest-2.57.0-1.el9
pgedge-python3-psycopg2-2.9.10-1.el9
pgedge-pgmq_16-1.8.0-1.el9
pgedge-pg_cron_16-1.6.7-1.el9
pgedge-pg-tokenizer_16-0.1.1-1.el9
pgedge-pg-vectorize_16-0.23.0-1.el9
pgedge-pg-stat-monitor_16-2.3.0-1.el9
pgedge-vchord-bm25_16-0.2.2-1.el9
pgedge-vectorizer_16-1.0-beta1_1.el9
7 changes: 7 additions & 0 deletions packagelists/arm64/pg16.11-spock5.0.4-standard.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,10 @@ pgedge-postgis35_16-3.5.3-1.el9
pgedge-pgvector_16-0.8.1-1.el9
pgedge-pgbackrest-2.57.0-1.el9
pgedge-python3-psycopg2-2.9.10-1.el9
pgedge-pgmq_16-1.8.0-1.el9
pgedge-pg_cron_16-1.6.7-1.el9
pgedge-pg-tokenizer_16-0.1.1-1.el9
pgedge-pg-vectorize_16-0.23.0-1.el9
pgedge-pg-stat-monitor_16-2.3.0-1.el9
pgedge-vchord-bm25_16-0.2.2-1.el9
pgedge-vectorizer_16-1.0-beta1_1.el9
4 changes: 4 additions & 0 deletions packagelists/arm64/pg17.6-spock5.0.4-minimal.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pgedge-postgresql17-17.6-1.el9
pgedge-spock50_17-5.0.4-1.el9
pgedge-snowflake_17-2.4-1.el9
pgedge-lolor_17-1.2.1-1.el9
16 changes: 16 additions & 0 deletions packagelists/arm64/pg17.6-spock5.0.4-standard.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
pgedge-postgresql17-17.6-1.el9
pgedge-spock50_17-5.0.4-1.el9
pgedge-snowflake_17-2.4-1.el9
pgedge-lolor_17-1.2.1-1.el9
pgedge-pgaudit_17-17.1-1.el9
pgedge-postgis35_17-3.5.3-1.el9
pgedge-pgvector_17-0.8.1-1.el9
pgedge-pgbackrest-2.57.0-1.el9
pgedge-python3-psycopg2-2.9.10-1.el9
pgedge-pgmq_17-1.8.0-1.el9
pgedge-pg_cron_17-1.6.7-1.el9
pgedge-pg-tokenizer_17-0.1.1-1.el9
pgedge-pg-vectorize_17-0.23.0-1.el9
pgedge-pg-stat-monitor_17-2.3.0-1.el9
pgedge-vchord-bm25_17-0.2.2-1.el9
pgedge-vectorizer_17-1.0-beta1_1.el9
7 changes: 7 additions & 0 deletions packagelists/arm64/pg17.7-spock5.0.4-standard.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,10 @@ pgedge-postgis35_17-3.5.3-1.el9
pgedge-pgvector_17-0.8.1-1.el9
pgedge-pgbackrest-2.57.0-1.el9
pgedge-python3-psycopg2-2.9.10-1.el9
pgedge-pgmq_17-1.8.0-1.el9
pgedge-pg_cron_17-1.6.7-1.el9
pgedge-pg-tokenizer_17-0.1.1-1.el9
pgedge-pg-vectorize_17-0.23.0-1.el9
pgedge-pg-stat-monitor_17-2.3.0-1.el9
pgedge-vchord-bm25_17-0.2.2-1.el9
pgedge-vectorizer_17-1.0-beta1_1.el9
4 changes: 4 additions & 0 deletions packagelists/arm64/pg18.0-spock5.0.4-minimal.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pgedge-postgresql18-18.0-1.el9
pgedge-spock50_18-5.0.4-1.el9
pgedge-snowflake_18-2.4-1.el9
pgedge-lolor_18-1.2.1-1.el9
Loading