Skip to main content
If you’re using a managed PostgreSQL service, check our provider-specific guides for step-by-step instructions tailored to your platform:

Supabase

Neon

DigitalOcean

AWS RDS

Render

Heroku

Railway

Laravel Cloud

Google Cloud SQL

Azure Database

Aiven

Fly.io

Timescale

CockroachDB

Prerequisites

  • A PostgreSQL database (version 12 or later recommended) that is accessible over the network
  • The database host, port, name, username, and password
  • A VexiData account

Connect PostgreSQL to VexiData

1

Gather your connection details

You need five pieces of information to connect. If you set up PostgreSQL yourself, you’ll already know these. If someone else manages the database, ask your database administrator.
2

Allow VexiData through your firewall (if applicable)

If your PostgreSQL server is behind a firewall or only accepts connections from specific IPs, add VexiData’s IP addresses:
  • 46.101.71.122
Common places to configure this:
  • Cloud VMs (AWS EC2, DigitalOcean Droplets, GCP Compute) — Security Groups or firewall rules
  • Self-hosted serverspg_hba.conf and/or your OS firewall (e.g., ufw, iptables)
  • Managed databases — See the provider-specific guides linked above
If your database is only accessible from localhost or a private network, you’ll need to either expose it to the internet or set up an SSH tunnel. VexiData requires a direct TCP connection to your database.
3

Verify PostgreSQL accepts remote connections

By default, PostgreSQL only listens on localhost. If your database is on a remote server, make sure it’s configured to accept external connections:
  1. In postgresql.conf, set:
  1. In pg_hba.conf, add a line allowing VexiData’s IPs (or all IPs if behind a firewall):
  1. Restart PostgreSQL for changes to take effect.
Managed database services (Supabase, Neon, RDS, etc.) handle this automatically. You only need this step for self-hosted PostgreSQL.
4

Add the connection in VexiData

  1. Go to Data Sources in VexiData
  2. Click PostgreSQL to open the connection form
  3. Fill in the details:
5

Test and save

Click Test & Save Connection. VexiData will verify it can reach your database. Once connected, your schema will be analyzed automatically.
For security, we recommend connecting VexiData with a dedicated read-only user instead of your admin or application user. This ensures VexiData can only read data, never modify it.
If your tables are in a custom schema, replace public with your schema name in the commands above.

Troubleshooting

This means VexiData can’t reach your server. Check:
  • Your firewall allows inbound connections on the PostgreSQL port from VexiData’s IPs
  • listen_addresses in postgresql.conf is set to '*' (not 'localhost')
  • Your server has a public IP or hostname that resolves correctly
  • If on a cloud VM, the Security Group / firewall rules allow traffic on port 5432
  • Verify the username and password are correct
  • Check pg_hba.conf allows the authentication method you’re using (e.g., scram-sha-256 or md5) for remote connections
  • Some setups use peer or ident authentication which only works for local connections — remote connections need password-based auth
  • PostgreSQL is case-sensitive for database names. Make sure the name matches exactly (e.g., MyApp is different from myapp)
  • Run \l in psql to list all available databases
  • Confirm your tables are in the public schema. If they’re in a custom schema (e.g., app or api), update the Schema field in VexiData
  • Check that your user has SELECT permissions: GRANT SELECT ON ALL TABLES IN SCHEMA public TO your_user;
  • If your server requires SSL, VexiData will attempt SSL automatically
  • For self-hosted servers, ensure your PostgreSQL SSL certificates are properly configured
  • Check that ssl = on is set in postgresql.conf if you require encrypted connections