1.Seafile简介

Seafile 是一个开源的文件云存储平台,更注重于隐私保护和对团队文件协作的支持。
Seafile 通过“资料库”来分类管理文件,每个资料库可单独同步,用户可加密资料库,
且密码不会保存在服务器端,所以即使是服务器管理员也无权访问你的文件。Seafile
允许用户创建“群组”,在群组内同步文件、创建维基、发起讨论等,方便团队内协同工作。

2.Seafile组件

Seafile服务器系统组件:

  • Seahub:网站界面,供用户管理自己在服务器上的数据和账户信息。Seafile服务器通过"gunicorn"()一个轻量级的Python HTTP服务器)来提供网站支持。Seahub作为gunicorn的一个应用程序来运行,监听在8000端口。
  • Seafile server (seaf-server): 数据服务进程, 处理原始文件的上传/下载/同步,监听在8082端口。
  • Ccnet server (ccnet-server): 内部 RPC 服务进程,连接多个组件。
  • Controller: 监控 ccnet 和 seafile 进程,必要时会重启进程。

4.Seafile加密功能

Seafile自身带有对自建的资源库的加密的功能,是加密整个资源库,而不是单个文件,所以需要注意;
管理员和普通用户都有权利创建和加密自己所需要的资源库,未授权任何人也无法查看资源库信息,区别在于:管理员创建的加密资源库对某个普通用户即使授予读写权限,该用户也无法访问管理员加密了的资源库;普通用户创建的加密资源库给管理员授权之后,管理员输入资源库密码后可访问此资源库。

5.说明信息

因为在网上搜索了许久,发现Seafile 6.3.9的这个版本可以破解使用不用导入授权文件而创建
自定义用户数,所以此文档是针对的此版本来搭建并编写的。如需使用Seafile 7的版本,请自
行到下面的链接中的官网地址去下载相应的版本,然后通过此地址生成授权文件导入即可使用,
请注意使用的授权文件期限只有一年时间,请自行根据需求来选择对应的版本。

6.安装前置条件

7.系统环境配置

1)配置阿里yum源

cat > /etc/yum.repos.d/CentOS-Base.repo << EOF 
> [base]
> name=CentOS-$releasever - Base - mirrors.aliyun.com
> failovermethod=priority
> baseurl=http://mirrors.aliyun.com/centos/7/os/$basearch/
> EOF 

2)禁止、关闭firewalld防火墙开机自启动

systemctl disable firewalld && systemctl stop firewalld

3)临时和永久关闭SElinux

setenforce 0 

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

4)清空iptables规则

iptables -X && iptables -F && iptables -Z	

8.安装依赖包

yum install python-setuptools MySQL-python memcached python-urllib3 pwgen curl \ 	
openssl python-ldap java-1.7.0-openjdk python-requests libreoffice \ 
poppler-utils libreoffice-headless libreoffice-pyuno wqy-microhei-fonts \
wqy-zenhei-fonts wqy-unibit-fonts -y	

yum install gcc libffi-devel python-devel openssl-devel libmemcached \ 	
libmemcached-devel python2-pip  python-imaging -y	

9.安装并初始化数据库

yum install mariadb-server mariadb	

systemctl enable mariadb && systemctl start mariadb && systemctl status mariadb

mysql_secure_installation 

10.创建所需用户

提示:Seafile的安装配置需要使用普通用户来操作

useradd -m -s /bin/bash seafile	

passwd seafile 	

11.下载软件包并进行数据库初始化

su - seafile

wget https://file.hurray0.com/uploads/menu/117/seafile-pro-server-6.3.9_unlimit.tar.gz				

tar -xf seafile-pro-server-6.3.9_unlimit.tar.gz 		

mkdir install && mv seafile-pro-server-6.3.9_unlimit.tar.gz install/

cd /opt/seafile/seafile-pro-server-6.3.9/

./setup-seafile-mysql.sh 

