foundations/server/README.md
⭐️ Your star shines on us. Star us on GitHub!
Huly Server is a collection of server-side packages extracted from the Huly Platform. This repository contains backend infrastructure components, storage adapters, and server-side utilities that power the Huly ecosystem.
These packages provide essential server-side functionality including database adapters (MongoDB, PostgreSQL, Elasticsearch), storage providers (MinIO, S3), messaging infrastructure (Kafka), and collaborative editing capabilities. They are designed to be modular, scalable, and production-ready for building robust backend services.
This repository includes the following server packages:
Before proceeding, ensure that your system meets the following requirements:
To verify the installation, perform the following checks in your terminal:
docker commands are available:docker --version
docker compose version
node --version
You need Microsoft's rush to install the application.
Install Rush globally using the command:
npm install -g @microsoft/rush
Navigate to the repository root and run the following commands:
rush install
rush build
To build all packages:
rush build
To rebuild (ignoring cache):
rush rebuild
For development purposes, rush build:watch action could be used:
rush build:watch
It includes build and validate phases in watch mode.
If the project's structure is updated, it may be necessary to relink and rebuild the projects:
rush update
rush build
If a build fails, but the code is correct, try to delete the build cache and retry:
rm -rf common/temp/build-cache
rush rebuild
To execute all tests:
rush test
For individual test execution inside a package directory:
rushx test
The repository includes integration tests that require Docker services:
cd tests
./prepare-tests.sh
rush test
To generate test coverage reports:
# Run tests with coverage
rush test
# Merge coverage reports from all packages
node common/scripts/merge-coverage.js
# Generate HTML coverage report
node common/scripts/generate-coverage-html.js
# View coverage summary
sh common/scripts/show-coverage-summary.sh
The coverage report will be available in coverage/html/index.html.
To bump a package version:
node ./common/scripts/bump.js -p projectName
The repository includes a Docker Compose configuration for development services:
cd tests
docker compose up -d
This will start:
Create a .env file in the tests directory with the following variables:
MONGO_URL=mongodb://localhost:27017
POSTGRES_URL=postgresql://localhost:5432/huly
ELASTIC_URL=http://localhost:9200
MINIO_ENDPOINT=localhost
MINIO_PORT=9000
KAFKA_BROKERS=localhost:9092
Contributions are welcome! Please feel free to submit a Pull Request.
Licensed under the EPL-2.0 license.
© 2025 Hardcore Engineering Inc.