Установка и настройка Adminer для работы с Postgres в n8n
Часто в workflows n8n требуется сохранить небольшой объем данных в постоянное хранилище, например, идентификатор (id) сущности или пару строк в кастомную таблицу.
Поднимать для этого отдельный инстанс Postgres в Docker или заказывать облачный Postgres нецелесообразно, ведь у нас уже есть рабочий инстанс Postgres, установленный вместе с n8n. Можно использовать его, создав отдельную базу данных для экспериментов.
Для удобного администрирования подойдет Adminer - легковесный менеджер БД с минималистичным интерфейсом и базовым функционалом, которого вполне достаточно для наших задач.
В этой инструкции разберем установку и настройку Adminer в Docker на том же VPS, где работает n8n. В примере используется облачная платформа Бегет, где можно заказать установку n8n вместе с VPS.
1. Подготовка поддомена
Создайте поддомен (например, adminer.<yourdomain.com>) и направьте его на IP-адрес вашего VPS.
Именно на этом домене будет доступен веб-интерфейс Adminer по HTTPS.
2. Подключение к серверу по SSH
ssh root@ip_адрес_сервера
3. Переход в папку с n8n
cd /opt/beget/n8n
4. Редактирование docker-compose.yml
Откройте файл в редакторе nano:
nano docker-compose.yml
В секцию services добавьте сервис adminer. Замените <yourdomain.com> на свой домен.
Для выхода с сохранением в nano нажмите Ctrl + X, затем подтвердите сохранение клавишей Y.
adminer:
image: adminer:latest
restart: unless-stopped
labels:
- traefik.enable=true
- traefik.http.routers.adminer.rule=Host(`adminer.<yourdomain.com>`)
- traefik.http.routers.adminer.tls=true
- traefik.http.routers.adminer.entrypoints=web,websecure
- traefik.http.routers.adminer.tls.certresolver=mytlschallenge
- traefik.http.middlewares.adminer.headers.SSLRedirect=true
- traefik.http.middlewares.adminer.headers.STSSeconds=315360000
- traefik.http.middlewares.adminer.headers.browserXSSFilter=true
- traefik.http.middlewares.adminer.headers.contentTypeNosniff=true
- traefik.http.middlewares.adminer.headers.forceSTSHeader=true
- traefik.http.middlewares.adminer.headers.SSLHost=adminer.<yourdomain.com>
- traefik.http.middlewares.adminer.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.adminer.headers.STSPreload=true
- traefik.port=8080
ports:
- 127.0.0.1:8080:8080
depends_on:
- postgres
5. Загрузка образа Adminer
docker compose pull adminer
6. Запуск Adminer
docker compose up -d adminer
7. Проверка логов
docker compose logs adminer
8. Подключение к Adminer
Если все сделано правильно, Adminer будет доступен по адресу:
https://adminer.<yourdomain.com>
Чтобы создавать базы данных и таблицы, подключитесь к Postgres с правами администратора.
На VPS Бегет с предустановленным n8n админ - это пользователь root.
cat .env | grep POSTGRES_
Первое подключение можно выполнить к базе n8n, после чего создать свою, например my_db, для экспериментов.
В качестве сервера указывайте имя Docker-сервиса, то есть postgres.