# WiLearning **Repository Path**: wisting/WiLearning ## Basic Information - **Project Name**: WiLearning - **Description**: WiLearning 是一个开源、免费的在线课堂及视频会议系统,支持文档和白板。使用WebRTC技术打造,服务器端使用Typescript + Nodejs + MediaSoup开发,App端使用Angular + Ionic。 - **Primary Language**: TypeScript - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 201 - **Forks**: 87 - **Created**: 2020-09-23 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: multimedia **Tags**: None ## README [Demo](https://rtc.liweix.com/admin) # WiLearning WiLearning is an open source, free e-learning and conferencing system. WiLearning uses WebRTC technology, The server side uses Typescript + Nodejs + MediaSoup and client side uses Angular + Ionic, WiLearning has the following features: * Multi-person video conference,or text interaction * Share desktop * Share local media * WhiteBoard & files, files are automatically transcoded in the web * Realtime brush-courseware annotation, add content, and share to other participants * Document preview , display annotation in preview * Export document, export document to pdf include brush & annotation * Support multiple rooms at the same time, the number of participants in one room is not limited, depends on the hardware conditions * Support Chinese and English * Automatic recovery when switching network * Support Chrome/Safari in Windows/Mac/Linux/Android/IOS # Install Requirement: Nodejs>v12 ``` # Build all ./build.sh all # build subsystem ./build.sh [server/app/admin] # build result locate in 'dist' directory ``` # Run The sample SSL certificate is provided in the code. Please provide your own certificate when it is actually running.The certificate must be consistent with the domain name you visit. * enter the dist directory ``` cd dist ```` * Method 1: run server.js ``` node server.js --cert ../certs/rtc.liweix.com.pem --key ../certs/rtc.liweix.com.key ``` * WiLearning get your public ip from 'https://api.ipify.org'. Alternatively, you can specify on in command line. ``` node server.js --cert ../certs/rtc.liweix.com.pem --key ../certs/rtc.liweix.com.key --publicIp x.x.x.x ``` * ```eth0``` is used as default interface name. If you have a different interface name, you must specify it using ```--eth``` ``` node server.js --cert ../certs/rtc.liweix.com.pem --key ../certs/rtc.liweix.com.key --eth ``` * Or you can run start.sh with default SSL certificate ``` ./start.sh ``` * run with pm2 ``` npx pm2 start start.sh ``` # enable google bbr run the follow command line in server console(linux kernel > 4.9): ``` wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh ``` # Access * Access WiLearning admin use Chrom/FireFox/Safari: ``` https://[your public ip]/admin/ ``` * Create room in Admin, open the 'Link' of room * Now it has two roler, 'Speaker' and 'Attendee','Speaker' act as the adminstrator of room. * Login the same room , choose your roler, begin your conference, enjoy! # Support WiLearning * Use it, and report Bug! * Tell me you feeling and your want. * Give it a STAR ![Give me a cup of coffee](res/appreciate.png)