Skip to content

Quick Start

The fastest way to try Omnigres out is by using its container image:

docker volume create omnigres
# The environment variables (`-e`) below have these set as defaults
docker run --name omnigres \
           -e POSTGRES_PASSWORD=omnigres \
           -e POSTGRES_USER=omnigres \
           -e POSTGRES_DB=omnigres \
           --mount source=omnigres,target=/var/lib/postgresql/data \
           -p 127.0.0.1:5432:5432 -p 127.0.0.1:8080:8080 --rm ghcr.io/omnigres/omnigres:latest
# Now you can connect to it:
psql -h localhost -p 5432 -U omnigres omnigres # password is `omnigres`

You can access the HTTP server at localhost:8080

Important updates

April 2023: Omnigres container image now includes plrust, an extension that allows developing functions in Rust!

Which batteries are included?

This image contains all Omnigres extensions (with omni_httpd and omni_web preinstalled), as well as the following languages & extensions:

  • adminpack
  • amcheck
  • autoinc
  • bloom
  • bool_plperl
  • bool_plperlu
  • btree_gin
  • btree_gist
  • citext
  • cube
  • dblink
  • dict_int
  • dict_xsyn
  • earthdistance
  • file_fdw
  • fuzzystrmatch
  • hstore
  • hstore_plperl
  • hstore_plperlu
  • hstore_plpython3u
  • insert_username
  • intagg
  • intarray
  • isn
  • jsonb_plperl
  • jsonb_plperlu
  • jsonb_plpython3u
  • lo
  • ltree
  • ltree_plpython3u
  • moddatetime
  • old_snapshot
  • omni_containers
  • omni_ext
  • omni_http
  • omni_httpc
  • omni_httpd
  • omni_seq
  • omni_sql
  • omni_types
  • omni_web
  • pageinspect
  • pg_buffercache
  • pg_freespacemap
  • pg_prewarm
  • pg_stat_statements
  • pg_surgery
  • pg_trgm
  • pg_visibility
  • pg_walinspect
  • pgcrypto
  • pgrowlocks
  • pgstattuple
  • pljava (temporarily excluded)
  • plperl
  • plperlu
  • plpgsql
  • plpython3u
  • plrust
  • pltcl
  • pltclu
  • postgres_fdw
  • refint
  • seg
  • sslinfo
  • tablefunc
  • tcn
  • tsm_system_rows
  • tsm_system_time
  • unaccent
  • uuid-ossp
  • xml2
Why is the container image so large?

Unfortunately, plrust extension is responsible for many gigabytes of artifacts in the image. Typically, if you need Rust, this is not a big problem as both development machines and servers can handle this just fine.

However, if you want a smaller image and don't need Rust, use slim flavor:

ghcr.io/omnigres/omnigres-slim:latest

Building your own image

If you can't use the pre-built image (for example, you are running a fork or made changes), you can build the image yourself:

# Build the image
DOCKER_BUILDKIT=1 docker build . -t ghcr.io/omnigres/omnigres