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