我一直在寻找一个方便团队合作的软件,合作的范围包括但不限于:各种代码工程、文档共享和LaTeX文档合作与批改等。除此之外还有一些管理上的需求,全部列举如下:
- 代码合作
- 文档共享
- LaTeX文档合作与批改
- 可自主搭建,无需过度依赖于第三方
- 有良好的UI界面方便操作
- 有完整的用户管理系统
- 软件配置自由度高,便于定制,可在复杂的环境中部署
一开始想到的当然就是JupyterLab。定制确实方便,我把terminal改到一个专门用来跑代码的ubuntu docker里,然后就用到现在了。
这东西看似挺好的,但实际上和我的需求相差太远了。JupyterLab缺少用户管理系统,多用户情况下,要么用JupyterHub,要么要求每个用户都使用自己的workplace。前者占用资源较大,我采用后者,然而经常有人不开workplace。另一个严重的问题就是,无法做到LaTeX项目合作,甚至官方那个latex插件本身就非常垃圾不好用。一个折中的办法就是再加一个OverLeaf,但是OverLeaf的开源版不支持协作啊!!!这样的OverLeaf还有什么存在的意义???(如果我没弄错的话)所以,JupyterLab只能算勉强够用。
最近我尝试部署了Cocalc,目前看来,Cocalc非常强大,以上所有需求都得到满足了。再了解了一下,发现Cocalc的作者之一就是SageMath的一个作者!!!果然还是搞科研的程序员懂得我的需求(哭泣)。其部署过程也挺简单的,按Readme文档走就可以了。如果你和我一样在局域网内采用nginx反代本地的Cocalc,在抄Readme文档中的nginx配置之后,还需要用下面这条命令生成自己的证书,填到nginx配置中就可以了。真的超简单,墙裂推荐!
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./cert/nginx-selfsigned.key -out ./cert/nginx-selfsigned.crt
部署好后,管理员先进去注册一个用户,然后按照Readme文档的说明,将该用户设置成Cocalc的管理员。这样就可以在UI界面上管理Cocalc了。
Cocalc的项目协作做得很好。每个人新建的项目默认都是私有的,其他人是没法查看我的私有项目的。如果我希望你加入我的某个项目一起干活,我只要在项目上点击邀请你这个用户就好了,非常好用。还有一点就是,这玩意儿居然还能新建聊天室!离大谱!噢还有还有!它还能创建课程!再加上Cocalc支持几乎所有常用的编程语言,它就是一个团队协作的超级工作台了!
Cocalc = JupyterLab + OverLeaf + IRC + 极简版MOOC + 协作平台
好了大概就是这些,如果你有更好的想法,欢迎探讨。如果有其它更好用的且符合我需求的方案,麻烦快推荐给我!谢谢!!