diff --git a/public/v4/apps/supabase-postgres.yml b/public/v4/apps/supabase-postgres.yml index f117f0ce5..e8aa0600d 100644 --- a/public/v4/apps/supabase-postgres.yml +++ b/public/v4/apps/supabase-postgres.yml @@ -1,49 +1,98 @@ captainVersion: 4 services: $$cap_appname-db: - image: supabase/postgres:$$cap_app_version + image: bitnami/supabase-postgres:$$cap_app_version volumes: - $$cap_appname-db-data:/var/lib/postgresql/data restart: always environment: POSTGRES_USER: $$cap_pg_user - POSTGRES_PASSWORD: $$cap_pg_pass POSTGRES_DB: $$cap_pg_db + POSTGRES_PASSWORD: $$cap_pg_pass + POSTGRES_PORT_NUMBER: $$cap_pg_port POSTGRES_INITDB_ARGS: $$cap_pg_initdb_args + POSTGRES_REPLICATION_USER: $$cap_pg_repl_user + POSTGRES_REPLICATION_MODE: $$cap_pg_repl_mode + POSTGRES_REPLICATION_PASSWORD: $$cap_pg_repl_pass + POSTGRES_MASTER_HOST: $$cap_pg_master_host + POSTGRES_MASTER_PORT_NUMBER: $$cap_pg_master_port + POSTGRES_NUM_SYNCHRONOUS_REPLICAS: $$cap_pg_num_sync_repl + POSTGRES_SYNCHRONOUS_COMMIT_MODE: $$cap_pg_sync_commit_mode caproverExtra: notExposeAsWebApp: 'true' caproverOneClickApp: variables: - id: $$cap_app_version - label: Supabase Version - defaultValue: '0.14.0' - description: Check out their Docker page for the valid tags https://hub.docker.com/r/supabase/postgres/tags + label: Postgres Version + defaultValue: '15.1.0' + description: Check out their Docker page for the valid tags https://hub.docker.com/r/bitnami/supabase-postgres/tags validRegex: /^([^\s^\/])+$/ + - id: $$cap_pg_user label: Postgres Username - description: '' - validRegex: /.{1,}/ - - id: $$cap_pg_pass - label: Postgres Password - description: '' + defaultValue: 'postgres' validRegex: /.{1,}/ + - id: $$cap_pg_db label: Postgres Default Database - description: '' + defaultValue: 'postgres' + validRegex: /.{1,}/ + + - id: $$cap_pg_pass + label: Postgres Password + defaultValue: $$cap_gen_random_hex(32) validRegex: /.{1,}/ + + - id: $$cap_pg_port + label: Postgres Port + defaultValue: '5432' + validRegex: /\d+/ + - id: $$cap_pg_initdb_args label: "OPTIONAL: Arguments for 'postgres initdb'" description: For example, --data-checksums - validRegex: /.{0,}/ + + - id: $$cap_pg_repl_user + label: Postgres Replication User + description: 'The replication user created on the master on first run. No defaults.' + + - id: $$cap_pg_repl_mode + label: Postgres Replication Mode + description: 'Replication mode. Possible values `master` or `slave`. No defaults.' + validRegex: /^(master|slave|)$/ + + - id: $$cap_pg_repl_pass + label: Postgres Replication Password + description: 'The replication users password. No defaults.' + + - id: $$cap_pg_master_host + label: Postgres Master Host + description: 'Hostname/IP of replication master (slave parameter). No defaults.' + + - id: $$cap_pg_master_port + label: Postgres Master Port + description: 'Server port of the replication master (slave parameter). Defaults to 5432.' + + - id: $$cap_pg_num_sync_repl + label: Postgres number of synchronous replica + description: 'Number of replicas that will enable synchronous replication' + + - id: $$cap_pg_sync_commit_mode + label: Postgres Replication Commit Mode + description: 'Type of synchronous commit. The available options are: `on`, `remote_apply`, `remote_write`, `local` and `off`. The default value is on.' + defaultValue: 'on' + validRegex: /^(on|remote_apply|remote_write|local|off|)$/ + instructions: start: >- Postgres + goodies = Supabase Postgres + Unmodified Postgres with some useful plugins. - Unmodified Postgres with some useful plugins. - - Our goal with this repo is not to modify Postgres, but to provide some of the most common extensions with a one-click install. + Why use it over the official postgres image? + It is an unmodified Postgres image with convenient plugins added. + It's optimized for replication, and provides popular extensions like PostGIS, pgRouting, pgTAP, and more for enhanced functionality. Ideal for those who prefer an unaltered Postgres experience with added features. end: "Supabase (Postgres) is deployed and available as srv-captain--$$cap_appname-db:5432 to other apps. For example with NodeJS: 'const client = new Client({ user: 'cap_pg_user', host: 'srv-captain--$$cap_appname', database: 'cap_pg_db', password: '********', port: 5432})'" displayName: Supabase PostgreSQL isOfficial: true description: Supabase makes it easy to use Postgres. - documentation: Taken from https://github.com/supabase/postgres + documentation: Taken from https://hub.docker.com/r/bitnami/supabase-postgres