Home » Как установить и настроить pgAdmin 4 в серверном режиме на Ubuntu 24
Как установить и настроить pgAdmin 4 в серверном режиме на Ubuntu 24

Как установить и настроить pgAdmin 4 в серверном режиме на Ubuntu 24

Если ты, как и я, не раз сталкивался с проблемой удобного веб-доступа к PostgreSQL на серверах, то знаешь, что подключение к базе данных через консоль — это конечно классика, но иногда хочется чего-то более визуального и удобного. Особенно когда нужно быстро проверить данные, выполнить несколько запросов или показать что-то коллегам без лишних заморочек с SSH-туннелями. pgAdmin 4 в серверном режиме — это как раз тот инструмент, который превращает управление PostgreSQL в гораздо более приятный процесс.

Сегодня разберём, как поднять pgAdmin 4 на Ubuntu 24 в серверном режиме, чтобы получить полноценный веб-интерфейс для работы с базами данных. Покажу все подводные камни, с которыми можно столкнуться, и поделюсь проверенными решениями.

Что такое pgAdmin 4 в серверном режиме и зачем он нужен

pgAdmin 4 — это веб-приложение на Python (Flask), которое предоставляет мощный интерфейс для администрирования PostgreSQL. В серверном режиме он работает как полноценный веб-сервер, доступный через браузер с любого устройства в сети.

Основные преимущества:

  • Удобный веб-интерфейс без необходимости установки клиентского ПО
  • Многопользовательский доступ с разграничением прав
  • Визуальный редактор запросов с подсветкой синтаксиса
  • Мониторинг производительности и активности
  • Удобный импорт/экспорт данных

Установка pgAdmin 4 на Ubuntu 24

Первым делом обновляем систему и устанавливаем необходимые пакеты:


sudo apt update
sudo apt upgrade -y
sudo apt install curl ca-certificates gnupg lsb-release

Добавляем официальный репозиторий pgAdmin:


curl -fsSL https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list'
sudo apt update

Устанавливаем pgAdmin 4 в веб-режиме:


sudo apt install pgadmin4-web

Запускаем скрипт настройки:


sudo /usr/pgadmin4/bin/setup-web.sh

Скрипт попросит создать аккаунт администратора — вводим email и пароль. Также нужно будет выбрать веб-сервер (рекомендую Apache, если не планируете кастомные настройки).

Настройка конфигурации pgAdmin 4

Основной файл конфигурации находится в /usr/pgadmin4/web/config_local.py. Вот базовые настройки, которые стоит изменить:


sudo nano /usr/pgadmin4/web/config_local.py

Добавляем следующие параметры:


# Настройка сервера
SERVER_MODE = True
DEFAULT_SERVER_PORT = 5050

# Безопасность
ENHANCED_COOKIE_PROTECTION = True
WTF_CSRF_TIME_LIMIT = 3600

# Настройка логов
LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
CONSOLE_LOG_LEVEL = 20

# Настройка сессий
SESSION_COOKIE_SECURE = True
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_SAMESITE = 'Lax'

Создаём директорию для логов:


sudo mkdir -p /var/log/pgadmin4
sudo chown www-data:www-data /var/log/pgadmin4

Настройка Apache для pgAdmin 4

Если выбрали Apache, нужно активировать несколько модулей:


sudo a2enmod wsgi
sudo a2enmod ssl
sudo a2enmod rewrite
sudo systemctl restart apache2

Конфигурация Apache автоматически создаётся в /etc/apache2/sites-available/pgadmin4.conf. Для дополнительной безопасности можно добавить SSL:


sudo nano /etc/apache2/sites-available/pgadmin4.conf

Добавляем в конфигурацию:



ServerName your-domain.com
Redirect permanent / https://your-domain.com/


ServerName your-domain.com

SSLEngine on
SSLCertificateFile /path/to/your/cert.pem
SSLCertificateKeyFile /path/to/your/private.key

WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/usr/pgadmin4/venv
WSGIProcessGroup pgadmin
WSGIScriptAlias / /usr/pgadmin4/web/pgAdmin4.wsgi


WSGIApplicationGroup %{GLOBAL}
Require all granted


Настройка безопасности и файрвола

Настраиваем ufw для ограничения доступа:


sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow from your-office-ip to any port 5432
sudo ufw enable

Для дополнительной защиты можно ограничить доступ к pgAdmin только с определённых IP:


sudo nano /etc/apache2/sites-available/pgadmin4.conf

Добавляем блок ограничения:



WSGIApplicationGroup %{GLOBAL}
Require ip 192.168.1.0/24
Require ip your-office-ip

