107 lines
No EOL
3.8 KiB
Markdown
107 lines
No EOL
3.8 KiB
Markdown
# Установка
|
||
|
||
Инструкция для установки приложения
|
||
|
||
## Требования к системе
|
||
|
||
Требования к окружению для сборки и запуска приложения:
|
||
|
||
- 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`. |