Install required packages

As root:

echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" >/etc/apt/sources.list.d/pgadmin4.list
curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | gpg --dearmor > packages.pgadmin.gpg 
install -o root -g root -m 644 packages.pgadmin.gpg /etc/apt/trusted.gpg.d/
rm packages.pgadmin.gpg
apt update
apt install uwsgi-plugin-python3 pgadmin4-server

If you are running sid replace $(lsb_release -cs) with the current stable (bullseye)

Create user and paths

adduser --system --home /var/lib/pgadmin --disabled-login --shell /usr/sbin/nologin pgadmin4
mkdir /var/log/pgadmin
chown pgadmin4 /var/log/pgadmin

Systemd unit file

Create /etc/systemd/system/pgadmin4.service

[Unit]
Description = PgAdmin4 uwsgi Service
After = network.target network-online.target
Wants = network-online.target

[Service]
User=pgadmin4
StateDirectory=pgadmin
RuntimeDirectory=pgadmin4
LogsDirectory=pgadmin
ExecStart=uwsgi \
      --socket /run/pgadmin4/pgadmin4.sock --chmod-socket=666 \
      --plugin python3 \
      -H /usr/pgadmin4/venv \
      --wsgi-file /usr/pgadmin4/web/pgAdmin4.wsgi \
      --processes 1 \
      --threads 25 \
      --chdir /usr/pgadmin4/web/ \
      --manage-script-name \
      --mount /pgadmin=pgAdmin4:app
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -INT $MAINPID
Restart=always
Type=notify
StandardError=syslog
NotifyAccess=all
KillSignal=SIGQUIT

[Install]
WantedBy = multi-user.target

Configure pgadmin4

Create /etc/pgadmin/config_system.py

LOG_FILE = '/var/log/pgadmin/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin/sessions'
STORAGE_DIR = '/var/lib/pgadmin/storage'

Configure pgadmin

cd /usr/pgadmin
source venv/bin/activate
cd web
python setup.py
# Answer the questions
chown pgadmin4:nogroup -R /var/lib/pgadmin

Configure nginx

upstream pgadmin {
  server unix:///run/pgadmin4/pgadmin4.sock;
}

server {
...
  location ^~ /pgadmin {
    include uwsgi_params;
    uwsgi_pass  pgadmin;
  }
...
}