Skip to content
Beau Barker edited this page Oct 6, 2025 · 30 revisions

PostgREST is a standalone web server that automatically transforms a PostgreSQL database into a RESTful API. It eliminates the need to write manual backend code for CRUD (Create, Read, Update, Delete) operations by leveraging the database's existing structure, constraints, and permissions to define API endpoints and their behavior.

app/caddy/Caddyfile

# PostgREST
handle_path /rest/* {
  reverse_proxy http://postgrest:3000
}

handle /rpc/* {
  reverse_proxy http://postgrest:3000
}

app/compose.yaml

  postgrest:
    image: postgrest/postgrest:v12.2.8
    environment:
      PGRST_DB_ANON_ROLE: anon
      PGRST_DB_URI: postgres://authenticator:${PGRST_AUTHENTICATOR_PASS:?}@postgres:5432/app
    networks:
      - default
      - db_default

If you're self-hosting Postgres don't forget this part:

app/compose.yaml

networks:
  db_default:
    external: true

Optionally in development, increase the log level:

app/compose.override.yaml

  postgrest:
    environment:
      PGRST_LOG_LEVEL: debug

Clone this wiki locally