Golang和通过Ubuntu VPS中的客户端访问postgres?

I'm trying to follow the digital ocean tutorial on configuring pgadmin4 in server mode, but damn it is long, and I have to first configure apache server, python and virtualenv (via other 2 tutorials).

I don't want to install so many dependencies in my server just to access postgres via pgamin 4.

How do you guys do it?

I'm running a go webserver via https listening on ports 443 and redirecting 80 to 443

So this is what I did to achieve connection from my laptop to my ubuntu VPS, via webstorm (I suppose any intellij works also should work with other IDE's)

0 login to your server 1. Locate postgresql.conf usually under /etc/postgresql/10/main 2. sudo nano postgresql.conf 3. Locate and change line at connections

    listen_addresses = '*'
  1. Then in same dir edit: sudo nano pg_hba.conf

    #TYPE  DATABASE        USER            ADDRESS                 METHOD
    host    all             all             0.0.0.0/0               md5
    

Md5 means I connect with user and his password

5 Dont forget to allow ufw (firewall)

sudo ufw allow 5432/tcp
  1. Open webstorm > Database (tab) > click + to add PostgtresSQL source (fill relevant info, user name, password, database name, host and port, etc...)

    jdbc:postgresql://example.com:5432/my_database_name
    
  2. Press on schemas and synchronize OR press:

    Source > Settings > Schemas tab > [check] All Databases > refresh       
    

Seeing your other answer I would like to offer a more secure alternative.

What's wrong with the current approach?

Your PostgreSQL instance is accessible from the internet. Generally you should try to limit access only where it is required. Especially if you are not using SSL to connect to PostgreSQL, an open port like this is a target for traffic interception and brute force attacks.

Alternative

Seeing that you are you using JetBrains IDE's you only need one other step to access your data - setting up a SSH tunnel.

This encrypts with SSH all your connections between development host and server without exposing PostgreSQL to the outside world.

In the connection settings for your database in the Jetbrains IDE select the SSH/SSL tab and "Use SSH tunnel". Input the information of your server and the SSH user + password/SSH key (use SSH keys for better security) into the relevant input fields.

Undo the settings changes you did to open the firewall and configure PostgreSQL to listen to all nodes.

Connections to your database are now possible over encrypted tunnels without exposing your database to any unwanted attacks.