Введение
Adwos CMS — движок для создания досок объявлений, маркетплейсов и классифайд-площадок на Go + Next.js. Из коробки поддерживает объявления, магазины с каталогом товаров, безопасную сделку (эскроу), чат, блог, истории, систему отзывов, монетизацию, импорт/экспорт и модульную архитектуру.
Для кого
- Доски объявлений (авто, недвижимость, работа, услуги)
- Маркетплейсы товаров и магазинов
- Фриланс-биржи и агрегаторы услуг
- Аренда жилья, авто, инструмента
- Любые классифайд-площадки с фильтрами и категориями
Ключевые возможности
Технологии
| Backend | Go, Chi Router, PostgreSQL 16, Redis 7 |
| Поиск | Manticore Search |
| Frontend | Next.js, React 19, Tailwind CSS, HeroUI, Framer Motion |
| Realtime | WebSocket (чат, уведомления) |
| Редактор контента | Editor.js (блог, описания) |
| Хранилище | Локальное или S3-совместимое (Minio, AWS S3) |
Установка
Системные требования
| ОС | Linux (Ubuntu 22.04+ рекомендуется) |
| PostgreSQL | 16+ |
| Redis | 7+ |
| Manticore Search | 6+ |
| Node.js | 20+ (для фронтенда) |
| Домен | С SSL-сертификатом (Let's Encrypt) |
| RAM | Минимум 1 ГБ, рекомендуется 2+ ГБ |
Быстрая установка
Выполните на сервере с правами root:
sudo bash -c "$(curl -sSL https://adwos.org/install.sh)"LICENSE_KEY="ваш-ключ" sudo -E bash -c "$(curl -sSL https://adwos.org/install.sh)"Веб-мастер установки
После запуска скрипта откроется веб-мастер установки на порту 8888. Откройте в браузере:
http://ваш-домен:8888Мастер проведёт через все шаги:
- Проверка лицензионного ключа и домена
- Проверка системных требований сервера
- Настройка инфраструктуры (PostgreSQL, Redis, Manticore)
- Создание администратора и загрузка начальных данных
- Настройка хранилища файлов и SMTP
- Запуск CMS и настройка HTTPS через Caddy
https://ваш-домен без указания порта. Инсталлер самоудаляется после завершения.Установщик проверит системные требования, запросит лицензионный ключ, скачает CMS и настроит всё автоматически: домен, БД, Redis, Manticore, SMTP, данные администратора. По завершении будет сгенерирован файл .env со всей конфигурацией.
Ручная установка
# 1. Создайте базу данных
createdb -U postgres adwos_cms
# 2. Разместите бинарник и фронтенд
mkdir -p /opt/adwos-cms
cp adwos-cms /opt/adwos-cms/
cp -r .next /opt/adwos-cms/
# 3. Скопируйте лицензию
cp license.lic /opt/adwos-cms/
# 4. Сконфигурируйте .env
cp .env.example /opt/adwos-cms/.env
nano /opt/adwos-cms/.env
# 5. Примените миграции
cd /opt/adwos-cms && ./adwos-cms migrate up
# 6. Запустите
./adwos-cms serveКонфигурация (.env)
| SERVER_HOST / SERVER_PORT | Адрес и порт API-сервера |
| DB_HOST / DB_PORT / DB_NAME | Подключение к PostgreSQL |
| REDIS_ADDR | Адрес Redis |
| MANTICORE_ADDR | Адрес Manticore Search |
| JWT_SECRET | Секрет для JWT-токенов (генерируется автоматически) |
| LICENSE_KEY | Лицензионный ключ Adwos CMS |
| LICENSE_DOMAIN | Домен, привязанный к лицензии |
| STORAGE_TYPE | Хранилище файлов: local или s3 |
| SMTP_* | Параметры почтового сервера |
| FRONTEND_URL | URL фронтенда для CORS |
Дашборд
Главная страница админ-панели отображает ключевые метрики: количество пользователей, объявлений, последние регистрации и новые объявления. Доступ по адресу /admin.
Управление объявлениями
Раздел «Объявления» позволяет просматривать, модерировать и управлять всеми объявлениями на площадке.
Жизненный цикл объявления
- Просмотр всех объявлений с фильтрацией по статусу, категории, пользователю
- Одобрение или отклонение объявлений на модерации
- Архивация и восстановление объявлений
- Удаление объявлений
- Просмотр жалоб на объявления
Типы цен
| Фиксированная | Точная цена товара или услуги |
| Договорная | Цена обсуждается с продавцом |
| Бесплатно | Без стоимости |
| Обмен | Обмен на другой товар |
Категории и кастомные поля
Категории организуют объявления. Поддерживается иерархия (родительская → дочерние). К каждой категории привязываются кастомные поля, которые определяют характеристики объявлений.
Управление категориями
- Создание, редактирование, удаление категорий
- Иерархия: категория может иметь подкатегории
- Иконки и порядок сортировки
- Импорт и экспорт структуры категорий
Типы полей
| text | Текстовое поле |
| number | Числовое поле |
| select | Выпадающий список |
| multi_select | Множественный выбор |
| boolean | Переключатель Да / Нет |
| range | Диапазон (от — до) |
| date | Выбор даты |
| color | Выбор цвета |
| location | Координаты на карте |
Настройки полей
- Обязательное — поле должно быть заполнено при создании объявления
- Фильтруемое — поле доступно в фильтрах поиска
- Поисковое — значение индексируется для полнотекстового поиска
- Группа — объединение полей в визуальную группу
- Стиль отображения — chips, checkboxes, radio, color_picker, range_slider
- Зависимость — поле показывается только при определённом значении другого поля
Пользователи
Управление зарегистрированными пользователями площадки.
Роли
| user | Обычный пользователь — публикация объявлений, чат, избранное |
| moderator | Модератор — доступ к модерации объявлений и контента |
| admin | Администратор — полный доступ к админ-панели |
Возможности
- Просмотр списка пользователей с фильтрацией и поиском
- Изменение роли пользователя
- Блокировка и разблокировка аккаунтов
- Удаление пользователей
- Модерация аватаров (одобрение / отклонение)
Магазины
Раздел «Магазины» позволяет управлять витринами продавцов, тарифными планами и подписками. Доступ: /admin/shops и /admin/shop-tariffs.
Управление магазинами
- Просмотр всех магазинов с фильтрацией по статусу и тарифу
- Одобрение, блокировка и удаление магазинов
- Просмотр страниц, баннеров и статистики магазина
- Привязка магазина к пользователю
Тарифные планы магазинов
Администратор создаёт тарифные планы, которые продавцы подключают через личный кабинет.
| Название и описание | Отображается в интерфейсе выбора тарифа |
| Цена и период | Ежемесячно или ежегодно |
| Лимит объявлений | Максимальное количество активных объявлений |
| Лимит фотографий | Максимум фото на одно объявление |
| Баннер на витрине | Возможность загрузить баннер магазина |
| Кастомные страницы | Возможность создавать страницы «О магазине», «Контакты» и др. |
Импорт и экспорт
Импорт объявлений
Система импорта позволяет автоматически загружать объявления из внешних источников. Доступ: /admin/import.
| Avito XML | Стандартный формат выгрузки Avito — импортируется из корзины объявлений |
| Универсальный XML | Собственный XML-формат с маппингом полей |
| Расписание | Периодический импорт по расписанию (cron) |
| Предпросмотр | Просмотр данных перед применением импорта |
- Создание источника импорта с URL фида
- Запуск импорта вручную или по расписанию
- Просмотр истории запусков с результатами (создано, обновлено, ошибки)
- Маппинг полей фида на кастомные поля категорий
Экспорт данных
Выгрузка данных площадки в различных форматах для аналитики или переноса.
| Объявления | CSV / XLSX с характеристиками, ценами, фото |
| Пользователи | CSV с профилями, датами регистрации, активностью |
| Транзакции | CSV финансовых операций кошелька |
Истории
Истории (Stories) — вертикальные медиа-карточки на главной странице. Доступ: /admin/stories.
- Создание историй: загрузка изображения или видео, заголовок, ссылка
- Настройка порядка отображения
- Ограничение по сроку показа (дата истечения)
- Привязка к категории или объявлению
- Просмотр статистики просмотров каждой истории
- Публикация и снятие с публикации
Блог
Встроенная блог-платформа для публикации новостей, статей и обновлений. Контент создаётся в блочном редакторе Editor.js.
- Создание и редактирование статей с обложкой
- Блочный редактор: параграфы, заголовки, списки, цитаты, код, изображения, таблицы
- Категории и теги
- Статусы: черновик, опубликован
- Комментарии с модерацией
- Лайки на постах и комментариях
- Связанные посты
Модерация
Система модерации контента обеспечивает качество площадки.
Режимы модерации
| Ручная | Каждое объявление проходит проверку модератором перед публикацией |
| Автоматическая | Объявления публикуются сразу после создания |
Что модерируется
- Объявления — одобрение, отклонение с причиной
- Жалобы на объявления — просмотр, рассмотрение, отклонение
- Аватары пользователей — одобрение или отклонение загруженных фото
- Комментарии в блоге — удаление, обработка жалоб
- Отзывы — удаление, обработка апелляций
Объявления
Основная сущность CMS. Пользователи создают объявления с фотографиями, описанием и характеристиками, специфичными для выбранной категории.
Создание объявления
- Выбор категории (с подкатегориями)
- Загрузка изображений с drag-and-drop, выбор обложки
- Заполнение кастомных полей категории
- Указание цены (фиксированная, договорная, бесплатно, обмен)
- Выбор местоположения на карте
- Контактные данные
Личный кабинет
- Список своих объявлений с фильтрацией по статусу
- Редактирование и удаление
- Продвижение объявлений (платные услуги)
- Статистика просмотров и контактов
Магазины и каталог
Продавцы могут создать собственную витрину — магазин с каталогом товаров, страницами и баннером. Покупатели видят все предложения продавца в едином пространстве.
Создание магазина
- Название, описание, логотип и баннер магазина
- Выбор тарифного плана (с функциями и лимитами)
- Кастомные страницы: «О магазине», «Доставка», «Контакты»
- Публичная витрина со всеми объявлениями продавца
Тарифные планы
Администратор площадки настраивает тарифы с различными возможностями и лимитами. Продавец выбирает подходящий план и оплачивает подписку через кошелёк.
Управление в личном кабинете
- Список моих магазинов
- Управление объявлениями магазина
- Статистика просмотров витрины
- Продление и смена тарифа
/shops/[slug]. Slug задаётся при создании.Безопасная сделка
Механизм эскроу защищает обе стороны сделки. Покупатель переводит деньги на резервный счёт, продавец получает их только после подтверждения получения товара.
Как работает
Статусы сделки
| pending | Ожидает подтверждения покупателя |
| reserved | Средства зарезервированы |
| in_progress | Сделка в процессе |
| completed | Завершена, средства переведены продавцу |
| disputed | Открыт спор, идёт арбитраж |
| cancelled | Отменена, средства возвращены |
Управление
- Покупатель и продавец: личный кабинет → Сделки (/dashboard/deals)
- Администратор: /admin/deals — арбитраж, ручное завершение, история
Корзина и заказы
Покупатели добавляют товары из магазинов в корзину и оформляют заказы. Продавцы обрабатывают заказы из личного кабинета.
Корзина
- Добавление товаров (объявлений из магазина) в корзину
- Изменение количества и удаление позиций
- Расчёт итоговой суммы
- Оформление заказа с указанием адреса доставки
Статусы заказа
| pending | Создан, ожидает обработки продавцом |
| confirmed | Принят продавцом |
| shipping | Передан в доставку |
| delivered | Доставлен |
| completed | Завершён и оплачен |
| cancelled | Отменён |
Доставка
Интеграция с модулями доставки (CDEK, Boxberry, Почта России) позволяет рассчитывать стоимость и создавать заявки прямо из заказа.
- Покупатель: /dashboard/orders — список заказов
- Продавец: заказы в кабинете магазина
- Администратор: /admin/deals — все заказы площадки
Поиск и фильтры
Полнотекстовый поиск через Manticore Search с подсказками и динамическими фильтрами.
- Текстовый поиск с подсказками
- Фильтр по категории
- Фильтр по городу
- Диапазон цен
- Динамические фильтры по кастомным полям категории
- Сортировка: новые, старые, дешёвые, дорогие
- Режимы отображения: сетка, список, карта
Чат и сообщения
Встроенная система мгновенных сообщений позволяет покупателям связываться с продавцами напрямую на площадке.
- Мгновенные сообщения через WebSocket
- Список диалогов с индикатором непрочитанных
- Привязка к объявлению
- Удаление сообщений и диалогов
- Уведомления о новых сообщениях
Отзывы
Система отзывов позволяет оценивать продавцов и формировать рейтинг доверия.
- Оценка продавца с рейтингом
- Текстовые отзывы с ответами продавца
- Публичный профиль продавца с рейтингом и объявлениями
- Апелляции на отзывы для модерации
- Распределение оценок и средний рейтинг
Избранное
Пользователи могут сохранять понравившиеся объявления в избранное для быстрого доступа из личного кабинета.
Уведомления
In-app уведомления в реальном времени через WebSocket. Пользователь получает уведомления о новых сообщениях, ответах на комментарии, изменениях статуса объявлений.
- Счётчик непрочитанных в шапке сайта
- Список уведомлений в личном кабинете
- Отметка как прочитанное
Продвижение объявлений
Платные услуги для выделения объявлений среди конкурентов. Настраиваются в админ-панели: название, цена, длительность, описание.
Типы услуг
| Срочно | Метка «Срочно» на объявлении |
| Выделение | Цветной фон карточки |
| Поднятие | Объявление поднимается в начало списка |
| VIP | Размещение в блоке VIP-объявлений |
| XL-карточка | Увеличенная карточка в ленте |
| Буст | Автоматическое поднятие с заданным бюджетом и периодом |
Тарифы
Пакетные предложения: объединение нескольких услуг со скидкой.
Специальные предложения
Скидочные акции с ограничением по количеству использований.
Рекламные блоки
Система рекламных блоков позволяет размещать баннеры и скрипты в различных позициях сайта. Поддерживает таргетинг по городу, категории и языку.
Позиции
| header | Верхняя часть страницы |
| sidebar | Боковая панель |
| footer | Подвал сайта |
| in_content | Внутри контента |
| between_listings | Между объявлениями в ленте |
| listing_detail | На странице объявления |
Форматы
- Баннер — изображение со ссылкой
- Скрипт — произвольный HTML/JS (Google Ads, Яндекс.Директ)
- Нативный — стилизованный блок под дизайн сайта
Отслеживаются показы и клики. Можно задать даты кампании и лимиты показов.
Кошелёк
Внутренний баланс пользователя для оплаты услуг продвижения. Работает при подключённом платёжном модуле.
- Пополнение через платёжные системы
- Списание при покупке услуг
- История операций
- Запросы на вывод средств (обрабатываются администратором)
Дизайн и брендинг
Внешний вид сайта настраивается через админ-панель в разделе «Дизайн» без необходимости правки кода. Доступ: /admin/design.
Логотипы и иконки
| Десктоп-логотип | Основной логотип в шапке (SVG или PNG) |
| Мобильный логотип | Компактная версия для мобильных устройств |
| Мини-логотип | Иконка для вкладок браузера и мобильных меню |
| Логотип подвала | Версия логотипа для тёмного фона подвала |
| Favicon | Иконка вкладки браузера (ICO, PNG или SVG) |
Шапка сайта
- Фиксированная шапка (sticky)
- Цвета: верхняя панель, основная панель, акцент, фон поиска
- Управление ссылками меню (раздел «Меню»)
Главная страница
- Боковая панель (вкл/выкл)
- Количество колонок объявлений (3–6)
- Режим загрузки: «Показать ещё», бесконечный скролл, пагинация
- Количество объявлений на странице (8–48)
Категории
- Режим отображения: сетка, карусель, компактный
- Размер карточек, скругление углов
- Цвета фона, текста, иконок
- Шрифты и размеры
- Эффекты при наведении, тени
Подвал (Footer)
Управление структурой подвала через раздел /admin/footer.
- Создание секций подвала (Компания, Поддержка, Социальные сети и др.)
- Добавление ссылок в каждую секцию
- Управление порядком секций и ссылок
- Текст копирайта
Ссылки на соцсети
Настройка отображаемых соцсетей в подвале и шапке.
- VK, Telegram, Instagram, YouTube, TikTok, WhatsApp и другие
- Иконки подставляются автоматически по типу сети
Водяной знак
| Тип | Текст или изображение |
| Позиция | Любой угол или центр |
| Прозрачность | 0–100% |
| Шрифт и размер | Настраиваемый |
| Минимальный размер | Применяется только к изображениям больше порога |
Конструктор страниц
Модуль «Page Builder» позволяет создавать произвольные страницы (лендинги, «О компании», «Правила») через визуальный блочный конструктор. Доступ: /admin/pages.
- Блоки: герой, текст, изображение, галерея, карточки, CTA, форма
- Перетаскивание блоков (drag & drop)
- Кастомный URL (slug) для каждой страницы
- SEO-настройки для каждой страницы
Модули
Модульная архитектура позволяет расширять функциональность CMS без изменения ядра. Модули устанавливаются из маркетплейса Adwos или загружаются вручную через /admin/marketplace.
Карты
| Yandex Maps | Отображение объявлений на карте, выбор геоточки |
| Google Maps | Полная интеграция с Google Maps API |
| 2GIS Maps | Карты 2GIS для российских городов |
| OpenStreetMap | Бесплатная карта, не требует API-ключа |
Адреса
| DaData | Подсказки адресов и обратное геокодирование для России |
SMS и верификация
| SMSC | Популярный провайдер для России и СНГ |
| SMS.ru | Российский SMS-шлюз |
| GreenSMS | Массовые SMS-рассылки |
| Twilio | Международный провайдер |
Платёжные системы
Социальная авторизация
| VK | Вход через ВКонтакте |
| Яндекс | Вход через Яндекс ID |
| Вход через Google Account | |
| Одноклассники | Вход через OK.ru |
| Telegram | Вход через Telegram Login Widget |
Доставка
| CDEK | Расчёт стоимости, создание заявок на доставку |
| Boxberry | Доставка до пунктов выдачи и курьером |
| Почта России | Интеграция с API Почты России |
Email-провайдеры
| SMTP | Любой SMTP-сервер (встроен в ядро) |
| Mailgun | Транзакционные письма через Mailgun API |
| SendGrid | Транзакционные письма через SendGrid API |
Уведомления
| Web Push | Push-уведомления в браузере через Web Push API |
| Telegram Bot | Уведомления пользователям в Telegram |
Дополнительные модули
| Avito Export | Генерация XML-фида объявлений в формате Avito |
| Универсальный импорт | Импорт из любых XML-фидов с маппингом полей |
| Page Builder | Конструктор страниц с визуальным редактором блоков |
| Размытие фото | Автоматическое размытие нежелательного контента на изображениях |
Капча
| reCAPTCHA v3 | Невидимая капча от Google |
| Cloudflare Turnstile | Альтернатива reCAPTCHA без изображений |
| Яндекс SmartCaptcha | Капча для российских проектов |
Управление модулями
- Просмотр доступных и установленных модулей в маркетплейсе
- Установка в один клик — модуль скачивается и активируется автоматически
- Настройка API-ключей и параметров каждого модуля
- Обновление до новых версий из маркетплейса
- Деактивация и удаление модулей
Пресеты полей
Пресеты — готовые наборы кастомных полей для типовых ниш. Позволяют за секунду настроить категорию с правильными характеристиками.
Доступные пресеты
| Пресет | Описание | Примеры полей |
|---|---|---|
| Авто | Легковые автомобили | Марка, модель, год, пробег, кузов, двигатель, КПП |
| Недвижимость | Жильё и коммерция | Тип, площадь, комнаты, этаж, ремонт, мебель |
| Электроника | Техника и гаджеты | Бренд, состояние, память, цвет |
| Работа | Вакансии | Тип занятости, график, опыт, зарплата |
| Услуги | Предложения услуг | Тип услуги, опыт, выезд/онлайн |
| Мото | Мотоциклы, скутеры | Марка, объём, год, тип |
| Грузовые | Грузовики, спецтехника | Тип, грузоподъёмность, год |
| Одежда | Одежда и обувь | Размер, бренд, состояние, пол |
| Животные | Питомцы | Вид, порода, возраст |
| Краткоср. аренда | Квартиры посуточно | Тип, вместимость, удобства |
Применение
Перейдите в категорию → «Применить пресет». Два режима:
| Заменить | Удалить существующие поля и добавить из пресета |
| Дополнить | Добавить поля из пресета к существующим |
Настройки
Все настройки CMS управляются через раздел «Настройки» в админ-панели.
Основные настройки
| Название сайта | Отображается в шапке и title страниц |
| Описание | Meta-описание по умолчанию |
| Язык | Основной язык интерфейса |
| Режим модерации | Ручная или автоматическая модерация объявлений |
| Регистрация | Открыта или закрыта |
Доступ к сайту
| Сайт активен | Включение / отключение сайта для посетителей |
| Действие при отключении | Страница обслуживания, редирект или пароль |
| Белый список IP | Доступ только с указанных адресов |
Хранилище файлов
| Тип хранилища | Локальное или S3-совместимое (Minio, AWS S3) |
| Макс. размер файла | Ограничение на одну загрузку |
| Макс. фото на объявление | Лимит изображений |
Почта (SMTP)
Настройка SMTP-сервера для отправки писем. Используется для: подтверждения email при регистрации, сброса пароля, уведомлений о заказах и сделках, тикетов поддержки.
| SMTP_HOST | Адрес почтового сервера |
| SMTP_PORT | Порт (обычно 587 или 465) |
| SMTP_USER / SMTP_PASSWORD | Учётные данные |
| SMTP_FROM | Адрес отправителя |
| SMTP_TLS | Использовать TLS |
Подтверждение email
При включённом SMTP новые пользователи получают письмо со ссылкой для подтверждения email. Войти в аккаунт можно только после перехода по ссылке. Ссылка действительна 24 часа. Администратор может подтвердить email пользователя вручную в разделе «Пользователи».
Лицензия
Информация о текущей лицензии: ключ, домен, редакция, срок действия. CMS периодически проверяет лицензию через heartbeat-запрос к платформе Adwos.
SEO и Вебмастер
Расширенные инструменты SEO-оптимизации и интеграция с сервисами вебмастеров. Доступ: /admin/seo.
SEO-шаблоны
Шаблоны мета-тегов по типам страниц с поддержкой переменных. Переменные подставляются автоматически при генерации страницы.
| Главная | Шаблон title и description главной страницы |
| Список объявлений | Поддерживает {category}, {city}, {count} |
| Страница объявления | Поддерживает {title}, {price}, {city}, {category} |
| Профиль пользователя | Поддерживает {name}, {listings_count} |
| Страница магазина | Поддерживает {shop_name}, {city} |
| Страница блога | Поддерживает {post_title}, {category} |
Счётчики аналитики
| Яндекс.Метрика | ID счётчика — вставляется в head всех страниц |
| Google Analytics (GA4) | Measurement ID — вставляется через gtag |
Интеграция с вебмастерами
| Яндекс.Вебмастер | Вставка тега верификации в head |
| Google Search Console | Вставка тега или загрузка HTML-файла верификации |
/sitemap.xml и ссылается на chunked sitemap-файлы для публичных страниц платформы, маркетплейса и раздела идей.Мультиязычность
CMS поддерживает несколько языков интерфейса. Переводы управляются через админ-панель без правки кода. Доступ: /admin/translations.
Управление переводами
- Добавление новых локалей (язык + код, например ru, en, kz)
- Редактирование строк перевода через интерфейс — без правки файлов
- Экспорт и импорт переводов в JSON
- Переключатель языка в шапке сайта (если активно несколько локалей)
Перевод контента
Помимо перевода интерфейса, CMS поддерживает перевод контентных сущностей — объявлений, категорий, страниц блога. Переводы добавляются вручную или через автоматический перевод (при подключённом модуле).
| Объявления | Перевод названия, описания и характеристик |
| Категории | Перевод названий и описаний |
| Блог | Перевод заголовка, анонса и контента статьи |
| Страницы | Перевод кастомных страниц (о нас, контакты и др.) |
/en/listings, /kz/listings.Медиатека и резервные копии
Медиатека
Просмотр и управление всеми загруженными файлами. Доступ: /admin/storage.
- Просмотр файлов с фильтрацией по типу (изображения, документы, прочие)
- Удаление отдельных файлов
- Очистка неиспользуемых файлов (orphaned files)
- Статистика использования дискового пространства
Резервные копии
Создание резервных копий базы данных и загруженных файлов. Доступ: /admin/settings → Бэкапы.
| Создать бэкап | Полная копия БД (pg_dump) + архив загруженных файлов |
| Список бэкапов | Дата, размер, статус каждой копии |
| Скачать | Загрузка архива на локальный компьютер |
| Удалить | Удаление устаревших копий |
Обновления
CMS поддерживает автоматическое обновление через подписанные пакеты. Обновления выпускаются командой Adwos и доступны через админ-панель.
Как обновить
- Перейдите в Настройки → Обновление системы
- Нажмите «Проверить обновления»
- Прочитайте список изменений
- Нажмите «Обновить»
Процесс обновления
[1] Создание записи (status: pending)
[2] Полный бэкап: pg_dump БД + tar.gz файлов
[3] Скачивание пакета с Platform
[4] Верификация: RSA-4096 подпись + SHA-256 хеш каждого файла
[5] Применение SQL-миграций (goose up)
[6] Замена файлов: бинарник, фронтенд, VERSION
[7] Обновление статуса (status: completed)Что сохраняется
| Сохраняется | Обновляется |
|---|---|
| Конфигурация (.env) | Бинарник сервера |
| Лицензия | Фронтенд |
| Загруженные файлы | Миграции БД |
| Плагины и темы | Файл VERSION |
| Все данные в БД |
Версионирование
Используется Semantic Versioning: MAJOR.MINOR.PATCH
| MAJOR | Крупные изменения, возможна несовместимость |
| MINOR | Новый функционал (обратно совместимый) |
| PATCH | Исправление ошибок |