Skip to content

hypertrons/hypertrons

Repository files navigation

Hypertrons

CII Best Practices Hypertrons CI

Hypertrons is an open source robot hosting platform which supports GitHub and GitLab.

Start using Hypertrons

Hypertrons framework is written in TypeScript to improve development quality and the components are written in Lua to improve security and support component hot fix/reload.

Platform configuration

Run npm install after cloning the repository and add a globalConfig.json file to configure the robot account, the content of the file should be like below, and you can find a sample config in globalConfigTemplate.json.

For config details, please refer to robot config.

Run the robot

Need to pass the config file into environment viriable GLOBAL_CONFIG and run npm start to start the robot.

You can also run the robot by Docker, Dockerfile is provided to start the project, use docker build to build the image and use docker run to run the image. Notice that the port exposed by default is 7001.

Configuration

Further configuration should be configured in specific repo or private local file, for more information please refer to robot config.

Start developing Hypertrons

Before developing Hypertrons, please make sure you read the contributing guide to understand the basic process and requirement of the project.

Architecture

The underlying developing framework is eggjs which does a great job in cluster management, messenger system, router and logs stuff.

The upper layer is written in TypeScript and implement the event manager, schedule manager, hosting platform manager, etc.

On the client layer, fengari is used to provide a Lua VM approach using Node.js. Limited Lua binding is written to provide Lua code execution alibity in TypeScript.

The components are all written in Lua to provide hot fix/reload and logic customization.

For more details, please refer to architecture.

Community

Hypertrons also use hypertrons(play as menbotics) to manage community, the community roles can be found in config file.

Support

If you have any questions or feature requests, please feel free to submit an issue.