Jump to content

Веб магазин: различия между версиями

Новая страница: «== В РАЗРАБОТКЕ! == == Веб магазин == Статья содержи сведения об устройстве веб магазина РОСА, а также способы добавления и редактирования карточек приложений в магазин. === Общие идеи === * Сайт с магазином отдает НЕ пакеты для скачивания, а специально офор...»
 
Нет описания правки
Строка 19: Строка 19:


* Магазин позволит достаточно просто интегрировать отличные от dnf способы установки софта. Первый на очереди epm.
* Магазин позволит достаточно просто интегрировать отличные от dnf способы установки софта. Первый на очереди epm.
=== Проекты связанные с магазином ===
https://abf.io/soft/rosastore - Генератор страницы магазина (шаблоны для сборки html, js, css, скрипт для обработки скриншотов и из базы данных для магазина)
https://abf.io/soft/web-store-database - База данных по которой собирается страница магазина ( Описания, скриншоты, иконки и т.д.) подключен гит сабмодулем к rosastore
https://abf.io/import/metadata - Сборка rpm пакетов:
# metadata-apps - пакет с магазином, можно установить локально, для использования локального магазина в пакете есть десктоп файл.
# metadata-dnfdragora - пакет с метаданными для dnfdragora собранными из той же базы данных
# web-store-desktop - в пакете всего один десктоп файл для открытия страницы магазина в браузере по умолчанию. Именно этот пакет устанавливается в ОС пользователя для доступа к магазину.

Версия от 16:08, 29 октября 2025

В РАЗРАБОТКЕ!

Веб магазин

Статья содержи сведения об устройстве веб магазина РОСА, а также способы добавления и редактирования карточек приложений в магазин.

Общие идеи

  • Сайт с магазином отдает НЕ пакеты для скачивания, а специально оформленную ссылку. Ссылка открывается в программе rpmgrab, которая извлекает из ссылки имя пакета и устанавливает из репозитория ОС. То есть даже при компрометации магазина мимо репозитория ничего установить нельзя.
  • Этот же магазин без каких либо изменений используется для BFRESH и Бария, просто вместо rpmgrab запускается другая утилита, которая создает модули вместо установки.
  • ПО в магазине не имеет версий, это позволяет не пересобирать страницу после каждого изменения в репозитории, а также использовать один магазин для разных платформ.
  • В текущей реализации страница статична, что одновременно является дополнительной защитой магазина, снижает нагрузку на сервер и позволяет установить Магазин локально без использования локального веб сервера.
  • Для снижения трафика сервер отдает небольшую HTML страницу и базу с данными записанную в js файл, часть страницы с контентом формируется js на стороне браузера, а скриншоты догружаются с использованием механизма  lazy download, то есть грузятся только видимые в данный момент.
  • Html cтраница и js генерируются скриптом на основе базы данных, которая одновременно используется для генерации пакета со скриншотами и описаниями для dnfdragora.
  • Сама база наполняется в полу-автоматическом режиме на основе данных dnf info и appstream метаданных.
  • Магазин позволит достаточно просто интегрировать отличные от dnf способы установки софта. Первый на очереди epm.

Проекты связанные с магазином

https://abf.io/soft/rosastore - Генератор страницы магазина (шаблоны для сборки html, js, css, скрипт для обработки скриншотов и из базы данных для магазина)


https://abf.io/soft/web-store-database - База данных по которой собирается страница магазина ( Описания, скриншоты, иконки и т.д.) подключен гит сабмодулем к rosastore


https://abf.io/import/metadata - Сборка rpm пакетов:

  1. metadata-apps - пакет с магазином, можно установить локально, для использования локального магазина в пакете есть десктоп файл.
  2. metadata-dnfdragora - пакет с метаданными для dnfdragora собранными из той же базы данных
  3. web-store-desktop - в пакете всего один десктоп файл для открытия страницы магазина в браузере по умолчанию. Именно этот пакет устанавливается в ОС пользователя для доступа к магазину.