Seafile共享网盘搭建
1.Seafile简介Seafile 是一个开源的文件云存储平台,更注重于隐私保护和对团队文件协作的支持。Seafile 通过“资料库”来分类管理文件,每个资料库可单独同步,用户可加密资料库,且密码不会保存在服务器端,所以即使是服务器管理员也无权访问你的文件。Seafile允许用户创建“群组”,在群组内同步文件、创建维基、发起讨论等,方便团队内协同工作。2.Seafile组件Seafi...
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.安装前置条件
-
系统环境信息:
OS版本:CentOS 7.6
数据库版本:MariabDB 5.5.6
Seafile版本:6.3.9
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.学习地址
更多推荐
所有评论(0)