# YRSSF **Repository Path**: leebing/YRSSF ## Basic Information - **Project Name**: YRSSF - **Description**: 一个分布式云教学/云课堂/直播平台CMS,由lua语言编写,底层由c++实现。同时也是一个内置内网穿透的web服务器 - **Primary Language**: C - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-06-18 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # [YRSSF](https://github.com/cgoxopx/YRSSF) # 这是一个p2p架构的 云教学系统/直播平台框架(CMS) ## 特点: ## * 基于UDP协议,并且可以通讯加密(虽然是使用web界面来管理,并且目前不支持https……) * 内置内网穿透(废话,不然怎么P2P) * 使用“区块树”存储数据 * 使用“数(fang)字(mao)证书”来验证用户身份 * 弱人工智能(能通过解析简单的汉语来加速搜索) * 数据库为LevelDB,但是使用LUA开发时可以用`runsql`来调用sqlite * 自动根据内存池不同时间使用情况绘制曲线,然后根据曲线自动设置内存池大小(听起来高大上,实际似乎并没有什么卵用) * 内置锁机(#喷)(没办法,这是校内云教学软件……) * 操作系统兼容POSIX,比如Android,Linux。 * 可通过web管理(但是不能https) * 支持cgi和fastcgi(可以直接移植php项目什么的了) * 目前尚不支持Windows,可通过VNC来使用Windows程序 ## 文档: ## [APIs](build) ## 警告: ## lock目录下的东西极度危险!极度危险!极度危险!重要的事说三遍 经测试,在原版linux下可导致[百度](https://www.baidu.com)等常见网站DNS解析错误,并且会自动关闭大多数端口 在android下会同时卸载包括蓝牙在内的大多数系统app,并且结束未允许的用户app的进程(具体效果见睿易派) 如果不需要限制设备功能(比如说防止学生用平板电脑打游戏……),请不要在lock目录里面乱make,否则后果很严重…… 如果真的make了,在里面`make clean`一下可以解除锁机效果 此工具请勿用于非法用途,否则后果自负 ## 编译: ## ### Linux: ### #### 下载并编译: ` $ git clone https://github.com/cgoxopx/YRSSF ` ` $ cd YRSSF && make ` ` $ cd core && make ` ` $ cd ../launcher && make ` ` $ cd ../build ` #### 让系统重新生成密钥: ` $ rm data/cert.txt `生成后第一行是公钥,第二行是私钥 #### 重新生成数据库: ` $ rm data/yrssf.db` #### 添加信任的公钥: ` $ echo "public key" >> data/allowcert.txt` #### 设置用户名: ` $ vim data/user.txt` #### 最后运行项目: ` $ ./launcher ` #### 结束进程(如果需要的话): ` $ killall YRSSF launcher daemon` launcher和daemon会相互保护,单独结束其中任意一个都会被另一个复活 ### Android编译: ### #### 动态编译: #### 本项目需要下列so文件,请自行准备 * Tag Type Name/Value * 0x00000001 (NEEDED) Shared library: [libdl.so.2] * 0x00000001 (NEEDED) Shared library: [libjpeg.so.8] * 0x00000001 (NEEDED) Shared library: [libssl.so.1.0.0] * 0x00000001 (NEEDED) Shared library: [libcrypto.so.1.0.0] * 0x00000001 (NEEDED) Shared library: [libstdc++.so.6] * 0x00000001 (NEEDED) Shared library: [libm.so.6] * 0x00000001 (NEEDED) Shared library: [libgcc_s.so.1] * 0x00000001 (NEEDED) Shared library: [libpthread.so.0] * 0x00000001 (NEEDED) Shared library: [libc.so.6] #### 静态编译: #### 进入core目录,`make android` ## 插件开发: ## 编译完成后,/build 整个目录可以直接复制出来在其他位置执行 /build/static 为www目录(存放网页以及cgi文件) /build/live 下的文件为直播的管道文件 /build/static 目录支持cgi文件或者php文件,但是使用cgi文件时请注意:如果cgi程序有错误,http服务器关闭时会直接`Segmentation fault`(这似乎是cgi的通病) # 鸣谢 # * lua * lua-cjson * leveldb * zlib * sqlite * cppjieba * [studyHttpd](https://github.com/tw1996/studyHttpd) * tinyhttpd * SDL