This commit is contained in:
Sergey Yarkov 2020-01-30 23:34:21 +03:00
parent ada1bdae51
commit 30d3fe79a5

View File

@ -30,7 +30,7 @@
## Содержание ## Содержание
- [О проекте](#О-проекте) - [О проекте](#О-проекте)
- [Структура репозитория](#Структура-репозитория) - [Структура репозитория](#Структура-репозитория)
- [Установка и найстройка скрипта](#Установка-и-найстройка-скрипта) - [Установка и настройка скрипта](#Установка-и-настройка-скрипта)
- [Запуск скрипта на локальном компьютере](#Запуск-скрипта-на-локальном-компьютере) - [Запуск скрипта на локальном компьютере](#Запуск-скрипта-на-локальном-компьютере)
- [Запуск скрипта на удаленном сервере](#Запуск-скрипта-на-удаленном-сервере) - [Запуск скрипта на удаленном сервере](#Запуск-скрипта-на-удаленном-сервере)
- [Переменные среды](#Переменные-среды) - [Переменные среды](#Переменные-среды)
@ -63,36 +63,70 @@
## Структура репозитория: ## Структура репозитория:
В основе всего репозитория существуют две ветки. Ветка master предназначена для разработки приложения, для выгрузки готового приложения на сервер используйте ветку production. В основе всего репозитория существуют две ветки. Ветка master предназначена для разработки приложения, для выгрузки готового приложения на сервер используйте ветку production.
## Установка и найстройка скрипта: ## Установка и настройка скрипта:
### Запуск скрипта на локальном компьютере: ### Запуск скрипта на локальном компьютере:
- [Установите последний релиз Digital Store](https://github.com/sergeyyarkov/digital-store/releases) из GitHub репозитория. - [Установите последний релиз Digital Store](https://github.com/sergeyyarkov/digital-store/releases) из GitHub репозитория.
- Или клонировать репозиторий `git clone https://github.com/sergeyyarkov/digital-store.git -b production`. - Или клонировать репозиторий `git clone https://github.com/sergeyyarkov/digital-store.git -b production`.
- Установите [Node.js](https://nodejs.org/ru/) не ниже версии 7.6.0, в процессе установки Node.js установите Node Package Manager. - Установите [Node.js](https://nodejs.org/ru/) не ниже версии 7.6.0, в процессе установки Node.js установите Node Package Manager.
- Установите БД MongoDB на ваш компьютер или создайте кластер на сайте [www.mongodb.com](https://www.mongodb.com/) и импортируйте туда дамп структуры БД, которые находится в корне приложения `/database_dump`. - Установите БД MongoDB на ваш компьютер или создайте кластер на сайте [www.mongodb.com](https://www.mongodb.com/) и импортируйте туда дамп структуры БД, которые находится в корне приложения `/database_dump`.
- Перейдите на сайт [QIWI API](https://qiwi.com/p2p-admin/transfers/api) и создайте пару ключей авторизации. Сохраните секретный ключ.
- Если вы хотите настроить оформление формы приемов перевода, то перейдите [сюда](https://qiwi.com/p2p-admin/transfers/link) и скопируйте значение переменной `themeCode` и вставьте это значение по адресу `config/routes/payments/qiwi.payment.js`.
- Для работоспособности интернет-магазина необходимо установить зависимости. Выполните комманду `npm install`. - Для работоспособности интернет-магазина необходимо установить зависимости. Выполните комманду `npm install`.
- Далле необходимо настроить переменные среды. Создайте файл `.env` в корне вашего интернет-магазина и запишите туда [значения для переменных](#Переменные-среды). Обратите внимание, что для выгрузки скрипта на production сервер, нужно устанавливать переменные среды для вашего сервера, файл `.env` создавать не нужно. - Далле необходимо настроить переменные среды. Создайте файл `.env` в корне вашего интернет-магазина и запишите туда [значения для переменных](#Переменные-среды). Обратите внимание, что для выгрузки скрипта на production сервер, нужно устанавливать переменные среды для вашего сервера, файл `.env` создавать не нужно.
- После этого, введите `npm run start` и перейдите по адресу `localhost:3000`, вы увидите уже рабочий интернет-магазин который запущен у вас на локальном компьютере.
### Запуск скрипта на удаленном сервере:
В данном примере на удаленном сервере будет использоваться связка `Ubuntu 18.04, Nginx, MongoDB, PM2, NodeJS` + `SSL Lets Encrypt`
- Переходим на сайт [RUVDS.COM](https://ruvds.com/pr4435) и приобретаем VPS услугу.
- Подключаемся к серверу по SSH и обновляем пакеты `apt-get update`.
- Устанавливаем NodeJS:
```bash
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
apt-get install -y nodejs <--- попросит перезагрузить сервисы - соглашаемся (YES)
```
Если при выполнении команд `node -v` и `npm -v` выдается версия, то идем дальше.
- Создаем папку `/apps`, после переходим в нее и клонируем проект с github и переходим в наш магазин:
```bash
mkdir apps
cd apps/
git clone https://github.com/sergeyyarkov/digital-store.git -b production
cd digital-store/
```
- Устанавливаем зависимости для интернет-магазина `npm install`.
-
### Настройка платежной системы:
В скрипте на данный момент доступна система оплаты через сервис QIWI, чтобы настроить оплату в вашем магазине следуйте следующим шагам:
- Перейдите на сайт [QIWI API](https://qiwi.com/p2p-admin/transfers/api) и создайте пару ключей авторизации. Сохраните секретный ключ.
- Если вы хотите настроить оформление формы приемов перевода, то перейдите [сюда](https://qiwi.com/p2p-admin/transfers/link) и скопируйте значение переменной `themeCode` и вставьте это значение по адресу `config/routes/payments/qiwi.payment.js`.
- Секретный ключ нужно указать в поле переменной среды `QIWI_SECRET_KEY`.
- Редирект после оплаты товара через QIWI на локальный адрес `localhost:3000` работать не будет, необходим домен.
### Настройка почтового сервиса:
Для отдачи данных товара на почту покупателя после покупки товара, нужно настроить nodemailer:
- Настройте почтовый сервис по адресу `config/nodemailer.config.js`: - Настройте почтовый сервис по адресу `config/nodemailer.config.js`:
```javascript ```javascript
host: "smtp.mail.ru", host: "smtp.mail.ru",
port: 465, port: 465,
secure: true, // true для 465, false для остальных. secure: true, // true для 465, false для остальных.
``` ```
- Настройте систему комментарий [https://disqus.com/](Disqus.com). Добавьте свой домен на их сайт и замените embed код по адресу `dist/public/js/disqus.js`. - Затем укажите переменные среды `EMAIL_LOGIN` и `EMAIL_PASSWORD`.
- После этого, введите `npm run start` и перейдите по адресу `localhost:3000`, вы увидите уже рабочий интернет-магазин который запущен у вас на локальном компьютере.
- Редирект после оплаты товара через QIWI на локальный адрес работать не будет, необходим домен.
### Запуск скрипта на удаленном сервере: ### Настройка системы комментариев:
В данном примере на удаленном сервере будет использоваться связка ``Ubuntu 18.04, Nginx, MongoDB, PM2, NodeJS.`` В интернет магазине используется система комментариев [Disqus](https://disqus.com/):
- ... - Добавьте свой домен на их сайт и замените embed код по адресу `dist/public/js/disqus.js`.
## Переменные среды: ## Переменные среды:
Перменные среды нужны для работоспособности всего приложения, очень важно вписать верные данные для избежания возможных ошибок. Перменные среды нужны для работоспособности всего приложения, очень важно вписать верные данные для избежания возможных ошибок.
### Описание переменных: ### Описание переменных:
| Переменная | Описание | | Переменная | Описание |
| --------------- | -------------------------------------------------------- | | --------------- | -------------------------------------------------------- |
| HOSTNAME_URI | Ваше имя хоста: `https://store-name.com`
| DATABASE_URI | Подключение к БД MongoDB | | DATABASE_URI | Подключение к БД MongoDB |
| DATABASE_NAME | Имя БД | | DATABASE_NAME | Имя БД |
| EMAIL_LOGIN | Логин от почты для отправки данных покупателю | | EMAIL_LOGIN | Логин от почты для отправки данных покупателю |
@ -101,7 +135,6 @@ secure: true, // true для 465, false для остальных.
`.env` файл: `.env` файл:
```bash ```bash
HOSTNAME_URI=
DATABASE_URI= DATABASE_URI=
DATABASE_NAME= DATABASE_NAME=
QIWI_SECRET_KEY= QIWI_SECRET_KEY=