Гид по технологиям

Развёртывание Appsmith с помощью Docker

8 min read DevOps Обновлено 01 Dec 2025
Appsmith с Docker — развёртывание и руководство
Appsmith с Docker — развёртывание и руководство

Быстрые ссылки

  • Первое развёртывание

  • Настройка Appsmith

  • Использование Supervisor

  • Использование Docker Compose

  • Создание собственного Compose файла

  • Обновление установки

  • Конфигурация инстанса

  • Экспорт и восстановление данных

  • Использование Appsmith

  • Резюме

Appsmith — это Low‑Code платформа для сборки бизнес‑приложений из готовых UI‑компонентов. Платформа подключается к существующим источникам данных: SQL‑базы, таблицы, REST и GraphQL. Компоненты связываются с виджетами (таблицы, списки, графики) для быстрого построения интерфейсов.

Community Edition Appsmith — открытое ПО и может быть полностью размещено у вас. В этом руководстве показано, как развернуть Appsmith в Docker‑контейнере — рекомендуемый способ для упрощения установки и поддержки. Предполагается, что Docker и Docker Compose уже установлены на хосте.

Первое развёртывание

Для быстрой проверки можно запустить базовый сервер Appsmith одной командой docker run:

$ docker run -d --name appsmith -p 8080:80 -p 9001:9001 

-v $PWD/appsmith-stacks:/appsmith-stacks

appsmith/appsmith-ce

Эта команда создаёт контейнер из образа appsmith/appsmith-ce и монтирует каталог appsmith-stacks из текущей рабочей директории в /appsmith-stacks внутри контейнера. Всегда монтируйте том в это место, чтобы не потерять данные при обновлении или перезапуске контейнера.

Первичная инициализация Appsmith может занять время: контейнер сгенерирует конфигурации, создаст MongoDB‑базу и включит начальный набор плагинов. Отслеживайте состояние по логам контейнера:

$ docker logs appsmith --follow

Дождитесь сообщения Appsmith is Running! в логах перед подключением.

Настройка Appsmith

Откройте в браузере localhost:8080. Этот порт связан с портом 80 контейнера в примере выше — замените на ваш, если меняли.

Скриншот страницы приветствия Appsmith после чистой установки

Вы увидите веб‑интерфейс Appsmith. Нажмите «Get Started» и заполните форму для базовой настройки. После этого откроется новое приложение, готовое к подключению источников данных.

Использование Supervisor

Образ Appsmith использует supervisord для запуска нескольких процессов в одном контейнере. Веб‑интерфейс Supervisor доступен на порту 9001; в команде docker run выше HOST порт 9001 был привязан к контейнеру — вы можете открыть localhost:9001 чтобы увидеть список процессов.

Скриншот веб‑интерфейса supervisord для Appsmith

Просмотр Supervisor полезен при отладке, если один из компонентов перестал отвечать: можно перезапустить процесс, посмотреть его логи или аккуратно остановить без убивания всего контейнера. Внимание: держать Supervisor открытым в продакшене небезопасно — не связывайте порт 9001 к публичной сети без аутентификации.

Использование Docker Compose

Для долгосрочной эксплуатации рекомендуем Docker Compose. Appsmith поддерживает официальный docker-compose.yml, который автоматически настраивает bind‑mount appsmith-stack и пробрасывает HTTP/HTTPS и порт Supervisor.

Официальный стек включает интеграцию с Watchtower — службой, автоматически заменяющей контейнер при появлении нового образа, что упрощает обновления.

Скачайте Compose‑файл на ваш Docker‑хост:

$ curl -L https://bit.ly/32jBNin -o $PWD/docker-compose.yml

Поднимите стек:

$ docker-compose up -d

Дождитесь в логах Appsmith is Running! прежде чем открыть localhost.

Создание собственного Compose файла

Официальный Compose не даёт всех переменных для кастомизации портов или версии образа. Ниже — упрощённый пример, позволяющий указать порты и зафиксировать версию образа.

version: "3"

