Huly — All-in-One Project Management Platform (alternative to Linear, Jira, Slack, Notion, Motion)
Go to file
Artyom Savchenko 34daf3a7f5
UBERF-8628: Disable run button if there is nothing to run (#7277)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2024-12-06 18:00:47 +07:00
.github Love agent build (#7133) 2024-11-08 15:56:30 +05:00
.vscode UBERF-8619: Rework backup %hash% usage (#7273) 2024-12-06 16:30:33 +07:00
common UBERF-8619: Rework backup %hash% usage (#7273) 2024-12-06 16:30:33 +07:00
desktop UBERF-8619: Rework backup %hash% usage (#7273) 2024-12-06 16:30:33 +07:00
desktop-package Upgrade Electron to v33 (#7145) 2024-11-11 10:29:50 +07:00
dev UBERF-8619: Rework backup %hash% usage (#7273) 2024-12-06 16:30:33 +07:00
models UBERF-8627: Enable test management (#7274) 2024-12-06 16:48:05 +07:00
packages Add text tool for drawings (#7266) 2024-12-06 16:57:58 +07:00
plugins UBERF-8628: Disable run button if there is nothing to run (#7277) 2024-12-06 18:00:47 +07:00
pods UBERF-8619: Rework backup %hash% usage (#7273) 2024-12-06 16:30:33 +07:00
products/tracker UBERF-8518: Optimize client model (#7000) 2024-10-21 13:12:45 +07:00
qms-tests UI, navigator, aside fixes (#7254) 2024-12-03 13:46:53 +07:00
scripts Update readme (#4772) 2024-02-26 11:02:34 +06:00
server Add text tool for drawings (#7266) 2024-12-06 16:57:58 +07:00
server-plugins UBERF-8619: Rework backup %hash% usage (#7273) 2024-12-06 16:30:33 +07:00
services Fix onConnect handler (#7265) 2024-12-05 22:29:54 +07:00
templates Upgrade svelte to 4.2.19 (#7146) 2024-11-11 14:02:41 +07:00
tests The alarm button in the sidebar for the Meeting (#7260) 2024-12-05 12:33:39 +07:00
workers tool: copy files from R2 to datalake (#7262) 2024-12-05 14:54:07 +07:00
.gitattributes UBER-477: Uberflow dependencies (#3440) 2023-06-20 12:47:00 +07:00
.gitignore Mongo dump script (#7088) 2024-11-03 00:12:17 +07:00
.npmrc fix: adjust bump script (#7121) 2024-11-07 22:08:02 +07:00
.nvmrc UBERF-8376: Move indexer from server-core (#6829) 2024-10-09 12:08:27 +07:00
.prettierrc Update to svelte 4.2.12 and some template fixes (#4982) 2024-03-15 16:33:12 +07:00
changelog.md Update changelog with proper refs 2024-08-20 23:44:07 +07:00
cliff.toml Update changelog with proper refs 2024-08-20 23:44:07 +07:00
LICENSE Initial commit 2021-08-02 21:39:24 +02:00
package-lock.json UBERF-8520: Test management (#7154) 2024-11-13 13:59:32 +07:00
README.md Update QMS docker-compose.yaml so it can view and download PDF files (#6507) 2024-09-11 21:21:29 +04:00
rush.json Add draft survey app (#7162) 2024-11-13 14:53:46 +07:00

Huly Platform

X (formerly Twitter) Follow GitHub License

Your star shines on us. Star us on GitHub!

About

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. Various teams are building products on top of the Platform, including Huly and TraceX.

Huly

Self-Hosting

If you're primarily interested in self-hosting Huly without the intention to modify or contribute to its development, please use huly-selfhost. 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.

Activity

Alt

Table of Content

Pre-requisites

Verification

To verify the installation, perform the following checks in your terminal:

  • Ensure that the docker commands are available:
    docker --version
    docker compose version
    

Fast start

sh ./scripts/fast-start.sh

Installation

You need Microsoft's rush to install application.

  1. Install Rush globally using the command:
    npm install -g @microsoft/rush
    
  2. Navigate to the repository root and run the following commands:
    rush install
    rush build
    

Alternatively, you can just execute:

sh ./scripts/presetup-rush.sh

Build and run

Development environment setup requires Docker to be installed on system.

Support is available for both amd64 and arm64 containers on Linux and macOS.

cd ./dev/
rush build    # Will build all the required packages. 
# rush rebuild  # could be used to omit build cache.
rush bundle   # Will prepare bundles.
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.
rush docker:build   # Will build Docker containers for all applications in the local Docker environment.
rush docker:up # Will set up all the containers

Be aware rush docker:build will automatically execute all required phases like build, bundle, package.

Alternatively, you can just execute:

sh ./scripts/build.sh

By default, Docker volumes named dev_db, dev_elastic, and dev_files will be created for the MongoDB, Elasticsearch, and MinIO instances.

Before you can begin, you need to create a workspace and an account and associate it with the workspace.

cd ./tool # dev/tool in the repository root
rushx run-local create-workspace ws1 -w DevWorkspace # Create workspace
rushx run-local create-account user1 -p 1234 -f John -l Appleseed # Create account
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 workspace to user.
rushx run-local confirm-email user1 # To allow the creation of additional test workspaces.

Alternatively, you can just execute:

sh ./scripts/create-workspace.sh

Add the following line to your /etc/hosts file

127.0.0.1 host.docker.internal

Accessing the URL http://host.docker.internal:8087 will lead you to the app in development mode.

Limitations:

  • Local installation does not support sending emails, thus disabling functionalities such as password recovery and email notifications.

Run in development mode

Development mode allows for live reloading and a smoother development process.

cd dev/prod
rush validate
rushx dev-server

Then go to http://localhost:8080

Click on "Login with password" link on the bottom of the right panel and use the following login credentials:

Email: user1
Password: 1234
Workspace: ws1

Update project structure and database

If the project's structure is updated, it may be necessary to relink and rebuild the projects.

rush update
rush build

It may also be necessary to upgrade the running database.

cd ./dev/tool
rushx upgrade -f

Troubleshooting

If a build fails, but the code is correct, try to delete the build cache and retry.

# from the project root
rm -rf common/temp/build-cache

Build & Watch

For development purpose rush build:watch action could be used.

It includes build and validate phases in watch mode.

Tests

Unit tests

rush test # To execute all tests

rushx test # For individual test execution inside a package directory

UI tests

cd ./tests
rush build
rush bundle
rush docker:build
## creates test Docker containers and sets up test database
./prepare.sh
## runs UI tests
rushx uitest

To execute tests in the development environment, please follow these steps:

cd ./tests
./create-local.sh ## use ./restore-local.sh if you only want to restore the workspace to a predefined initial state for sanity.
cd ./sanity
rushx dev-uitest # To execute all tests against the development environment.
rushx dev-debug -g 'pattern' # To execute tests in debug mode with only the matching test pattern.

Package publishing

node ./common/scripts/bump.js -p projectName

Additional testing

This project is tested with BrowserStack.

© 2024 Hardcore Engineering Inc.