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.2Peyk.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.Mongoproject)
scripts/: CI/CD automation scripts(Node.js) for this service