Обзор развертывания Shopify CLI на сервере¶
Предварительные требования и базовые условия¶
Для успешного развертывания Shopify CLI на сервере убедитесь в выполнении следующих системных требований:
-
Операционная система: Дистрибутивы на базе Debian (Ubuntu, Debian) или RHEL (CentOS, Rocky Linux, AlmaLinux).
-
Привилегии: Требуется доступ root или учетная запись пользователя с правами
sudoдля установки системных пакетов и глобальных модулей Node.js. -
Сетевой доступ: Сервер должен иметь исходящий доступ в Интернет для загрузки скриптов установки, бинарных файлов Node.js и зависимостей пакетов из удаленных репозиториев.
-
Зависимости: Процесс установки автоматически подтягивает конкретные инструменты разработки, включая Ruby, компиляторы и Git.
Структура файлов и директорий¶
Развертывание использует стандартную структуру домашней директории пользователя для окружения Node.js и глобальные системные пути для установки пакетов. Ключевые расположения включают:
-
Node Version Manager (nvm): Устанавливается в домашней директории пользователя по пути
~/.nvm. -
Бинарные файлы Node.js: Устанавливаются через nvm внутри
~/.nvm/versions/node/v20.0.0(или последней исправленной версии v20). -
Глобальные модули NPM: Устанавливаются в стандартный глобальный путь NPM, доступный в окружении пользователя после загрузки профиля.
-
Системные пакеты: Ruby и инструменты разработки устанавливаются в стандартные системные пути (
/usr/bin,/usr/libи т.д.).
Процесс установки приложения¶
Shopify CLI устанавливается глобально через Node Package Manager (NPM) после настройки версии Node.js 20 с помощью Node Version Manager. Процесс установки несколько различается в зависимости от семейства операционной системы.
Системы на базе Debian¶
Инсталлятор выполняет следующие шаги:
-
Обновляет и повышает актуальность репозиториев пакетов APT.
-
Загружает и устанавливает версию nvm
0.39.7. -
Загружает конфигурацию оболочки для активации nvm.
-
Устанавливает версию Node.js
20. -
Устанавливает последнюю версию Shopify CLI глобально.
Конкретная команда, выполняемая для настройки Node.js и CLI:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash && . ~/.bashrc && nvm install 20 && npm install -g @shopify/cli@latest
Системы на базе RHEL¶
Инсталлятор выполняет следующие шаги:
-
Устанавливает системные зависимости, включая "@Development Tools", Ruby и библиотеки разработки Ruby.
-
Загружает и устанавливает версию nvm
0.39.7. -
Загружает конфигурацию оболочки для активации nvm.
-
Устанавливает версию Node.js
20. -
Устанавливает последнюю версию Shopify CLI глобально.
Конкретная команда, выполняемая для настройки Node.js и CLI:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash && source ~/.bashrc && nvm install 20 && npm install -g @shopify/cli@latest
Системные зависимости¶
Скрипт развертывания устанавливает следующие дополнительные требования для разработки тем:
| Название пакета | Описание |
|---|---|
ruby-full / ruby | Интерпретатор Ruby, необходимый для обработки тем Shopify. |
ruby-dev / ruby-devel | Заголовочные файлы разработки Ruby для компиляции нативных расширений. |
gcc / g++ | Сборка компиляторов GNU для компиляции C/C++. |
make | Инструмент автоматизации сборки. |
git | Система контроля версий для управления репозиториями тем. |
curl | Инструмент для передачи данных из сети Интернет. |
xdg-utils | Утилиты для взаимодействия с рабочим окружением (открытие файлов в браузере). |
@Development Tools | Мета-пакет в системах RHEL, предоставляющий основные инструменты сборки. |
Права доступа и безопасность¶
Скрипт установки требует повышенных привилегий для модификации системных репозиториев пакетов и установки глобальных пакетов.
-
Управление пакетами: Команды
aptилиyumтребуют доступа root для установки или обновления системных библиотек. -
Глобальная установка NPM: Установка
@shopify/cliглобально черезnpm install -gтребует прав на запись в глобальную директорию NPM, что обычно достигается за счет выполнения команды от имени root или пользователя с правамиsudo. -
Конфигурация оболочки: Установка модифицирует файлы конфигурации оболочки пользователя (
.bashrc) для включения скрипта инициализации nvm.
Базы данных¶
Shopify CLI — это инструмент командной строки для взаимодействия с платформой Shopify. В рамках этой конфигурации развертывания он не включает локальный компонент базы данных. Всё сохранение данных и хранение тем обрабатываются удаленно через API администратора Shopify или операции с локальной файловой системой, управляемые пользователем.
Контейнеры Docker и их развертывание¶
Это развертывание не использует контейнеры Docker. Shopify CLI устанавливается как нативное приложение Node.js на операционной системе хост-сервера.
Прокси-серверы¶
Конфигурация развертывания не включает прокси-сервер, такой как Nginx, Traefik, или кастомный слой терминации SSL. Инструмент работает как локальный интерфейс командной строки и общается непосредственно с удаленными серверами Shopify.
Настройки разрешений¶
Процесс установки устанавливает права доступа в соответствии со стандартным поведением менеджеров пакетов и NPM:
-
Системные пакеты: Устанавливаются в
/usr/binи/usr/libс владельцем root. -
Окружение пользователя: Файлы в домашней директории пользователя (
~/.nvm,~/.bashrc) принадлежат исполняющему пользователю. -
Глобальные модули: Устанавливаются в глобальную директорию NPM; владение зависит от уровня привилегий, использованного при выполнении команды
npm install.
Расположение файлов конфигурации и данных¶
-
Конфигурация nvm: Скрипт инициализации добавляется в конец
~/.bashrc. -
Версия Node: Контролируется через nvm в директории
~/.nvm. -
Shopify CLI: Расположен внутри глобальной директории модулей NPM, доступен через команду
shopifyпосле загрузки окружения nvm. -
Данные тем: Хранятся в локальных директориях, определяемых пользователем, внутри файловой системы сервера, как настроено пользователем в рабочих процессах разработки.
Доступные порты для подключения¶
Shopify CLI по умолчанию не открывает локальные порты прослушивания для входящих соединений. Он инициирует исходящие HTTPS-соединения к конечным точкам API Shopify (порт 443) для аутентификации, загрузки тем и других операций.
Запуск, остановка и обновление¶
Shopify CLI является приложением пространства пользователя и не управляется как системная служба (systemd).
-
Запуск: CLI запускается вызовом команды
shopifyв терминале после загрузки окружения оболочки. -
Остановка: Процесс завершается, когда пользователь выходит из команды или закрывает сессию терминала.
-
Обновление: Для обновления CLI до последней версии используется следующая команда: