Tested on %%FreeBSD%% 13.2.
===== PostgreSQL =====
Install %%PostgreSQL%%:
# pkg install postgresql15-server postgresql15-client
Enable the %%PostgreSQL%% service:
# sysrc postgresql_enable="YES"
Initialize %%PostgreSQL%% and start the service:
# /usr/local/etc/rc.d/postgresql initdb
# service postgresql start
Make sure the service is running properly on IPv4 and IPv6 port 5432:
$ sockstat -46 | grep 5432
Set a password for the default ''%%postgres%%'' user:
# passwd postgres
Create an owner user for your database:
# su - postgres
$ createuser admin
$ createdb foo_db -O admin
Inside the ''%%psql%%'' prompt, set an encrypted password for ''%%admin%%'' and grant
exclusive access to ''%%foo_db%%'' to the ''%%admin%%'' user:
$ psql foo_db
foo_db=# alter role admin with encrypted password 'yourpassword';
foo_db=# grant all privileges on database foo_db to admin;
foo_db=# exit
$ exit
Make %%PostgreSQL%% listen to all addresses, instead of just ''%%localhost%%''.
# vi /var/db/postgres/data15/postgresql.conf
Uncomment the ''%%listen_addresses%%'' line and set it to:
listen_addresses = '*'
Change the security settings:
# vi /var/db/postgres/data15/pg_hba.conf
Go to the bottom of the file and set ''%%trust%%'' to ''%%md5%%'' for all existing entries:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all md5
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
Also, allow remote IPv4 and IPv6 connections to our new database as ''%%admin%%''
only:
# Allow remote connections to foo_db as admin
host foo_db admin 0.0.0.0/0 md5
host foo_db admin ::/0 md5
Restart the service:
# serivce postgresql restart
===== pgAdmin4 =====
Install the needed packages:
# pkg install python py39-pip py39-virtualenv py39-sqlite3 ca_root_nss openjpeg rust
Upgrade pip to the latest version:
$ pip install --upgrade pip
Initialize the ''%%virtualenv%%'' for pgAdmin4 in your home directory:
$ cd
$ virtualenv pgadmin4
Enter the ''%%virtualenv%%'' and install pgAdmin4. This will take a while:
$ . pgadmin4/bin/activate
(pgadmin4) $ pip install pgadmin4
Create a local config file:
(pgadmin4) # mkdir -p /var/lib/pgadmin /var/log/pgadmin
(pgadmin4) $ cp pgadmin4/lib/python3.9/site-packages/pgadmin4/config.py pgadmin4/lib/python3.9/site-packages/pgadmin4/config_local.py
(pgadmin4) $ vi pgadmin4/lib/python3.9/site-packages/pgadmin4/config_local.py
Inside ''%%config_local.py%%'', edit the following values:
DEFAULT_SERVER = '0.0.0.0'
DEFAULT_SERVER_PORT = 5050
Start pgAdmin4 (always inside the ''%%virtualenv%%'') and set up your account:
(pgadmin4) # pgadmin4
Email address: you@mail.com
Password: yourpassword
Retype password: yourpassword
Open a web browser and enter pgAdmin4 (replace the IP with the appropriate one)
and log in with the email and password you just entered in the ''%%pgadmin4%%''
prompt:
http://192.168.1.11:5050
Inside the web interface, go to ''%%File -> Preferences -> Binary Paths%%'' and under
the ''%%PostgreSQL Binary Path%%'' section, check ''%%PostgreSQL 15%%'' and set the binary
path to ''%%/usr/local/bin/%%''. Then click ''%%Save%%''.
From now on, you can run ''%%pgadmin4%%'' in the background like so:
(pgadmin4) # pgadmin4 &
==== Upgrading pgAdmin4 ====
To upgrade pgAdmin4, you only have to delete and reinstall the ''%%virtualenv%%'':
$ cd
$ rm -rf pgadmin4
$ virtualenv pgadmin4
$ . pgadmin4/bin/activate
(pgadmin4) $ pip install --upgrade pgadmin4
You also have to re-create ''%%config_local.py%%'' and set ''%%DEFAULT_SERVER%%'' (see above).