项目简介
本项目基于Node.js和Brick.JS框架构建了ics.pku.edu.cn网站系统,主要为北京大学智能计算与感知实验室服务,可提供网站展示、文件上传下载以及LDAP认证等服务。
项目的主要特性和功能
- 网站服务:依靠Node.js搭建高效灵活的Web服务,利用Brick.JS框架对页面进行组织和管理。
- 文件管理:支持用户上传和下载文件或数据集,文件命名需遵循特定格式。
- LDAP认证:借助LDAP目录服务实现用户认证,适用于大型组织或企业的用户管理。
安装使用步骤
安装依赖
- 安装Node.js v8.0.0版本。
- 从http://redis.io/下载并安装Redis - Server,从https://www.mongodb.com/download-center#community下载并安装MongoDB。
- 全局安装gulp:
npm install gulp -g
。
构建和运行
- 进入项目目录并安装依赖:
cd ics.pku.edu.cn && npm install
。 - 构建项目:
gulp build
。 - 配置项目:复制配置示例文件并进行编辑,
cp config.example.json config.json
,然后用vim config.json
进行必要配置。 - 依次启动服务:
mongod &
启动MongoDB,redis - server &
启动Redis,sh ldap/gen - cert.sh
生成证书,node ldap/ldap - server.js &
启动LDAP服务,最后npm start
启动Node.js应用。
开发
在开发环境下,使用 gulp
命令进行构建和服务器启动。
管理员用户更新
- 更新
config.admin
配置(确保config.mongodb
配置有效)。 - 启动MongoDB服务。
- 运行
node ./bin/update - admin.js
更新管理员用户。
文件上传与下载
- 登录网站 http://ics.pku.edu.cn,用户名
ics
,密码ics1800
。 - 下载文件或数据集:在主页导航栏选择“资源下载”,点击“学术文章”可下载文件,点击“数据下载”可下载数据集。
- 上传文件或数据集:在主页顶层导航点击用户名,进入“管理页面”,选择“内容管理: 文件管理”进行文件上传,文件需按指定格式命名。
网站架构
项目使用Node.js编写并运行,默认监听3008端口,可在 config.json
的 express
项下修改;使用Redis作为数据存储支持,默认端口6379,也在 config.json
中配置。网页内容存于 bricks
文件夹,按模块组织在子目录内。公开文件上传至 public/upload
目录,访问链接格式为 /upload/xxx.txt
。采用systemctl的service运行网站,支持自动重启服务。
Mongoose Schema
用于在MongoDB数据库中组织JS对象,可实现数据的添加、查询、修改和删除操作。添加数据时创建对象并调用 save
函数;查询时调用 find(obj, selcs, handler)
函数,其中 obj
为查询条件,selcs
为要提取的属性,handler
为处理返回值的函数。
LDAP服务
项目集成LDAP目录服务用于用户登录认证。可在 ldap - server
中编写 add
、search
、bind
等方法处理接口,具体参考ldapjs官方文档 http://ldapjs.org/。同时,portainer官方关于LDAP的文档可参考 https://documentation.portainer.io/v2.0/auth/ldap/ 和 https://www.linkedin.com/pulse/ldap-usersgroups-portainer-neil-cresswell/。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】