Videoconf is a robust Video Conference API as a Service platform (AaaS :-)) that provides seamless integration of video conferencing capabilities into JavaScript (React, Angular, etc.) and Node.js applications.
- Easy-to-use APIs and SDKs for video conferencing integration
- Support for multiple JavaScript frameworks (React, Angular, etc.)
- Node.js compatibility
- Scalable microservice architecture
- Real-time video and audio streaming
- Secure and efficient call routing
- Kubernetes-based deployment for high availability and scalability
- Database: MongoDB
- Backend: Golang with Gin framework
- Client: JavaScript SDK
- Deployment: Kubernetes (K8s)
Videoconf consists of three main components:
- Golang Microservice: Handles video call sessions and routes requests
- Client SDK: Provides easy integration for web applications
- MongoDB Database: Stores user and session data
The entire stack is deployed on Kubernetes for optimal performance and scalability.
- Node.js (v14+)
- Go (v1.16+)
- MongoDB
- Kubernetes cluster
A working kubernetes cluster is needed for this project
-
Clone the repository:
git clone https://github.com/r3tro56/go-videoconf.git
-
Setup the Kubernetes Cluster:
cd videoconf/.deployment bash ./01-deploy-db.sh bash ./02-configure-mongodb-repset.sh bash ./03-deploy-rest.sh
For detailed documentation on how to use the Videoconf API and SDK, please visit our documentation site.
Here's a quick example of how to use the Videoconf SDK (ES6) in a React application:
import { VideoconfSDK, VideoContainer } from "videoconf-sdk";
const videoconf = new VideoconfSDK("YOUR_API_KEY", "PROJECT_ID");
function VideoCall() {
useEffect(() => {
videoconf.initializeCall("room-id");
}, []);
return <VideoContainer videoconf={videoConf} />;
}
We welcome contributions to Videoconf! Please see our Contributing Guide for more details.
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions, please file an issue on GitHub or contact our support team at Support.