services:
  appsmith:
    image: appsmith/appsmith-ce:${IMAGE_TAG:-latest}
    ports:
      - ${HTTP_PORT:-80}:80
      - ${HTTPS_PORT:-443}:443
    volumes:
      - stacks:/appsmith_stacks
    restart: unless-stopped

volumes:
  stacks:

Теперь можно запускать конкретную версию и порт:

$ IMAGE_TAG=v1.6.19 HTTP_PORT=8080 docker-compose up -d

Этот файл использует именованный Docker‑том вместо прямого хоста‑bind‑маунта.

Обновление установки

Чтобы обновиться вручную, подтяните образ и пересоздайте контейнер:

$ docker-compose pull && docker-compose up -d --force-recreate appsmith

Персистентные данные находятся в томе stacks, поэтому пересоздание безопасно.

Если вы используете Watchtower (как в официальном примере), обновления происходят автоматически. Чтобы добавить Watchtower в ваш стек, расширьте compose‑файл:

version: "3"

services:
  appsmith:
    image: appsmith/appsmith-ce:${IMAGE_TAG:-latest}
    ports:
      - ${HTTP_PORT:-80}:80
      - ${HTTPS_PORT:-443}:443
    volumes:
      - stacks:/appsmith_stacks
    labels:
      com.centurylinklabs.watchtower.enable: "true"
    restart: unless-stopped

  watchtower:
    image: containrrr/watchtower:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --interval 3600 --label-enable --cleanup
    restart: unless-stopped

volumes:
  stacks:

Watchtower проверяет обновления каждый час (3600 секунд) и обновит только контейнеры с меткой com.centurylinklabs.watchtower.enable. Для работы Watchtower нужен доступ к Docker сокету хоста.

Конфигурация инстанса

Файл конфигурации Appsmith находится в /appsmith-stacks/configuration/docker.env внутри контейнера. Если вы montировали локальную директорию, правьте файл на хосте; иначе достаньте файл командой docker cp.

# Если вы смонтировали "stacks" в /appsmith-stacks

$ nano stacks/configuration/docker.env

$ docker cp appsmith:/appsmith-stacks/configuration/docker.env docker.env

$ nano docker.env

$ docker cp docker.env appsmith:/appsmith-stacks/configuration/docker.env

Файл содержит переменные окружения: учётные данные, ключи интеграций, настройки почты и MongoDB. Обязательные значения заполняются при первом запуске.

Пример изменения почтовых настроек — поменяйте значение и перезапустите контейнер:

APPSMITH_MAIL_ENABLED=true

APPSMITH_MAIL_HOST=mail.example.com

APPSMITH_MAIL_PORT=465

APPSMITH_MAIL_USERNAME=appsmith

APPSMITH_MAIL_PASSWORD=$3cureP@ss

APPSMITH_MAIL_FROM=appsmith@example.com

Перезапуск применит новые значения:

$ docker-compose restart appsmith

Экспорт и восстановление данных

Регулярные бэкапы критичны, так как приложения, созданные в Appsmith, трудно воспроизвести без резервных копий.

Контейнер включает команду для создания полного архива:

$ docker-compose exec appsmith appsmithctl export_db

Архив сохраняется в /appsmith-stacks/data/backup/appsmith-data.archive внутри контейнера. Скопируйте его на хост:

$ docker cp appsmith:/appsmith-stacks/data/backup/appsmith-data.archive appsmith-backup-$(date +%Y-%m-%d).archive

Также скопируйте каталог конфигурации /appsmith-stacks/configuration — это упростит восстановление настроек.

Для восстановления поместите архив в /appsmith-stacks/data/restore нового контейнера и выполните импорт:

$ docker cp appsmith-backup-2022-04-13.archive appsmith:/appsmith-stacks/data/restore

$ docker-compose exec appsmith appsmithctl import_db

Затем перезапустите Appsmith:

$ docker-compose restart appsmith

Ключевые рекомендации по бэкапам:

  • Делайте ежедневные инкрементные/еженедельные полные бэкапы в зависимости от частоты изменений.
  • Храните копии вне инфраструктуры хоста (облако или отдельный сервер).
  • Регулярно проверяйте восстановление на тестовой среде.

Использование Appsmith

Приложения Appsmith состоят из четырёх основных частей:

  • Pages — экраны приложения.
  • Widgets — UI‑виджеты на экранах.
  • Queries/JavaScript — пользовательские JS‑функции и запросы.
  • Datasources — подключения к внешним хранилищам данных.

Скриншот пустого приложения Appsmith

Создайте новое приложение через кнопку «Add a Datasource». Можно быстро создать пример, выбрав одну из встроенных sample‑баз — опция users добавит PostgreSQL с демо‑данными.

Скриншот создания источника данных в Appsmith

Нажмите «New Query», чтобы добавить запрос к базе.

Скриншот создания запроса в Appsmith

Вернитесь на страницу приложения (Page 1), нажмите «Add a Widget» и перетащите виджет на холст (например, List). В правой панели свойств очистите тестовые данные и подставьте {{Query1.data}} — это выполнит запрос и покажет реальные данные.

Скриншот пустой страницы с кнопкой Add a Widget в Appsmith

Скриншот настройки виджета Appsmith для работы с источником данных

Когда закончите строительный этап, нажмите «Deploy» в правом верхнем углу, чтобы опубликовать приложение в режиме просмотра.

Скриншот Appsmith с показом списка пользователей в режиме просмотра

Рекомендации по безопасности и жёсткая настройка

Important: продакшен‑развёртывание требует дополнительных мер безопасности.

  • Не пробрасывайте Supervisor (порт 9001) в публичную сеть. Если нужно, защитите его базовой аутентификацией через обратный прокси.
  • Разворачивайте Appsmith за HTTPS. Используйте обратный прокси (Nginx/Traefik) с TLS и HSTS.
  • Не храните секреты в открытых репозиториях. Используйте менеджеры секретов (Vault, Docker secrets) или защищённые переменные окружения.
  • Ограничьте доступ к MongoDB: используйте auth, firewall, и отдельную сеть Docker или внешний управляемый кластер.
  • Минимизируйте права процессов: запускайте контейнеры с read‑only там, где это возможно, и ограничьте capabilities.
  • Регулярно проверяйте уязвимости образов (clair, trivy) и применяйте обновления.

Альтернативные подходы

  • Kubernetes/Helm: для крупного производства используйте Helm‑чарт и k8s для автоматического масштабирования, управления конфигурациями и секретами.
  • Управляемые PaaS: если хотите избежать управления инфраструктурой — рассмотрите хостинг на managed платформе (платные варианты), но потеряете полный контроль.
  • Самостоятельная установка без Docker: возможна, но сложнее в поддержке и воспроизводимости.

Когда такой подход не подходит (контр-примеры)

  • Если необходима высокая отказоустойчивость и автоматическое масштабирование по запросам — одиночный Docker‑контейнер не лучший выбор.
  • Строгие требования регуляторов по изоляции данных могут требовать специализированной инфраструктуры и сертифицированных хостингов.

Ролевые чек‑листы

Администратор (DevOps):

  • Подготовить Docker хост с достаточными ресурсами.
  • Настроить резервные копии и проверять восстановление.
  • Настроить мониторинг и логирование контейнеров.
  • Настроить TLS и ограничить доступ к портам.

Разработчик Appsmith:

  • Создавать приложения в тестовой среде.
  • Экспортировать приложения и конфигурации перед масштабными изменениями.
  • Версионировать Queries/JS в системе контроля версий (по возможности).

Оператор (Support):

  • Проверять логи docker logs appsmith --follow.
  • Использовать Supervisor (на защищённом интерфейсе) для перезапуска процессов.
  • Выполнять восстановление из бэкапа на стенде перед применением в проде.

Мини‑методология развёртывания (шаги)

  1. Подготовьте хост: обновите OS, установите Docker и Docker Compose.
  2. Создайте каталог для appsmith-stacks и задайте права.
  3. Скачайте официальный docker‑compose.yml и проверьте переменные.
  4. Запустите стек, дождитесь Appsmith is Running!.
  5. Настройте TLS и обратный прокси.
  6. Настройте бэкапы и мониторинг.
  7. Тестируйте восстановление и обновления.

План действий при инциденте и откате

  1. Оценить проблему: посмотреть логи контейнера и Supervisor.
  2. Если дело в образе после обновления — откатить до предыдущей версии образа и пересоздать контейнер:
$ IMAGE_TAG= docker-compose up -d --force-recreate appsmith
  1. Если повреждена БД — восстановить последний рабочий бэкап через appsmithctl import_db.
  2. Уведомить команду и зафиксировать причины в пост‑мортеме.

Тесты и критерии приёмки

Критерии приёмки для продакшен‑инстанса:

  • UI загружается по HTTPS.
  • Механизм логина работает и сессии создаются корректно.
  • Подключение к источникам данных успешно выполняет тестовые запросы.
  • Созданный бэкап успешно импортируется на тестовом стенде.
  • Мониторинг и алерты настроены (CPU, память, доступность).

Тесты:

  • Smoke test: открыть главную страницу и выполнить простой запрос к sample DB.
  • Интеграционный: создать приложение, сохранить и опубликовать, проверить данные в браузере.
  • Резервное копирование: создать бэкап и проверить его целостность.

Факты и основные цифры

  • Порты по умолчанию: HTTP 80, HTTPS 443, Supervisor 9001.
  • Watchtower по умолчанию можно настроить с интервалом 3600 секунд.
  • Рекомендуется хранить том stacks на отдельном диске или NAS для долговременного хранения.

Совместимость и миграция

  • Версии Appsmith: фиксируйте IMAGE_TAG при развёртывании, чтобы избежать неожиданной несовместимости при автоматических обновлениях.
  • При миграции между хостами копируйте том stacks и каталог конфигурации. Тестируйте импорт на стенде перед переносом в прод.

Приватность и соответствие GDPR

  • Appsmith может хранить персональные данные в подключённых БД — обеспечьте соответствие политике обработки данных и правам субъектов.
  • Логи и бэкапы могут содержать PII — ограничьте доступ и шифруйте архивы при хранении в публичном облаке.
  • Обновляйте политику хранения данных и сроки удаления.

Короткое объявление для команды (пример)

Appsmith развернут в Docker и готов к использованию: http://<ваш‑хост>:8080. Пожалуйста, не храните секреты в репозиториях и сообщите DevOps для доступа. Регулярные бэкапы настроены, инструкции по восстановлению в внутренней вики.

Социальный предпросмотр

OG title: Развёртывание Appsmith с Docker — быстрое руководство

OG description: Запустите Appsmith CE в Docker: инструкции по Compose, бэкапам, обновлениям и безопасности.

Краткое резюме

  • Appsmith в Docker позволяет быстро и повторяемо запускать Low‑Code платформу локально или в облаке.
  • Для продакшена используйте Docker Compose/Watchtower, TLS, ограничьте доступ к Supervisor и настраивайте регулярные бэкапы.
  • Тестируйте восстановление и фиксируйте версии образов.

Краткий набор команд для полного удаления (включая данные):

$ docker-compose down --volumes

Это полностью удалит стек и данные в appsmith-stacks томе.

Глоссарий — 1 строка определения

  • Docker Compose — инструмент для определения и запуска многоконтейнерных Docker‑приложений.
  • Watchtower — сервис, автоматически обновляющий Docker‑контейнеры при появлении новых образов.
  • Supervisor — менеджер процессов внутри контейнера.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Удаление застрявших файлов в macOS
macOS

Удаление застрявших файлов в macOS

Как отправить селфи-стикер в Instagram
Instagram

Как отправить селфи-стикер в Instagram

Настройка Office: создание и управление конфигурациями
Развертывание ПО

Настройка Office: создание и управление конфигурациями

Безопасное хранение паролей для разработчиков
Безопасность

Безопасное хранение паролей для разработчиков

Помощь человеку с суицидальными мыслями в соцсетях
Безопасность

Помощь человеку с суицидальными мыслями в соцсетях

Как подогнать экран Windows 10 под телевизор
Руководство

Как подогнать экран Windows 10 под телевизор