En

Инструкция по развертыванию CRYSTAL v2.0 на локальном ПК и VPC

Содержание:

Структура проекта:

  • MongoDB v8.0.4
  • Express.js v4.21.2
  • React v19.0.0
  • Node.js v24.0.2
  • NPM v11.6.4
  • PM2 v5.4.3
  • Vite v6.1.0

Характеристики ВМ:

  • Гарантированная доля vCPU: 30%.
  • vCPU: 2.
  • RAM: 4 ГБ.
  • SSD: 20 ГБ.
  • OS: Debian 12.
  • Web server: Nginx v1.22.1.

Характеристики локального ПК:

  • OS: Windows 11 Pro.

Перед использованием CRYSTAL v2.0 или её кода в production-среде, настоятельно рекомендуется, внимательно ознакомиться с реализацией и оценить возможные риски, связанные с кибербезопасностью.

В инструкциях из документации CRYSTAL v1.0, отличается реализация некоторых env переменных, так как в CRYSTAL v2.0, их структура на frontend и backend более расширенная, но в целом инструкции подходят для CRYSTAL v2.0.

Необходимо, последовательно выполнять все пункты.

1. Развертывание на локальном ПК

1.1. Создайте env переменные, следуя соответствующим примерам для frontend и backend.

1.2. Выполните инструкции из пункта 2, документации CRYSTAL v1.0.

2. Развертывание на VPC

2.1. Создайте env переменные, следуя соответствующим примерам для frontend и backend.

2.2. Выполните пункты с 3 по 8, из документации CRYSTAL v1.0. Загрузку файлов проекта на ВМ в VPC, можно выполнять не через GitHub, а через SFTP в FileZilla. Рекомендуется не переносить папку node_modules backend части проекта с локального ПК на ВМ, а заново выполнить команду — npm install на ВМ, так как при запуске backend части, может быть критическая ошибка из-за bcrypt, который компилируется в бинарный файл .node, и работает только с операционной системой в которой изначально была выполнена команда — npm install.

2.3. Создайте администратора в БД MongoDB на ВМ и пропишите значения в соответствующих env переменных, для выполнения безопасного подключения к БД.

2.4. Добавьте в конфигурацию Nginx, правило location /ws для поддержки WebSocket, следуя данному примеру:

location /ws {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    
    # Protocol switching (Upgrade)
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    
    # Headings
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
    # Timeout to prevent the connection from dropping too quickly (optional)
    proxy_read_timeout 60s;
  }

CRYSTAL тестируется в

BrowserStack

Поделиться

Копировать

USDT (TRON (TRC20)): TTvJdwtL3VAZKSHbYi8B2eQEQDxbHUD4Ka

POL (Polygon PoS): 0x97377684b9a589eca92e2c6c8430e6dcf2bae8c2

ETH (Base Mainnet): 0x97377684b9a589eca92e2c6c8430e6dcf2bae8c2

ETH (ERC20): 0x97377684b9a589eca92e2c6c8430e6dcf2bae8c2

BTC (BTC): 12GkhJZWrdn23PUerGerN7nSZXHwWGm59U

Похожие посты

Этот сайт использует файлы cookies. Нажимая кнопку 'Принять' или продолжая пользоваться сайтом, вы соглашаетесь на использование файлов cookies.