安装提示符解释:
[Press ENTER to continue]:输入回车键继续
[ server name ]:输入服务名称,随意名称
[ This server’s ip or domain ]:输入服务器的IP地址或域名
[ default “/opt/seafile/seafile-data” ]:数据文件的保存路径,默认即可
[ default “8082” ]:seafile监听的端口,默认即可
[ 1 or 2 ]:数据库配置,选择1,创建新的数据库
[ default “localhost” ]:数据库主机地址,本机的话默认即可
[ default “3306” ]:数据库端口,默认即可
[ root password ]:输入数据库管理员root密码
[ default “seafile” ]:新建数据库的用户名,默认
[ password for seafile ]:新建数据库用户的密码,自行设置
[ default “ccnet-db” ]:ccnet-db数据库库名,默认
[ default “seafile-db” ]:seafile-db数据库库名,默认
[ default “seahub-db” ]:seahub-db数据库库名,默认

12.修改Seafile配置并启动

1)修改绑定地址为本地地址和8000端口,默认为127.0.0.1

提示:不修改此地址外网不可访问到seafile服务

sed -i 's/127.0.0.1/{IP}/'  /opt/seafile/conf/gunicorn.conf

IP:此地址为外网的可访问地址,需要自行进行修改;

2)修改脚本文件/opt/seafile/seafile-server-latest/seahub/seahub/settings.py改变默认时区

TIME_ZONE = 'Asia/Shanghai'

3)进入主目录运行初始化脚本

cd /opt/seafile/seafile-pro-server-6.3.9/

./seafile.sh start 		

./seahub.sh start    

[ admin email ]:输入管理员邮箱,默认登录的用户名
[ admin password ]:输入管理员密码,默认的登录的密码
[ admin password again ]:再次确认密码

13.查看端口

ss -tunlp | grep "8000|8082" 

8000端口:此端口为seahub网页访问端口
8082端口:此端口为seafile server进程工作端口

14.访问并登录

在浏览器端输入以下格式访问

http://{IP}:{PORT}

IP:输入主机上的外网IP地址信息
PORT:输入访问端口,默认为8000
在这里插入图片描述

15.数据备份

一般来说,seafile备份分为两种:

  • Seafile的资料库文件数据的物理备份,重要的目录及文件有:
    seafile-pro-server-6.3.9:Seafile安装包解压缩后的目录
    seafile-data:Seafile配置文件和目录
    ccnet:ccnet配置文件和数据
    seahub.db:Seahub用到的数据库文件
    seahub_settings.py:seahub可选属性配置文件
mkdir /backup/seafile/{databases,data} -pv

cd /backup/seafile/data

tar -cvf  seafile_$(date +"%Y-%m-%d").tar.gz /opt/seafile/ 

databases目录:此目录为数据的逻辑备份文件存放目录
data目录:此目录为数据的物理备份文件存放目录

  • 数据库表的逻辑备份,需要备份以下重要的数据库:
    ccnet-db库:包含用户和群组的信息
    seafile-db:包含资料库元数据信息
    seahub.db:包含前端(seahub)所用到的数据库表信息
cd /backup/seafile/databases/

mysqldump -uroot -p -B ccnet-db > ccnet-db-$(date +"%Y-%m-%d").sql

mysqldump -uroot -p -B seafile-db > seafile-db-$(date +"%Y-%m-%d").sql

mysqldump -uroot -p -B seahub-db > seahub-db-$(date +"%Y-%m-%d").sql

16.数据恢复

如果你当前的Seafile服务器已经坏掉了,将使用另一台机器来提供服务,需要恢复数据:

  • 假设在新机器中,Seafile也被部署在/opt目录中,解压/backup/seafile/data/数据到新机器中即可
cd /backup/seafile/datab/

tar -xf /backup/seafile/data/seafile_2020-03-11.tar.gz -O /opt/
  • 恢复数据库,如果你已经有有数据备份文件,你可以按照如下步骤来进行恢复
cd /backup/seafile/databases/

mysqldump -uroot -p ccnet < ccnet-db-2020-03-11.sql

mysqldump -uroot -p seafile-db < seafile-db-2020-03-11.sql

mysqldump -uroot -p seahub-db < seahub-db-2020-03-11.sql

17.学习地址

Seafile服务器学习手册

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