Appsmith self‑host: Как запустить свою платформу
Узнайте, как быстро развернуть Appsmith — open‑source платформу для админ‑панелей и дашбордов: установка через Docker Compose или Proxmox, подключение БД и API.
Подготовка окружения и установка Docker
Обновите пакеты системы и установите Docker и Docker Compose официальным способом.
sudo apt update && sudo apt upgrade -y
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo apt install docker-compose-plugin -y
docker --version
docker compose versionСоздание директории и файла docker-compose.yml
Создайте папку для проекта и файл конфигурации docker-compose.yml с описанием сервисов (PostgreSQL, Redis, Appsmith).
mkdir -p ~/appsmith && cd ~/appsmith
nano docker-compose.ymlСодержимое docker-compose.yml
Вставьте следующую конфигурацию в открытый файл docker-compose.yml. Она определяет базу данных, Redis и само приложение Appsmith.
version: '3.9'
services:
db:
image: postgres:15-alpine
restart: unless-stopped
environment:
POSTGRES_DB: appsmith
POSTGRES_USER: appsmith
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U appsmith"]
interval: 5s
timeout: 5s
retries: 5
appsmith:
image: appsmith/appsmith-ce:latest
restart: unless-stopped
ports:
- "8080:80"
environment:
- APPSMITH_DB_URL=postgresql://appsmith:${DB_PASSWORD}@db:5432/appsmith
- APPSMITH_REDIS_URL=redis://redis:6379
- APPSMITH_JWT_SECRET=${JWT_SECRET}
- APPSMITH_ENCRYPTION_SALT=${ENCRYPTION_SALT}
- APPSMITH_ENCRYPTION_KEY=${ENCRYPTION_KEY}
- APPSMITH_DISABLE_TELEMETRY=true
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
volumes:
- appsmith_data:/appsmith-stacks
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- redis_data:/data
volumes:
postgres_data:
redis_data:
appsmith_data:Настройка переменных окружения
Создайте файл .env для хранения секретных переменных (пароли и ключи шифрования), чтобы не держать их в открытом виде в docker-compose.yml.
nano .envСодержимое .env
Добавьте переменные в файл .env. Замените значения на надежные и уникальные строки.
DB_PASSWORD=StrongPassw0rd!
JWT_SECRET=super-secret-jwt-key-1234567890abcdef
ENCRYPTION_SALT=another-very-long-salt-abcdef1234567890
ENCRYPTION_KEY=encryption-key-at-least-32-chars-long!Запуск Appsmith
Запустите сервисы в фоновом режиме. Docker Compose скачает образы и запустит контейнеры.
docker compose up -dПроверка статуса и логов
Убедитесь, что контейнеры запущены и работают корректно. Первый запуск может занять 1-2 минуты.
docker compose ps
docker compose logs -f appsmithДоступ к веб-интерфейсу
Откройте браузер и перейдите по адресу вашего сервера на порту 8080. Например: http://192.168.1.100:8080
Первоначальная настройка (First Run)
На открывшейся странице создайте аккаунт администратора (email и пароль). Затем создайте Workspace и первое приложение.
Подключение базы данных (Пример PostgreSQL)
В интерфейсе Appsmith перейдите в раздел Data Sources, выберите PostgreSQL и укажите параметры подключения. Если БД внутри Docker сети, укажите имя сервиса (db) вместо IP.
Host: db
Port: 5432
Database: appsmith
Username: appsmith
Password: StrongPassw0rd! (из .env)Как запустить Appsmith
Appsmith — это open-source платформа для быстрого создания админ-панелей, внутренних инструментов (internal tools) и дашбордов. Она позволяет подключать различные источники данных (SQL/NoSQL базы, REST/GraphQL API) и строить на их основе интерфейсы с помощью drag‑and‑drop редактора, JavaScript и встроенных виджетов.
Хостинг собственной копии (self‑host) дает полный контроль над данными, инфраструктурой, а также доступ к расширенным возможностям (например, собственным скриптам или интеграциям).
В этом гайде подробно разберем два способа запуска Appsmith:
- Docker Compose (рекомендуемый для большинства случаев, в том числе для домашней лаборатории).
- Установка в LXC‑контейнере Proxmox VE (удобный вариант для виртуализированной среды с изоляцией).
1. Предварительные требования
Перед началом установки убедитесь, что у вас есть:
- Сервер/ВМ/контейнер с ОС Linux (Ubuntu 20.04/22.04, Debian 11/12). Минимальные ресурсы: 2 CPU, 4 ГБ RAM, 10 ГБ диска (рекомендуется 4+ ГБ RAM для более комфортной работы).
- Docker Engine и Docker Compose (для первого способа).
- Доступ к терминалу с правами sudo (или root).
- Статический IP‑адрес (или DNS‑имя) для доступа к панели.
- Файервол: открытые порты
80(HTTP) и443(HTTPS) для веб‑интерфейса. Если используете порт8080(по умолчанию в примере ниже), настройте проброс/правило.
Важно:
- Для продакшена обязательно настраивайте HTTPS (например, через обратный прокси‑сервер Nginx + Let’s Encrypt).
- В локальной среде достаточно HTTP с доступом по IP или локальному домену.
2. Способ 1: Установка через Docker Compose (рекомендуемый)
Этот способ позволяет запустить Appsmith и необходимые сервисы (базу данных, обратный прокси) в одном docker-compose.yml. Он подходит для Linux‑серверов, включая домашний хост (homelab).
2.1. Подготовка окружения
Обновите пакеты и установите Docker (если еще не установлен):
sudo apt update && sudo apt upgrade -y
# Установка Docker (официальный способ)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Установка Docker Compose (через плагин)
sudo apt install docker-compose-plugin -y
Проверьте установку:
docker --version
docker compose version
2.2. Создание директории и файла docker-compose.yml
Создайте папку для проекта и перейдите в нее:
mkdir -p ~/appsmith && cd ~/appsmith
Создайте файл docker-compose.yml. Ниже приведен пример конфигурации с PostgreSQL (рекомендуется для production) и простым NGINX для статических файлов. Для базы данных можно использовать также MySQL или MongoDB — см. раздел интеграции.
version: '3.9'
services:
db:
image: postgres:15-alpine
restart: unless-stopped
environment:
POSTGRES_DB: appsmith
POSTGRES_USER: appsmith
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U appsmith"]
interval: 5s
timeout: 5s
retries: 5
appsmith:
image: appsmith/appsmith-ce:latest
restart: unless-stopped
ports:
- "8080:80"
environment:
- APPSMITH_DB_URL=postgresql://appsmith:${DB_PASSWORD}@db:5432/appsmith
- APPSMITH_REDIS_URL=redis://redis:6379
- APPSMITH_JWT_SECRET=${JWT_SECRET}
- APPSMITH_ENCRYPTION_SALT=${ENCRYPTION_SALT}
- APPSMITH_ENCRYPTION_KEY=${ENCRYPTION_KEY}
# Для локальной разработки можно включить режим отладки
- APPSMITH_DISABLE_TELEMETRY=true
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
volumes:
- appsmith_data:/appsmith-stacks
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- redis_data:/data
volumes:
postgres_data:
redis_data:
appsmith_data:
Пояснения:
appsmith-ce— community edition (бесплатная). Для enterprise‑версии используйте образappsmith/appsmith-ee.DB_PASSWORD,JWT_SECRET,ENCRYPTION_SALT,ENCRYPTION_KEY— переменные, которые нужно определить перед запуском (лучше через.env‑файл).- Redis используется Appsmith для кэширования и фоновых задач.
- Порт
8080— публичный порт для доступа к панели. Измените при необходимости.
2.3. Настройка переменных окружения
Создайте файл .env в той же директории:
nano .env
Добавьте содержимое (замените на свои значения):
DB_PASSWORD=StrongPassw0rd!
JWT_SECRET=super-secret-jwt-key-1234567890abcdef
ENCRYPTION_SALT=another-very-long-salt-abcdef1234567890
ENCRYPTION_KEY=encryption-key-at-least-32-chars-long!
Сохраните файл (Ctrl+O, Enter, Ctrl+X).
2.4. Запуск и проверка
Запустите сервисы:
docker compose up -d
Проверьте статус:
docker compose ps
Логи можно просматривать:
docker compose logs -f appsmith
Ожидайте, пока контейнеры запустятся (обычно 1‑2 минуты). Откройте в браузере http://<ваш‑IP‑адрес>:8080 (например, http://192.168.1.100:8080). Должна открыться страница приветствия Appsmith с приглашением создать первый аккаунт администратора.
3. Способ 2: Установка на Proxmox VE (LXC‑контейнер)
Proxmox VE — популярная платформа для виртуализации. LXC‑контейнеры легче, чем ВМ, и отлично подходят для приложений вроде Appsmith.
3.1. Создание LXC‑контейнера
-
В веб‑интерфейсе Proxmox VE создайте новый контейнер:
- Шаблон: Ubuntu 22.04 или Debian 12.
- Ресурсы: минимум 2‑4 ГБ RAM, 10‑20 ГБ диска, 2 vCPU.
- Сеть: статический IP (например, 192.168.1.101/24).
- Включите "капсулирование" (unprivileged) для безопасности (по умолчанию включено).
- Разрешить "TUN/TAP" (если планируете VPN‑интеграцию, иначе можно не включать).
-
После создания подключитесь к контейнеру через консоль Proxmox или SSH (если настроен внешний доступ).
3.2. Подготовка окружения внутри контейнера
Обновите систему и установите Docker:
sudo apt update && sudo apt upgrade -y
sudo apt install curl -y
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER && newgrp docker
# Установка Docker Compose
sudo apt install docker-compose-plugin -y
Проверьте установку:
docker --version
docker compose version
3.3. Развертывание Appsmith
Перейдите в домашнюю директорию и создайте docker-compose.yml (как в разделе 2.2). Вы можете скопировать тот же файл и .env, либо использовать встроенный скрипт Appsmith:
# Альтернативный способ (самый простой)
mkdir -p ~/appsmith && cd ~/appsmith
curl -O https://raw.githubusercontent.com/appsmithorg/appsmith/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/appsmithorg/appsmith/main/.env.example
mv .env.example .env
В файле .env заполните переменные (как описано выше).
3.4. Запуск и доступ
Запустите:
docker compose up -d
Проверьте, что порты открыты (в Proxmox, если контейнер внутри внутренней сети, ничего дополнительно делать не нужно). Откройте браузер и перейдите по адресу http://<IP‑контейнера>:8080.
Доступ извне сети Proxmox:
- Если контейнер имеет внешний IP, или вы пробрасываете порты через роутер/фирервол — используйте этот адрес.
- Иначе — настраивайте порт‑форвардинг на роутере или используйте VPN для доступа к внутренней сети.
4. Первоначальная настройка и создание первого приложения
После первого входа в Appsmith:
- Создайте аккаунт администратора (email/пароль). Этот аккаунт получает роль
administratorи полный контроль. - Создайте работу (Workspace). В Appsmith работа — это набор приложений. Нажмите
New Workspace→ задайте название. - Создайте приложение (Application). Можно начать с шаблона (например, «Dashboard») или с чистого листа.
- Изучите интерфейс:
- Редактор виджетов (левая панель): drag‑and‑drop компоненты (таблицы, формы, кнопки).
- Редактор запросов (вкладка «Queries»): подключение к БД или API.
- Редактор логики (вкладка «JS»): JavaScript для обработки данных и интерактивности.
- Первый пример: создайте виджет «Text» и привяжите его к простому запросу (например, SELECT из подключенной БД).
Для быстрого старта Appsmith предоставляет шаблоны (Templates) и примеры запросов — изучите их.
5. Интеграция с базами данных
Appsmith поддерживает 25+ источников данных. Ниже — примеры с PostgreSQL, MySQL и MongoDB.
5.1. PostgreSQL (как в docker-compose)
Во вкладке Data Sources (источники данных) → New → выберите PostgreSQL:
- Host:
db(если запущено в Docker Compose) или IP‑адрес внешней БД. - Port:
5432. - Database:
appsmith(или другое имя). - Username/Password: как в
.env(изdocker-compose.yml). - SSL: по необходимости.
После сохранения создайте запрос (например, SELECT * FROM users;) и используйте его в виджетах.
5.2. MySQL
Подключение аналогично, параметры:
- Host:
mysql-host - Port:
3306 - Username/Password: ваши данные.
- Database: выбранная БД.
Важно: Для локальной интеграции внутри Docker‑сети убедитесь, что MySQL‑контейнер доступен по имени хоста (например,
mysql) из контейнера Appsmith.
5.3. MongoDB
Appsmith поддерживает MongoDB как источник данных. Параметры:
- Host:
mongodb-host - Port:
27017 - Username/Password/Database: как настроено.
Примечание: Если используете MongoDB Atlas (облако), укажите строку подключения целиком (Connection String) и убедитесь, что IP‑адрес Appsmith разрешен в настройках Atlas (включая инстансы в облаке).
6. Создание внутренних инсторов и форм на базе API
Appsmith позволяет не только подключать базы данных, но и работать с любым REST/GraphQL API.
6.1. Добавление API‑источника
- В Data Sources → New → выберите REST API.
- Укажите Base URL (например,
https://api.example.com). - Настройте Authentication (Bearer Token, OAuth и т.д.) и заголовки по необходимости.
- Сохраните.
6.2. Создание API‑запроса
- Создайте запрос (например,
GET /users). - В запросе можно использовать параметры, переменные из виджетов (например,
{{ dropdown1.selectedOptionValue }}). - Результат выполнения запроса (JSON) можно привязать к виджетам (таблица, карточки, графики).
6.3. Пример: форма создания записи через API
- Добавьте виджеты:
Inputдля имени,Inputдля email,Button. - Создайте API‑запрос
POST /users(метод POST, тело:{"name": "{{ nameInput.text }}", "email": "{{ emailInput.text }}"}). - В кнопке добавьте событие
onClick→ вызовите API‑запрос и обработайте ответ (уведомление, очистка полей).
Совет: Используйте вкладку JS в виджете для дополнительной логики (например, валидация полей перед отправкой).
7. Безопасность и управление доступом (RBAC)
Appsmith реализует RBAC (Role‑Based Access Control) на уровне Workspace и приложений.
7.1. Роли и права
- Administrator (по умолчанию): управление всеми workspace, настройка Appsmith, управление пользователями.
- Developer (разработчик): может создавать/редактировать приложения в своем workspace, но не имеет доступа к настройкам инфраструктуры.
- Viewer (зритель): только просмотр приложений без редактирования.
7.2. Настройка доступа
- В настройках Workspace (раздел пользователи) добавьте пользователя (по email) и назначьте роль.
- При создании приложения вы можете настроить дополнительные ограничения (например, скрыть панель разработчика для Viewers).
7.3. Рекомендации по безопасности
- Используйте HTTPS (обратный прокси + Let’s Encrypt).
- Ограничьте доступ к API‑источникам с помощью скриптов в приложениях (Appsmith передает запросы от имени пользователя, поэтому на стороне API настраивайте собственные токены/ACL).
- Включите оповещения о попытках входа (через настройки Appsmith или интеграцию с почтой).
- Регулярно обновляйте образы Docker (
docker compose pull && docker compose up -d).
8. Резервное копирование и обновление Appsmith
8.1. Резервное копирование
Appsmith хранит данные в следующих томах (volumes):
postgres_data(база данных, включая все приложения и настройки)appsmith_data(пользовательские файлы, логи, кэши)redis_data(данные Redis, восстанавливаются при перезапуске)
Создание бэкапа (рекомендуемый подход):
- Остановите сервисы:
docker compose down. - Скопируйте данные томов (или сделайте
tarархив):# Пример для тома postgres_data docker run --rm -v ~/appsmith_postgres_data:/data -v $(pwd):/backup busybox tar czf /backup/postgres_backup.tar.gz /data # Аналогично для appsmith_data - Храните бэкапы в надежном месте (внешний диск, NAS, облачное хранилище).
8.2. Обновление Appsmith
- Обновите образы:
docker compose pull - Перезапустите сервисы (без потери данных):
docker compose up -d - Проверьте логи после обновления:
docker compose logs -f appsmith - При необходимости обновите структуру БД (Appsmith автоматически применяет миграции при запуске, но убедитесь, что версия
docker-compose.ymlсоответствует документации).
Важно: Перед обновлением на значительную версию (например, 1.9.x → 2.0.x) ознакомьтесь с релиз‑нотами Appsmith (на GitHub или сайте).
9. Итог и рекомендации по использованию
- Appsmith — мощная платформа для создания внутренних инструментов без необходимости писать весь фронтенд с нуля.
- Docker Compose — самый простой способ развернуть систему в любой Linux‑среде (включая homelab).
- LXC в Proxmox — отличный вариант для изоляции и управления ресурсами.
- Начинайте с шаблонов и простых примеров, чтобы быстро освоить возможности.
- Не забывайте про безопасность: HTTPS, управление ролями, регулярные обновления.
- Резервное копируйте базу данных — это ваше «золото».
С Appsmith вы можете автоматизировать рутинные задачи, создать кастомные дашборды для бизнес‑метрик, подключить сложные API и предоставить удобный интерфейс команде. Удачи в развертывании!