August 9

Установка и настройка 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.