A Peyk micro-service for the Federation API(aka. Server to Server).
Here are the quick instructions to run this micro-service. This guide uses Docker to run all the components and Node.js to automate the process.
Check the CONTRIBUTING guide to learn about setting up the development environment.
- Node.js
- Docker
# go to the automation scripts directory
cd scripts/
# resolve Node.js dependencies
npm install
# build the Docker images
npm run build
# spin up the Docker containers for a local deployment
# and seed the storage with some test data
npm run serve-dev
# get a list of the public rooms
curl -X GET "http://localhost:8008/_matrix/client/r0/publicRooms"
docker run --detach --name peyk-eventstore --publish 2113:2113 --publish 1113:1113 eventstore/eventstore
docker run --name peyk-mongo --detach --publish 27017:27017 mongo
docker run --detach --name peyk-elasticsearch --publish 9200:9200 --publish 9300:9300 --env 'discovery.type=single-node' elasticsearch:6.7.2
Peyk.Federation.sln
: .NET Solutionsrc/
Peyk.Matrix.Models
: Contains the DTOs and the Entities in Matrix ProtocolPeyk.Data.Entities
: Peyk data entities persisted in the storagePeyk.Data.Entities.Converters
: Conversions between DTO and entity typesPeyk.Data.Abstractions
: Peyk entity repository interfaces (Repository Pattern)Peyk.Data.Mongo
: Peyk entity repository implementation for MongoDBPeyk.ClientServer.Queries
: Client-Server API operations for querying(read-only) dataPeyk.ClientServer.Web
: Client-Server HTTP-based API implementation
test/
Framework
: Contains a set of common utilities for the xUnit framework shared between the test projectsMongoTests
: Systems integration tests for the MongoDB DAL(Peyk.Data.Mongo
project)
scripts/
: CI/CD automation scripts(Node.js) for this service