Практические кейсы и решения проблем

Проблема Симптом Решение
Ошибка 500 при запуске Internal Server Error Проверить права доступа: sudo chown -R www-data:www-data /usr/pgadmin4
Медленная работа Долгая загрузка страниц Увеличить количество процессов WSGI: processes=4 threads=25
Не подключается к PostgreSQL Connection refused Проверить pg_hba.conf и postgresql.conf на целевом сервере
Зависание сессий Таймауты при выполнении запросов Настроить QUERY_TIMEOUT = 300 в config_local.py

Подключение к PostgreSQL серверам

После входа в pgAdmin нужно добавить серверы PostgreSQL. Вот типичная конфигурация:

Для локального сервера:

  • Host: localhost
  • Port: 5432
  • Database: postgres
  • Username: postgres

Для удалённого сервера:

  • Host: IP-адрес сервера
  • Port: 5432
  • SSL Mode: require (для продакшена)

Если планируешь работать с множеством PostgreSQL серверов, рекомендую поднять отдельную VPS под pgAdmin — так удобнее управлять доступом и не нагружать основные серверы с базами данных.

Альтернативы и сравнение

Стоит упомянуть другие инструменты для работы с PostgreSQL:

  • Adminer — лёгкий PHP-скрипт, поддерживает множество СУБД
  • DBeaver — десктопное приложение с мощным функционалом
  • phpPgAdmin — более старый веб-интерфейс на PHP
  • PostgREST — автоматический REST API для PostgreSQL

pgAdmin 4 выигрывает по функциональности и активности разработки, но может быть избыточным для простых задач.

Автоматизация и скрипты

pgAdmin 4 поддерживает командную строку для автоматизации задач:


# Создание бэкапа через pgAdmin CLI
python /usr/pgadmin4/web/pgadmin4.py --backup-server server_name --backup-format custom

# Восстановление
python /usr/pgadmin4/web/pgadmin4.py --restore-server server_name --restore-file backup.dump

Для регулярных задач можно интегрировать pgAdmin с системными скриптами:


#!/bin/bash
# Скрипт для автоматического добавления нового сервера в pgAdmin

curl -X POST \
-H "Content-Type: application/json" \
-d '{
"name": "New Server",
"host": "192.168.1.100",
"port": 5432,
"database": "postgres"
}' \
http://localhost/pgadmin4/api/v1/servers

Мониторинг и обслуживание

Для мониторинга pgAdmin 4 создаём скрипт проверки:


#!/bin/bash
# health_check.sh
response=$(curl -s -o /dev/null -w "%{http_code}" http://localhost/pgadmin4/misc/ping)
if [ $response -eq 200 ]; then
echo "pgAdmin is running"
else
echo "pgAdmin is down, restarting..."
sudo systemctl restart apache2
fi

Добавляем в cron для автоматической проверки:


# Проверка каждые 5 минут
*/5 * * * * /path/to/health_check.sh >> /var/log/pgadmin_health.log 2>&1

Нестандартные способы использования

Интересные возможности, которые не все знают:

  • Интеграция с Docker — можно поднять pgAdmin в контейнере и подключить к множеству PostgreSQL серверов
  • Кастомные дашборды — через плагины можно создавать собственные панели мониторинга
  • Работа с TimescaleDB — pgAdmin отлично работает с расширениями PostgreSQL
  • Интеграция с Grafana — можно использовать pgAdmin для настройки подключений, а Grafana для визуализации

Для высоконагруженных проектов имеет смысл арендовать выделенный сервер и разместить там pgAdmin вместе с репликами PostgreSQL для аналитики.

Заключение и рекомендации

pgAdmin 4 в серверном режиме — это мощный инструмент для команд, работающих с PostgreSQL. Он особенно полезен в следующих случаях:

  • Нужен удобный веб-интерфейс для разработчиков и аналитиков
  • Требуется централизованное управление несколькими PostgreSQL серверами
  • Важен многопользовательский доступ с разграничением прав
  • Необходим визуальный редактор запросов и мониторинг

Главные рекомендации:

  • Обязательно используйте SSL в продакшене
  • Настройте ограничения по IP для доступа
  • Регулярно обновляйте pgAdmin и следите за безопасностью
  • Для критически важных систем поднимайте pgAdmin на отдельном сервере
  • Настройте мониторинг доступности и производительности

По опыту могу сказать, что правильно настроенный pgAdmin 4 значительно упрощает жизнь при работе с PostgreSQL и становится незаменимым инструментом для команды. Главное — не забывать про безопасность и регулярное обновление.

Полезные ссылки:


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked