Развёртывание 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. Нажмите «Get Started» и заполните форму для базовой настройки. После этого откроется новое приложение, готовое к подключению источников данных.
Использование Supervisor
Образ Appsmith использует supervisord для запуска нескольких процессов в одном контейнере. Веб‑интерфейс Supervisor доступен на порту 9001; в команде docker run выше HOST порт 9001 был привязан к контейнеру — вы можете открыть localhost:9001 чтобы увидеть список процессов.

Просмотр 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=trueAPPSMITH_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 — подключения к внешним хранилищам данных.

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

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

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


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

Рекомендации по безопасности и жёсткая настройка
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 (на защищённом интерфейсе) для перезапуска процессов.
- Выполнять восстановление из бэкапа на стенде перед применением в проде.
Мини‑методология развёртывания (шаги)
- Подготовьте хост: обновите OS, установите Docker и Docker Compose.
- Создайте каталог для
appsmith-stacksи задайте права. - Скачайте официальный docker‑compose.yml и проверьте переменные.
- Запустите стек, дождитесь
Appsmith is Running!. - Настройте TLS и обратный прокси.
- Настройте бэкапы и мониторинг.
- Тестируйте восстановление и обновления.
План действий при инциденте и откате
- Оценить проблему: посмотреть логи контейнера и Supervisor.
- Если дело в образе после обновления — откатить до предыдущей версии образа и пересоздать контейнер:
$ IMAGE_TAG= docker-compose up -d --force-recreate appsmith - Если повреждена БД — восстановить последний рабочий бэкап через
appsmithctl import_db. - Уведомить команду и зафиксировать причины в пост‑мортеме.
Тесты и критерии приёмки
Критерии приёмки для продакшен‑инстанса:
- 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 — менеджер процессов внутри контейнера.
Похожие материалы
Удаление застрявших файлов в macOS
Как отправить селфи-стикер в Instagram
Настройка Office: создание и управление конфигурациями
Безопасное хранение паролей для разработчиков
Помощь человеку с суицидальными мыслями в соцсетях