Skip to content

Kube-im is a distributed IM communication system based on Kubernetes. It utilizes Kubernetes' Service and Deployment capabilities to achieve high availability and scaling of IM systems, making it easy to build a powerful distributed IM solution.

License

Notifications You must be signed in to change notification settings

kubecub/kube-im

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

15 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โญ๏ธ sync labels between repos and org. โญ๏ธ

๐Ÿงฉ Awesome features

  • Highly Scalable - The system is built with a microservices architecture and deployed on Kubernetes, which allows it to handle gh volumes of messages and scale seamlessly.

  • Highly Available - By leveraging Kubernetes deployments and services, the system achieves high availability of all components d avoids single points of failure.

  • Distributed Messaging - The system uses a distributed messaging queue to relay messages between users in a reliable and alable way. Even in the event of component failures, messages will not be lost.

  • Group Chat & Conferencing - The system supports creating group chats and online conferences where multiple users can mmunicate and collaborate in real-time. Screen sharing and file sharing are enabled.

  • Offline Messaging - Users can send messages to each other even when the recipients are offline. Their messages will be stored d delivered once they come back online.

  • Rich Media Support - The system allows users to seamlessly share photos, voice messages, videos and files within chats and oups.

  • Secure & Compliant - The system is built with a strong emphasis on security, privacy and compliance. Encryption, thentication and authorization mechanisms ensure sensitive data is protected.

  • Open Source - The system is open source, freely available for anyone in the community to use, modify and deploy. Openness sters faster innovation.

  • Actively Maintained - The system is actively maintained by the open source community, with frequent updates and continuous provements to functionality, stability, security and performance.

  • Easy to Deploy - With the power of Kubernetes and Helm, the system is designed to be easily deployed and upgraded on various environments. Minimal configuration and scaling is required for most use cases.

  • Does this cover the main awesome features you want to highlight for the project? Let me know if you would like me to modify or add any points. I'm happy to refine this further.

Does this cover the main awesome features you want to highlight for the project? Let me know if you would like me to modify or add any points. I'm happy to refine this further.

Labels denger: The labels are designed semantic and standard. We provide labels for priority, type, status etc. You can refer to the label doc to get more info.

๐Ÿ›ซ Quick start

Note: You can get started quickly with kube-im.

Work with Makefile
โฏ make help    # show help
โฏ make build   # build binary exporter and syncer
โฏ echo 'export PATH=$PATH:/path/to/_output/platforms/linux/amd64/' | tee -a ~/.zshrc;source ~/.zshrc
Work with actions

Actions provide handling of PR and issue. We used the bot ๐Ÿš€@kubbot, It can detect issues in Chinese and translate them to English, and you can interact with it using the command /comment.

Comment in an issue:

โฏ /intive
Use
โฏ ./_output/platforms/linux/amd64/
Work with Docker
โฏ make deploy

๐Ÿ•‹ architecture diagram

graph LR
A[Config file] -->B(kube-im)
B --> C{Sync labels}
C -->|Yes| D[Create/Update labels] 
C -->|No | E[Delete labels]
D --> F[Dry run]
F --> |Yes| G[Preview]
F --> |No| H[Apply changes]
E --> I[Dry run]
I --> |Yes| J[Preview]
I --> |No| K[Apply changes]
Loading

MVC Architecture Design:

flowchart TB

A[Config file]
A --> B[kube-im]
B --> C{Sync labels}
C -->|Yes|D[<font color='green'>Create/Update </font> <br>labels]
C -->|No|E[<font color='red'>Delete </font><br> labels]  
D -.-> F[<font color='blue'>Dry run</font><br>Preview]
F --> G[Apply <br>changes]
E -.-> H[<font color='blue'>Dry run</font><br>Preview]
H --> I[Apply<br> changes]
B --> J[Label <br>PRs & <br>Issues]
Loading

๐Ÿค– File Directory Description

Catalog standardization design structure:

.kube-im
โ”œโ”€โ”€ CONTRIBUTING.md          # Contribution guidelines
โ”œโ”€โ”€ LICENSE                  # License information
โ”œโ”€โ”€ Makefile                 # Makefile for building and running the project
โ”œโ”€โ”€ README.md                # Project overview in English
โ”œโ”€โ”€ README_zh-CN.md          # Project overview in Chinese
โ”œโ”€โ”€ api                      # API-related files
โ”‚   โ”œโ”€โ”€ OWNERS               # API owners
โ”‚   โ””โ”€โ”€ README.md            # API documentation
โ”œโ”€โ”€ assets                   # Static assets, such as images and stylesheets
โ”‚   โ””โ”€โ”€ README.md            # Assets documentation
โ”œโ”€โ”€ build                    # Build-related files
โ”‚   โ”œโ”€โ”€ OWNERS               # Build owners
โ”‚   โ””โ”€โ”€ README.md            # Build documentation
โ”œโ”€โ”€ cmd                      # Command-line tools and entry points
โ”‚   โ”œโ”€โ”€ OWNERS               # Command owners
โ”‚   โ””โ”€โ”€ README.md            # Command documentation
โ”œโ”€โ”€ configs                  # Configuration files
โ”‚   โ”œโ”€โ”€ OWNERS               # Configuration owners
โ”‚   โ”œโ”€โ”€ README.md            # Configuration documentation
โ”‚   โ””โ”€โ”€ config.yaml          # Main configuration file
โ”œโ”€โ”€ deploy                   # Deployment-related files
โ”‚   โ”œโ”€โ”€ OWNERS               # Deployment owners
โ”‚   โ””โ”€โ”€ README.md            # Deployment documentation
โ”œโ”€โ”€ docs                     # Project documentation
โ”‚   โ”œโ”€โ”€ OWNERS               # Documentation owners
โ”‚   โ””โ”€โ”€ README.md            # Documentation index
โ”œโ”€โ”€ examples                 # Example code and usage
โ”‚   โ”œโ”€โ”€ OWNERS               # Example owners
โ”‚   โ””โ”€โ”€ README.md            # Example documentation
โ”œโ”€โ”€ init                     # Initialization files
โ”‚   โ”œโ”€โ”€ OWNERS               # Initialization owners
โ”‚   โ””โ”€โ”€ README.md            # Initialization documentation
โ”œโ”€โ”€ internal                 # Internal application code
โ”‚   โ”œโ”€โ”€ OWNERS               # Internal code owners
โ”‚   โ”œโ”€โ”€ README.md            # Internal code documentation
โ”‚   โ”œโ”€โ”€ app                  # Application logic
โ”‚   โ”œโ”€โ”€ pkg                  # Internal packages
โ”‚   โ””โ”€โ”€ utils                # Utility functions and helpers
โ”œโ”€โ”€ pkg                      # Public packages and libraries
โ”‚   โ”œโ”€โ”€ OWNERS               # Package owners
โ”‚   โ”œโ”€โ”€ README.md            # Package documentation
โ”‚   โ”œโ”€โ”€ common               # Common utilities and helpers
โ”‚   โ”œโ”€โ”€ log                  # Log utilities
โ”‚   โ”œโ”€โ”€ tools                # Tooling and scripts
โ”‚   โ”œโ”€โ”€ utils                # General utility functions
โ”‚   โ””โ”€โ”€ version              # Version information
โ”œโ”€โ”€ scripts                  # Scripts for development and automation
โ”‚   โ”œโ”€โ”€ LICENSE_TEMPLATES    # License templates
โ”‚   โ”œโ”€โ”€ OWNERS               # Script owners
โ”‚   โ”œโ”€โ”€ README.md            # Script documentation
โ”‚   โ”œโ”€โ”€ githooks             # Git hooks for development
โ”‚   โ””โ”€โ”€ make-rules           # Makefile rules and scripts
โ”œโ”€โ”€ test                     # Test files and test-related utilities
โ”‚   โ”œโ”€โ”€ OWNERS               # Test owners
โ”‚   โ””โ”€โ”€ README.md            # Test documentation
โ”œโ”€โ”€ third_party              # Third-party dependencies and libraries
โ”‚   โ””โ”€โ”€ README.md            # Third-party documentation
โ”œโ”€โ”€ tools                    # Tooling and utilities for development
โ”‚   โ””โ”€โ”€ README.md            # Tool documentation
โ””โ”€โ”€ web                      # Web-related files, such as HTML and CSS
    โ”œโ”€โ”€ OWNERS               # Web owners
    โ””โ”€โ”€ README.md            # Web documentation

๐Ÿ—“๏ธ community meeting

We welcome everyone to join us and contribute to kube-im, whether you are new to open source or professional. We are committed to promoting an open source culture, so we offer community members neighborhood prizes and reward money in recognition of their contributions. We believe that by working together, we can build a strong community and make valuable open source tools and resources available to more people. So if you are interested in kube-im, please join our community and start contributing your ideas and skills!

We take notes of each biweekly meeting in GitHub discussions, and our minutes are written in Google Docs.

kube-im maintains a public roadmap. It gives a a high-level view of the main priorities for the project, the maturity of different features and projects, and how to influence the project direction.

๐Ÿคผโ€ Contributing & Development

kubecub Our goal is to build a top-level open source community. We have a set of standards, in the Community repository.

If you'd like to contribute to this kube-im repository, please read our contributor documentation.

Before you start, please make sure your changes are in demand. The best for that is to create a new discussion OR Slack Communication, or if you find an issue, report it first.

๐Ÿšจ License

Kubecub is licensed under the MIT License, Version 2.0. See LICENSE for the full license text.

FOSSA Status

๐Ÿ”ฎ Thanks to our contributors!

About

Kube-im is a distributed IM communication system based on Kubernetes. It utilizes Kubernetes' Service and Deployment capabilities to achieve high availability and scaling of IM systems, making it easy to build a powerful distributed IM solution.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published