2024-02-01 19:51:47 +00:00
# Huly Platform
2021-10-30 10:32:30 +00:00
2024-02-01 19:51:47 +00:00
[](https://x.com/huly_io)

2024-02-01 20:32:55 +00:00
⭐️ Your star shines on us. Star us on GitHub!
2024-02-01 19:51:47 +00:00
## About
2025-02-05 04:07:36 +00:00
The Huly Platform is a robust framework designed to accelerate the development of business applications, such as CRM systems.
This repository includes several applications, such as Chat, Project Management, CRM, HRM, and ATS.
2024-02-01 19:51:47 +00:00
Various teams are building products on top of the Platform, including [Huly ](https://huly.io ) and [TraceX ](https://tracex.co ).
2024-06-19 05:59:05 +00:00

2024-02-01 19:51:47 +00:00
2024-03-12 15:53:15 +00:00
## Self-Hosting
2025-02-05 04:07:36 +00:00
If you're primarily interested in self-hosting Huly without the intention to modify or contribute to its development, please use [huly-selfhost ](https://github.com/hcengineering/huly-selfhost ).
2024-03-12 15:53:15 +00:00
This project offers a convenient method to host Huly using `docker` , designed for ease of use and quick setup. Explore this option to effortlessly enjoy Huly on your own server.
2024-06-19 05:59:05 +00:00
## Activity
2025-02-05 04:07:36 +00:00

2024-06-19 05:59:05 +00:00
2024-02-01 19:51:47 +00:00
## Table of Content
2021-10-30 10:32:30 +00:00
2024-06-20 14:43:24 +00:00
- [Huly Platform ](#huly-platform )
- [About ](#about )
- [Self-Hosting ](#self-hosting )
- [Activity ](#activity )
- [Table of Content ](#table-of-content )
- [Pre-requisites ](#pre-requisites )
- [Verification ](#verification )
2025-02-24 06:12:19 +00:00
- [Fast start ](#fast-start )
- [Branches \& Contributing ](#branches--contributing )
2024-06-20 14:43:24 +00:00
- [Installation ](#installation )
- [Build and run ](#build-and-run )
2023-10-09 11:21:51 +00:00
- [Run in development mode ](#run-in-development-mode )
- [Update project structure and database ](#update-project-structure-and-database )
2024-06-20 14:43:24 +00:00
- [Troubleshooting ](#troubleshooting )
- [Build \& Watch ](#build--watch )
- [Tests ](#tests )
2023-10-09 11:21:51 +00:00
- [Unit tests ](#unit-tests )
- [UI tests ](#ui-tests )
- [Package publishing ](#package-publishing )
2024-06-20 14:43:24 +00:00
- [Additional testing ](#additional-testing )
2023-10-09 11:21:51 +00:00
## Pre-requisites
2024-04-19 07:16:50 +00:00
- Before proceeding, ensure that your system meets the following requirements:
- [Node.js ](https://nodejs.org/en/download/ ) (v20.11.0 is required)
2023-10-09 11:21:51 +00:00
- [Docker ](https://docs.docker.com/get-docker/ )
- [Docker Compose ](https://docs.docker.com/compose/install/ )
2024-04-19 07:16:50 +00:00
## Verification
To verify the installation, perform the following checks in your terminal:
- Ensure that the `docker` commands are available:
2025-02-05 04:07:36 +00:00
2024-04-19 07:16:50 +00:00
```bash
docker --version
docker compose version
2025-02-05 04:07:36 +00:00
```
2023-10-09 11:21:51 +00:00
## Fast start
```bash
sh ./scripts/fast-start.sh
```
2025-02-05 04:07:36 +00:00
## Branches & Contributing
- The `main` branch is the default branch used for production deployments.
Changes to this branch are made from the `staging` branch once a version is ready for community use.
- The `staging` branch is used for pre-release testing.
It is stable enough for testing but not yet ready for production deployment.
- The `develop` branch is used for development and is the default branch for contributions.
We periodically merge `develop` into `staging` to perform testing builds. Once we are satisfied with the build quality in our pre-release deployment, we merge changes into `main` and release a new version to the community.
2021-10-30 10:32:30 +00:00
## Installation
2025-02-24 05:31:22 +00:00
You need Microsoft's [rush ](https://rushjs.io ) to install the application.
2021-10-30 10:32:30 +00:00
2024-04-19 07:16:50 +00:00
1. Install Rush globally using the command:
2025-02-05 04:07:36 +00:00
2024-04-19 07:16:50 +00:00
```bash
npm install -g @microsoft/rush
2025-02-05 04:07:36 +00:00
```
2024-04-19 07:16:50 +00:00
2. Navigate to the repository root and run the following commands:
2025-02-05 04:07:36 +00:00
2024-04-19 07:16:50 +00:00
```bash
rush install
rush build
2025-02-05 04:07:36 +00:00
```
2024-04-19 07:16:50 +00:00
Alternatively, you can just execute:
2023-10-09 11:21:51 +00:00
```bash
sh ./scripts/presetup-rush.sh
```
2021-11-22 11:17:10 +00:00
2023-07-06 05:55:22 +00:00
## Build and run
2023-08-10 15:18:56 +00:00
Development environment setup requires Docker to be installed on system.
2023-07-06 05:55:22 +00:00
2024-02-26 05:02:34 +00:00
Support is available for both amd64 and arm64 containers on Linux and macOS.
2021-11-22 11:17:10 +00:00
```bash
2023-01-24 13:36:45 +00:00
cd ./dev/
2025-02-05 04:07:36 +00:00
rush build # Will build all the required packages.
2024-02-26 05:02:34 +00:00
# rush rebuild # could be used to omit build cache.
2021-11-22 11:17:10 +00:00
rush bundle # Will prepare bundles.
2024-02-26 05:02:34 +00:00
rush package # Will build all webpack packages.
rush validate # Will validate all sources with typescript and generate d.ts files required for ts-node execution.
rush svelte-check # Optional. svelte files validation using svelte-check.
2023-08-10 15:18:56 +00:00
rush docker:build # Will build Docker containers for all applications in the local Docker environment.
2024-02-26 05:02:34 +00:00
rush docker:up # Will set up all the containers
2021-11-22 11:17:10 +00:00
```
2024-02-26 05:02:34 +00:00
Be aware `rush docker:build` will automatically execute all required phases like build, bundle, package.
2024-04-19 07:16:50 +00:00
Alternatively, you can just execute:
2023-10-09 11:21:51 +00:00
```bash
sh ./scripts/build.sh
```
2023-08-10 15:18:56 +00:00
By default, Docker volumes named dev_db, dev_elastic, and dev_files will be created for the MongoDB, Elasticsearch, and MinIO instances.
2021-11-22 11:17:10 +00:00
2023-08-10 15:18:56 +00:00
Before you can begin, you need to create a workspace and an account and associate it with the workspace.
2021-11-22 11:17:10 +00:00
```bash
2023-11-03 18:05:12 +00:00
cd ./tool # dev/tool in the repository root
2021-11-22 11:17:10 +00:00
rushx run-local create-account user1 -p 1234 -f John -l Appleseed # Create account
2025-02-17 15:34:24 +00:00
rushx run-local create-workspace ws1 email:user1 # Create workspace
rushx run-local configure ws1 --list --enable '*' # Enable all modules, even if they are not yet intended to be used by a wide audience
rushx run-local assign-workspace user1 ws1 # Assign user to workspace
2021-11-22 11:17:10 +00:00
```
2024-04-19 07:16:50 +00:00
Alternatively, you can just execute:
2023-10-09 11:21:51 +00:00
```bash
sh ./scripts/create-workspace.sh
```
2024-09-11 17:21:29 +00:00
Add the following line to your /etc/hosts file
2025-02-05 04:07:36 +00:00
```plain
2025-02-24 06:12:19 +00:00
127.0.0.1 huly.local
2024-09-11 17:21:29 +00:00
```
2025-02-24 06:12:19 +00:00
Accessing the URL < http: / / huly . local:8087 > will lead you to the app in development mode.
2023-01-24 13:36:45 +00:00
2023-07-06 05:55:22 +00:00
Limitations:
2024-04-19 07:16:50 +00:00
- Local installation does not support sending emails, thus disabling functionalities such as password recovery and email notifications.
2023-07-06 05:55:22 +00:00
2023-01-24 13:36:45 +00:00
## Run in development mode
2023-08-10 15:18:56 +00:00
Development mode allows for live reloading and a smoother development process.
2023-07-06 05:55:22 +00:00
```bash
2023-01-24 13:36:45 +00:00
cd dev/prod
2024-08-27 09:00:07 +00:00
rush validate
2023-01-24 13:36:45 +00:00
rushx dev-server
```
2025-02-05 04:07:36 +00:00
Then go to < http: / / localhost:8080 >
2022-04-04 11:11:37 +00:00
2024-08-27 09:00:07 +00:00
Click on "Login with password" link on the bottom of the right panel and use the following login credentials:
2024-02-26 05:02:34 +00:00
```plain
2023-11-03 18:05:12 +00:00
Email: user1
Password: 1234
Workspace: ws1
```
2022-04-04 11:11:37 +00:00
## Update project structure and database
2023-08-10 15:18:56 +00:00
If the project's structure is updated, it may be necessary to relink and rebuild the projects.
2022-04-04 11:11:37 +00:00
```bash
rush update
rush build
```
2024-02-26 03:54:04 +00:00
## Troubleshooting
2024-04-19 07:16:50 +00:00
If a build fails, but the code is correct, try to delete the [build cache ](https://rushjs.io/pages/maintainer/build_cache/ ) and retry.
2023-04-25 18:31:27 +00:00
```bash
2024-02-26 03:54:04 +00:00
# from the project root
rm -rf common/temp/build-cache
2023-04-25 18:31:27 +00:00
```
2024-02-26 05:02:34 +00:00
## Build & Watch
For development purpose `rush build:watch` action could be used.
It includes build and validate phases in watch mode.
2024-02-26 03:54:04 +00:00
2022-04-04 11:11:37 +00:00
## Tests
### Unit tests
```bash
2023-07-06 05:55:22 +00:00
rush test # To execute all tests
rushx test # For individual test execution inside a package directory
2022-04-04 11:11:37 +00:00
```
### UI tests
```bash
cd ./tests
rush build
rush bundle
rush docker:build
2023-08-10 15:18:56 +00:00
## creates test Docker containers and sets up test database
2022-04-04 11:11:37 +00:00
./prepare.sh
2023-04-25 07:34:10 +00:00
## runs UI tests
2022-04-04 11:11:37 +00:00
rushx uitest
2022-09-21 08:08:25 +00:00
```
2023-08-10 15:18:56 +00:00
To execute tests in the development environment, please follow these steps:
2023-07-06 05:55:22 +00:00
```bash
cd ./tests
2023-08-10 15:18:56 +00:00
./create-local.sh ## use ./restore-local.sh if you only want to restore the workspace to a predefined initial state for sanity.
2023-07-06 05:55:22 +00:00
cd ./sanity
rushx dev-uitest # To execute all tests against the development environment.
2023-08-10 15:18:56 +00:00
rushx dev-debug -g 'pattern' # To execute tests in debug mode with only the matching test pattern.
2023-07-06 05:55:22 +00:00
```
2022-09-21 08:08:25 +00:00
## Package publishing
2023-01-04 17:58:54 +00:00
```bash
2023-07-06 05:55:22 +00:00
node ./common/scripts/bump.js -p projectName
2023-01-04 17:58:54 +00:00
```
2023-05-15 15:51:27 +00:00
## Additional testing
This project is tested with BrowserStack.
2024-02-01 19:51:47 +00:00
2025-01-30 10:21:06 +00:00
< sub > < sup > © 2025 < a href = "https://hardcoreeng.com" > Hardcore Engineering Inc< / a > .< / sup > < / sub >