Перейти к содержанию

Обзор развертывания 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

Инсталлятор выполняет следующие шаги:

  1. Обновляет и повышает актуальность репозиториев пакетов APT.

  2. Загружает и устанавливает версию nvm 0.39.7.

  3. Загружает конфигурацию оболочки для активации nvm.

  4. Устанавливает версию Node.js 20.

  5. Устанавливает последнюю версию 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

Инсталлятор выполняет следующие шаги:

  1. Устанавливает системные зависимости, включая "@Development Tools", Ruby и библиотеки разработки Ruby.

  2. Загружает и устанавливает версию nvm 0.39.7.

  3. Загружает конфигурацию оболочки для активации nvm.

  4. Устанавливает версию Node.js 20.

  5. Устанавливает последнюю версию 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 в терминале после загрузки окружения оболочки.

    source ~/.bashrc
    shopify
    

  • Остановка: Процесс завершается, когда пользователь выходит из команды или закрывает сессию терминала.

  • Обновление: Для обновления CLI до последней версии используется следующая команда:

    npm install -g @shopify/cli@latest
    

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×