DotNetRu Server - продукт семейства DotNetRu, обеспечивающий универсальный API доступа к Аудиту. В связке с UI предполагается предоставление удобного метода добавления и редактирования митапов.
Кроме того, DotNetRu Server является единым API доступа к данным о митапах для всех клиентов (например, DotNetRu App).
Аудит является централизованным хранилищем всей информации о прошедших митапах всех сообществ DotNetRu. Данные в Аудите сохранены в формате связанных XML файлов. Их ручное редактирование чревато ошибками и нарушениями формата.
Цель проекта DotNetRu Server - обеспечить REST-like API для редактирования Аудита без необходимости обращаться к GitHub-репозиторию Аудита. В процессе редактирования должна поддерживаться целостность данных и соответствие форматам хранения.
Последняя версия DotNetRu Server всегда развернута на общедоступном веб-сервере.
Единое хранилище информации о митапах, площадках, спикерах и докладах. Реализовано как набор XML файлов в GitHub репозитории.
Веб-интерфейс для удобной работы с DotNetRu Server.
В настоящее время существует отдельная версия UI, работающая в виде Electron приложения. Этот же UI поставляется в виде docker контейнера.
В настоящее время DotNetRu Server имеет разработанный API, но не до конца проведена интеграция со вспомогательными системами. Также отсутствует связь с хранилищем - GitHub-репозиторием Аудита.
В связи с этим план на ближайший этап состоит в следующем:
- развернуть UI на production сервере и указать URL в этом файле
- протестировать совместную работу UI и Server по упрощённой схеме без хранилища
Желаемый срок окончания ближайшего этапа - 05 ноября 2019 года.
Упрощённая схема взаимодействия заключается в следующем:
- DotNetRu Server работает на in-memory базе данных
- пользователь импортирует базу митапов на сервер через DotNetRu.Importer
- пользователь добавляет/изменяет информацию о новом митапе с помощью UI развернутого на production сервере
- пользователь экспортирует набор XML обратно на компьютер с помощью DotNetRu.Exporter
- пользователь вручную создаёт pull request в репозиторий Аудита
#ы Дальнейшие планы (обсуждаемо)
- Перенести код UI в репозитории DotNetRu и настроить автоматическую сборку и публикаю docker-контейнера.
- ...
- Установить docker
- Перейдите по ссылке и выпустите токен, кнопка "Generate new token"
- Запустить скрипт
bash ./buildtools/local/initdb.sh "GITHUB_TOKEN"
В данный момент в проекте используется MSSQL Server
. При наличии установленного инстанса, этот шаг можно пропустить.
- Установить docker
- Далее, в коммандной строке нужно выполнить следующую команду
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=SuperPuperPassword1234' -p 1433:1433 --name DotNetRuDB -d mcr.microsoft.com/mssql/server:2017-latest
- После этого необходимо подключиться к БД, с помощью любого инструмента. Пользовать -
sa
, пароль -SuperPuperPassword1234
, порт -1433
. После подключения необходимо создать базу данныхDotNetRu
Для работы с мигратором необходимо выполнить несколько шагов
- Установить -
dotnet tool install -g FluentMigrator.DotNet.Cli
- Сбилдить проект
DotNetRuServer.Migrations
- Перейти в папку
bin/Debug/netstandard2.0
- Вызвать в командной строке -
dotnet fm migrate -p sqlserver -c "Server=localhost;Database=DotNetRu;User Id=sa;Password=SuperPuperPassword1234;" -a "DotNetRuServer.Migrations.dll"
- Радоваться жизни, вы почти справились :)
Для работы импортера, ему нужно два параметра - гитхаб-токен и conntections-string к базе данных
- Перейдите по ссылке и выпустите токен, кнопка "Generate new token"
- Запустите DotNetRuServer.Importer с передачей первым аргументом
Server=localhost;Database=DotNetRu;User Id=sa;Password=SuperPuperPassword1234;
, а вторым аргументом полученный гитхаб-токен - Подождите ~2 минуты
- У вас есть готовая схема данных, можно творить :)