2021SC@SDUSC-山大智云项目综述

本文详述了2021SC@SDUSC的山大智云项目,包括基于seafile的网盘系统部署,涵盖Docker容器创建、Seafile-server与Seahub的安装配置、Elastic Search、病毒扫描系统集成以及前端开发环境的搭建。项目实现了统一认证、文件管理、在线编辑、全文搜索和病毒扫描等功能。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

目录

2021SC@SDUSC

综述

项目简介

项目分析

seafile

其他功能配置

项目分工​

项目部署

创建 Docker 容器

安装中文语言

安装先决条件

准备数据库

下载源文件

编译并安装

创建配置文件

启动 Seafile-server

启动 Seahub

准备环境变量

创建 Seahub 表格

创建超级管理用户

启动 Seahub

最终文件结构

部署前端(React)开发环境

说明

部署

Seafevents 配置与启动

配置

运行 Seafevents

Elastic Search 安装

病毒扫描系统

Seafdav 配置部署与启动

准备执行文件

运行 Seafdav

文件自动删除

建立临时公网访问隧道(SSH)


综述

项目简介

“山大智云”是以网盘功能为基础的在线应用系统。项目的初衷是以seafile开源版本为基础,扩展网盘的应用功能和场景化的业务适配。

该项目目前已经初步实现校园统一认证、文件锁、在线编辑预览、全文搜索、文件病毒扫描、审计、离线上传等功能,并初步进行了系统部署和小范围测试。

项目分析

基于社区版seafile,对其开源代码进行修改,并且增添了部分功能

基于c语言的seafile-server部署在服务器上,处理文件的上传、下载与同步;

使用基于python的Django框架构建api服务器,处理前端的数据请求;

使用libsearpc实现api服务器对seafile-server的调用;

基于react框架的web前端页面。

seafile

seafile包含以下系统组件:

  • seahub:网站界面,供用户管理自己再服务器上的数据和账户信息。seafile通过gunicorn提供支持,seahub作为一个应用程序来运行

  • seafile server:数据服务进行,处理原始文件的上传/下载/同步

  • controller:监控ccnet和seafile进程,必要时重启进程

其他功能配置

  • seafdav:用于支持webDAV服务,从而直接访问云盘内容

    • webDav:基于http的通信协议,使应用程序可以直接对web server进行读写,用于网络存储文件共享

  • seafevents:主要用于执行各种周期性的任务.没有seafevents,搜索系统数据将不会得到及时更新

    • ClamAV:病毒扫描

  • elastic search:实时的分布式存储、搜索、分析的引擎

  • onlyoffice:基于Linux系统的,用于预览和编辑office文件

项目分工

按照react前端、api服务器以及seafile-server存储服务器分工,我负责seafile-server部分

项目部署

创建 Docker 容器

使用以下命令创建基于 Ubuntu 18.04 的 Docker 容器:

docker run -it -p 8000:8000 -p 8080:8080 -p 8082:8082 -p 3000:3000 -p 9200:9200 --name seafile-ce-env ubuntu:18.04  bash

Docker 内部的文件夹:

  • /root/dev/conf:存放配置文件

  • /root/dev/source-code:存放源代码

  • /tmp:存放日志和 Cache 文件

安装中文语言

apt-get install language-pack-zh-hans
locale-gen zh_CN.UTF-8
echo "export LC_ALL=zh_CN.UTF-8">>/root/.bashrc
source /root/.bashrc

输入 locale 查看当前语言:

LANG=
LANGUAGE=
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8

在实体机 Ubuntu 上可意不用担心这个问题,因为它们默认会安装 UTF-8 语言包。但是在 docker 容器中,必须进行此步骤,因为绝大多数 docker 的 ubuntu 容器都是最精简的镜像,通常不会安装中文包。

安装先决条件

apt-get update && apt-get upgrade -y
​
apt-get install -y ssh libevent-dev libcurl4-openssl-dev libglib2.0-dev uuid-dev intltool libsqlite3-dev libmysqlclient-dev libarchive-dev libtool libjansson-dev valac libfuse-dev python-dateutil cmake re2c flex sqlite3 python-pip python-simplejson git libssl-dev libldap2-dev libonig-dev vim vim-scripts wget cmake gcc autoconf automake mysql-client librados-dev libxml2-dev curl sudo telnet netcat unzip netbase ca-certificates apt-transport-https build-essential libxslt1-dev libffi-dev libpcre3-dev libz-dev xz-utils nginx pkg-config poppler-utils libmemcached-dev openjdk-11-jdk aria2 sudo
​
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
apt-get install -y nodejs
​
apt-get install -y python3-pip python3.6 python3.6-dev
​
python3.6 -m pip install --upgrade pip
​
rm /usr/bin/python
rm /usr/bin/python3
ln -s /usr/bin/python3.6 /usr/bin/python
ln -s /usr/bin/python3.6 /usr/bin/python3
​
rm /usr/bin/pip
rm /usr/bin/pip3
ln -s /usr/local/bin/pip3.6 /usr/bin/pip
ln -s /usr/local/bin/pip3.6 /usr/bin/pip3
​
pip install python-cas djangosaml2 cffi sqlalchemy pymysql pillow pycryptodome configparser pylibmc django-pylibmc elasticsearch==5.5.0 elasticsearch-dsl==5.4.0 Django==2.2.14 future captcha django-statici18n django-post_office==3.3.0 django-webpack_loader==0.7.0 gunicorn mysqlclient django-picklefield==2.1.1 openpyxl qrcode django-formtools django-simple-captcha djangorestframework==3.11.1 python-dateutil requests pillow pyjwt pycryptodome requests_oauthlib mock nose exam splinter pytest pytest-django

准备数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值