pinkmine/docs/Установка.md

107 lines
No EOL
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Установка
Инструкция для установки приложения
## Требования к системе
Требования к окружению для сборки и запуска приложения:
- CouchDB в качестве хранилища данных
- NodeJS для сборки и запуска backend-а и frontend-а
Доступы к внешним системам:
- Токен для подключения telegram-бота
- Токен для доступа к API Redmine
## Подготовка и запуск couchdb
CouchDB необходим для хранения данных.
Для запуска можно воспользоваться любым удобным сопособом.
Пример с помощью docker-compose
1. `docker-compose.yml`:
```yaml
version: '3.1'
services:
couchdb:
image: apache/couchdb:latest
restart: always
ports:
- 127.0.0.1:5984:5984
volumes:
- ./couchdb-data:/opt/couchdb/data
environment:
- COUCHDB_USER
- COUCHDB_PASSWORD
```
2. Так же нужно указать имя и пароль с помощью файла `.env`:
```
COUCHDB_USER=admin
COUCHDB_PASSWORD=password
```
3. Создать папку `couchdb-data` для вольюма определённого для контейнера в `docker-compose.yml`:
```shell
mkdir couchdb-data
```
4. Для запуска воспользоваться командой:
```shell
docker-compose up -d
```
## Установка зависимостей для backend-а и frontend-а
Backend и frontend написаны на языке typescript. Для загрузки и запуска необходимо выполнить:
```shell
cd $PROJECT_DIR && npm install
cd $PROJECT_DIR/frontend && npm install
```
## Настройка
Нужно скопировать все конфигурационные файлы `CONFIG_NAME.jsonc.dist` в `CONFIG_NAME.jsonc`:
```shell
cd $PROJECT_DIR/configs/
cp calendar-enhancer.jsonc.dist calendar-enhancer.jsonc
cp current-user-rules.jsonc.dist current-user-rules.jsonc
cp eccm-config.jsonc.dist eccm-config.jsonc
cp issue-event-emitter-config.jsonc.dist issue-event-emitter-config.jsonc
cp main-config.jsonc.dist main-config.jsonc
cp redmine-status-changes-config.jsonc.dist redmine-status-changes-config.jsonc
cp redmine-statuses-config.jsonc.dist redmine-statuses-config.jsonc
cp simple-kanban-board-config.jsonc.dist simple-kanban-board-config.jsonc
```
Или можно взять за основу файлы из папки `$PROJECT_DIR/configs/configs.example/` или в качестве примеров для заполнения. В этих файлах можно обратить внимание на строчки с TODO и рекоментациями что нужно указать в конфигурационном файле. Там могут встречаться такие рекомендации как:
* Указать host, port, username и password для доступа к couchdb
* Указать token от бота telegram
## Запуск приложения
1. Нужно сделать сборку frontend-а:
```shell
cd $PROJECT_DIR/frontend/ && npm run build
```
2. Сделать сборку или можно просто запустить backend:
```shell
cd $PROJECT_DIR/ && npm run start
```
Если нужно запустить приложение с явным указанием порта, то можно воспользоваться переменной окружения `PORT`.