Установка Pgweb на сервере с ispmanager 6
Для управления PostgreSQL в панели ispmanager 6, можно использовать веб-приложение Pgweb.
Pgweb позволяет авторизоваться в PostgreSQL не только как администратор сервера баз данных, но и как пользователь.
Для начала потребуется установить сам веб-клиент Pgweb:
curl -s https://api.github.com/repos/sosedoff/pgweb/releases/latest \
| grep linux_amd64.zip \
| grep download \
| cut -d '"' -f 4 \
| wget -qi - \
&& unzip pgweb_linux_amd64.zip \
&& rm pgweb_linux_amd64.zip \
&& mv pgweb_linux_amd64 /usr/local/bin/pgwebВыберите свободный порт для Pgweb и запустите его на этом порту. Например, порт 3000:
/usr/local/bin/pgweb --listen=3000 &Создайте конфигурационный файл для Pgweb в каталоге Nginx:
touch /etc/nginx/vhosts-includes/pgweb-nginx.confПоместите в файл следующую конфигурацию:
location = /pgweb {
return 301 /pgweb/;
}
location /pgweb/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Script-Name /pgweb;
proxy_redirect http://127.0.0.1:3000/ /pgweb/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
proxy_cookie_path / /pgweb;
}Если вы указали другой порт для работы Pgweb, измените его для директивы proxy_pass.
Перезапустите Nginx:
service nginx restartТеперь веб-интерфейс Pgweb доступен по пути /pgweb для адреса сервера и любого сайта в этой панели, например https://192.168.0.10/pgweb или https://domain.com/pgweb.
Также для удобства можно создать кнопку для перехода веб-интерфейс Pgweb, которая будет доступна в разделе Все разделы.
Для этого потребуется создать файлы для панели и сконфигурировать их. Создайте следующие файлы:
touch /usr/local/mgr5/etc/xml/ispmgr_mod_pgweb.xml
touch /usr/local/mgr5/addon/myaddon.shВ файле /usr/local/mgr5/etc/xml/ispmgr_mod_pg.xml разместите следующую конфигурацию:
<?xml version="1.0" encoding="UTF-8"?>
<mgrdata>
<mainmenu level="admin+">
<modernmenu>
<node name="my_pgweb" customicon="/manimg/icons/pg.svg">
<node name="open_pgweb" function="https://<ip-адрес_сервера>/pgweb" />
</node>
</modernmenu>
</mainmenu>
<handler name="myaddon.sh" type="xml">
<func name="open_pgweb" />
</handler>
<lang name="en">
<messages name="desktop">
<msg name="modernmenu_my_pgweb">PostgreSQL</msg>
<msg name="modernmenu_open_pgweb">Pgweb</msg>
</messages>
</lang>
</mgrdata>В значении function можно использовать любой сайт, который есть в панели - в этом случае Pgweb будет открываться по адресу этого сайта и будет защищен SSL-сертификатом сайта, если он установлен.
В файл /usr/local/mgr5/addon/myaddon.sh запишите только одну строку:
#!/bin/bashПерезапустите панель:
/usr/local/mgr5/sbin/mgrctl -m ispmgr -R