Инструкция по развертыванию CRYSTAL v2.0 на локальном ПК и VPC
13 декабря 2025
обн: 17 января
Содержание:
Структура проекта:
- 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;
}
Поделиться
USDT (TRON (TRC20)): TTvJdwtL3VAZKSHbYi8B2eQEQDxbHUD4Ka
POL (Polygon PoS): 0x97377684b9a589eca92e2c6c8430e6dcf2bae8c2
ETH (Base Mainnet): 0x97377684b9a589eca92e2c6c8430e6dcf2bae8c2
ETH (ERC20): 0x97377684b9a589eca92e2c6c8430e6dcf2bae8c2
BTC (BTC): 12GkhJZWrdn23PUerGerN7nSZXHwWGm59U





Прокомментировать в