seafile介绍

seafile程序和数据分离,程序安装在虚拟机上,数据通过NFS挂载方式,自动备份数据库到NFS。

 

部署和目录设计

NFS挂载目录:/mnt/nfs

seafile程序目录:/opt/seafile

seafile Data目录:/opt/seafile/seafile-data --> /mnt/nfs/seafile-data

安装

服务端支持linux和windows两种操作系统,本文的选择是ubuntu 20.4 x64seafilepro 8.0.15。

准备存储

安装nfs client,添加开机启动,保证重启后挂载仍然生效,然后挂载NFS

apt install nfs-common
mkdir -p /mnt/nfs
echo "192.168.55.120:/seafile  /mnt/nfs  nfs  defaults  0 0" >> /etc/fstab
mount /mnt/nfs

准备运行环境

sudo apt-get update
sudo apt-get install python3 python3-setuptools python3-pip python3-ldap libmysqlclient-dev -y
sudo pip3 install --timeout=3600 django==2.2.* future mysqlclient pymysql Pillow pylibmc  
captcha jinja2 sqlalchemy==1.4.3 psd-tools django-pylibmc django-simple-captcha

安装

查看系统架构,32bit or 64bit

# uname -m      

创建seafile根目录,源文件将解压到该根目录下

# mkdir /usr/local/src/seafile
# tar -C /usr/local/src/seafile -zxvf seafile-server_1.7.0_i386.tar.gz

that's all.

配置

# cd /usr/local/src/seafile-server-*
# ./setup-seafile.sh

配置参数如下:

参数 说明
seafile server name seafile服务器的名字,3~15 个字符,可用英文字母,数字,下划线
seafile server ip or domain seafile服务器的IP地址或者域名。客户端将通过这个IP或者域名来访问Seafile服务。需要注意的是,在本例中,该IP地址应设为防火墙的互联网IP
ccnet server port 默认:10001
seafile data dir seafile数据存放目录,默认是./seafile/seafile-data,建议放在一个NFS服务器中,方便日后的扩容和维护。
seafile server port seafile服务器使用的TCP端口,默认为12001
seafile httpserver port seafile httpserver使用的TCP端口,默认为8082
seahub admin email sehaub管理员的帐户。该帐号仅是管理员帐号,用于发送邮件通知的email帐号需在seafile.conf中进行配置。
seahub admin password seahub管理员的密码

seafile的配置文件是分布式的,不同组件的配置文件单独分开,不利于维护。

启动

# ./seafile.sh start
# ./seahub.sh start
假如seahub的端口不是默认的8000,则
./seahub.sh start <new_port>

停止

# ./seafile.sh stop
# ./seahub.sh stop

重启

# ./seafile.sh restart
# ./seahub.sh restart

假如seahub的端口不是默认的8000,则

# ./seahub.sh restart <new_port>

升级

由于seafile的开发非常活跃,新版本层出不穷,因而经常需要升级。

升级前需先中止seahub和seafile进程:

# ./seahub.sh stop
# ./seafile.sh stop

新下载的版本也一并解压到seafile的根目录下,在本文中指的是/usr/local/src/seafile,读者也可以自行选择其它目录。最终的目录结构如下:

/usr/local/src
   -- seafile-server-1.7.0
   -- seafile-server-1.4.5
   -- ccnet
   -- seafile-data

小版本升级

指的是从1.6.0升级到1.6.1。

cd /usr/local/src/seafile/seafile-server-1.3.1/seahub/media
cp -rf avatars/* ../../../seahub-data/avatars/
rm -rf avatars
ln -s ../../../seahub-data/avatars

连续版本升级

指的是从1.6.0升级到1.7.0。

cd /usr/local/src/seafile-server1.7.0/upgrade
./update_1.6_1.7.sh

非连续版本升级

现在的版本为1.4,最新版本为1.7,需连续执行

cd /usr/local/src/seafile-server1.7.0/upgrade
./update_1.4_1.5.sh
./update_1.5_1.6.sh
./update_1.6_1.7.sh

升级完毕后启动seahub和seafile进程。

随机启动

seafile服务由多个进程共同协作而成,

创建/etc/init.d/seafile-server

#!/bin/sh
### BEGIN INIT INFO
# Provides:		seafile-server
# Required-Start:	$all
# Required-Stop:	$all
# Should-Start:		$local_fs
# Should-Stop:		$local_fs
# Default-Start:	2 3 4 5
# Default-Stop:		0 1 6
### END INIT INFO

# Change the value of "user" to your user name
user=root

# Change the value of "script_path" to your path of seafile installation
script_path=/usr/local/src/seafile/seafile-server-1.7.0

sudo -u ${user} ${script_path}/seafile.sh start > /tmp/seafile.init.log 2>&1
sudo -u ${user} ${script_path}/seahub.sh start > /tmp/seahub.init.log 2>&1

以上脚本仅用于start,缺乏stop和restart的功能。

更新

# chmod +x /etc/init.d/seafile-server
# update-rc.d seafile-server defaults

tips

  • 变更默认端口后,seafile可能会出现问题,这种情况下建议直接重装了事,包括服务端和客户端。
  • 客户端的删除
    • 删除客户端之前请确保ccnet进程已杀掉,否则无法正常卸载。
    • 卸载完后,手工删除客户端的配置文件夹C:用户<用户名>ccnet
  • 客户端的配置客户端的配置文件为C:用户<用户名>ccnetccnet.conf,假如服务端的变更了默认端口号,需在此进行变更。

VIA:http://ioiioi.github.io/categories/seafile/

参与评论