{"id":39357073,"url":"https://github.com/hcengineering/huly.server","last_synced_at":"2026-01-18T02:38:40.784Z","repository":{"id":318666578,"uuid":"1072092487","full_name":"hcengineering/huly.server","owner":"hcengineering","description":"A server implementation of Huly Platform","archived":false,"fork":false,"pushed_at":"2026-01-12T10:02:29.000Z","size":708,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-12T16:08:35.988Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hcengineering.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-08T08:49:50.000Z","updated_at":"2026-01-12T10:02:34.000Z","dependencies_parsed_at":"2025-10-08T15:25:12.461Z","dependency_job_id":null,"html_url":"https://github.com/hcengineering/huly.server","commit_stats":null,"previous_names":["hcengineering/huly.server"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/hcengineering/huly.server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hcengineering%2Fhuly.server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hcengineering%2Fhuly.server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hcengineering%2Fhuly.server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hcengineering%2Fhuly.server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hcengineering","download_url":"https://codeload.github.com/hcengineering/huly.server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hcengineering%2Fhuly.server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28526583,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-18T02:38:40.017Z","updated_at":"2026-01-18T02:38:40.768Z","avatar_url":"https://github.com/hcengineering.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Huly Server\n\n[![GitHub License](https://img.shields.io/github/license/hcengineering/huly.server?style=for-the-badge)](LICENSE)\n\n⭐️ Your star shines on us. Star us on GitHub!\n\n## About\n\nHuly Server is a collection of server-side packages extracted from the [Huly Platform](https://github.com/hcengineering/platform). This repository contains backend infrastructure components, storage adapters, and server-side utilities that power the Huly ecosystem.\n\nThese 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.\n\n## Packages\n\nThis repository includes the following server packages:\n\n### Server Core\n\n- [@hcengineering/server-core](packages/core) - Core server infrastructure, adapters, storage management, and server-side utilities\n- [@hcengineering/server](packages/server) - Main server implementation and runtime\n- [@hcengineering/server-client](packages/client) - Server-side client implementation for inter-service communication\n- [@hcengineering/middleware](packages/middleware) - Server middleware components and request processing\n\n### Database Adapters\n\n- [@hcengineering/mongo](packages/mongo) - MongoDB adapter for document storage\n- [@hcengineering/postgres](packages/postgres) - PostgreSQL adapter for relational data\n- [@hcengineering/elastic](packages/elastic) - Elasticsearch adapter for full-text search and analytics\n\n### Storage Providers\n\n- [@hcengineering/server-storage](packages/server-storage) - Storage abstraction layer and implementations\n- [@hcengineering/minio](packages/minio) - MinIO storage provider for object storage\n- [@hcengineering/s3](packages/s3) - AWS S3 compatible storage provider\n- [@hcengineering/datalake](packages/datalake) - Data lake storage and management\n- [@hcengineering/hulylake](packages/hulylake) - Huly lake storage and management\n\n### Infrastructure\n\n- [@hcengineering/kafka](packages/kafka) - Apache Kafka integration for event streaming and messaging\n- [@hcengineering/collaboration](packages/collaboration) - Real-time collaborative editing infrastructure\n\n## Pre-requisites\n\nBefore proceeding, ensure that your system meets the following requirements:\n\n- [Node.js](https://nodejs.org/en/download/) (v20.11.0 or higher is required)\n- [Rush](https://rushjs.io/) - Microsoft's scalable monorepo manager\n- [Docker](https://docs.docker.com/get-docker/) - For running development services\n- [Docker Compose](https://docs.docker.com/compose/install/) - For orchestrating development environment\n\n## Verification\n\nTo verify the installation, perform the following checks in your terminal:\n\n- Ensure that the `docker` commands are available:\n\n```bash\ndocker --version\ndocker compose version\n```\n\n- Verify Node.js version:\n\n```bash\nnode --version\n```\n\n## Installation\n\nYou need Microsoft's [rush](https://rushjs.io/) to install the application.\n\n1. Install Rush globally using the command:\n\n   ```bash\n   npm install -g @microsoft/rush\n   ```\n\n1. Navigate to the repository root and run the following commands:\n\n   ```bash\n   rush install\n   rush build\n   ```\n\n## Build\n\nTo build all packages:\n\n```bash\nrush build\n```\n\nTo rebuild (ignoring cache):\n\n```bash\nrush rebuild\n```\n\n## Build \u0026 Watch\n\nFor development purposes, `rush build:watch` action could be used:\n\n```bash\nrush build:watch\n```\n\nIt includes build and validate phases in watch mode.\n\n## Update project structure\n\nIf the project's structure is updated, it may be necessary to relink and rebuild the projects:\n\n```bash\nrush update\nrush build\n```\n\n## Troubleshooting\n\nIf a build fails, but the code is correct, try to delete the [build cache](https://rushjs.io/pages/maintainer/build_cache/) and retry:\n\n```bash\nrm -rf common/temp/build-cache\nrush rebuild\n```\n\n## Tests\n\nTo execute all tests:\n\n```bash\nrush test\n```\n\nFor individual test execution inside a package directory:\n\n```bash\nrushx test\n```\n\n### Running Integration Tests\n\nThe repository includes integration tests that require Docker services:\n\n```bash\ncd tests\n./prepare-tests.sh\nrush test\n```\n\n### Test Coverage\n\nTo generate test coverage reports:\n\n```bash\n# Run tests with coverage\nrush test\n\n# Merge coverage reports from all packages\nnode common/scripts/merge-coverage.js\n\n# Generate HTML coverage report\nnode common/scripts/generate-coverage-html.js\n\n# View coverage summary\nsh common/scripts/show-coverage-summary.sh\n```\n\nThe coverage report will be available in `coverage/html/index.html`.\n\n## Package Publishing\n\nTo bump a package version:\n\n```bash\nnode ./common/scripts/bump.js -p projectName\n```\n\n## Development Environment\n\n### Setting Up Services\n\nThe repository includes a Docker Compose configuration for development services:\n\n```bash\ncd tests\ndocker compose up -d\n```\n\nThis will start:\n\n- MongoDB - Document database\n- PostgreSQL - Relational database\n- Elasticsearch - Search engine\n- MinIO - Object storage\n- Kafka - Message broker\n\n### Environment Variables\n\nCreate a `.env` file in the `tests` directory with the following variables:\n\n```env\nMONGO_URL=mongodb://localhost:27017\nPOSTGRES_URL=postgresql://localhost:5432/huly\nELASTIC_URL=http://localhost:9200\nMINIO_ENDPOINT=localhost\nMINIO_PORT=9000\nKAFKA_BROKERS=localhost:9092\n```\n\n## Related Projects\n\n- [Huly Platform](https://github.com/hcengineering/platform) - The main Huly Platform repository\n- [Huly Core](https://github.com/hcengineering/huly.core) - Core packages and client libraries\n- [Huly Self-Host](https://github.com/hcengineering/huly-selfhost) - Self-hosting solution for Huly\n- [Huly Examples](https://github.com/hcengineering/huly-examples) - API usage examples\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nLicensed under the [EPL-2.0](LICENSE) license.\n\n## Additional Links\n\n- [Huly Website](https://huly.io/)\n- [Documentation](https://docs.huly.io/)\n- [Community](https://github.com/hcengineering/platform/discussions)\n\n© 2025 [Hardcore Engineering Inc](https://hardcoreeng.com/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhcengineering%2Fhuly.server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhcengineering%2Fhuly.server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhcengineering%2Fhuly.server/lists"}