项目地址:https://github.com/haiwen/seafile-rpi/
最新版已经不支持centos
参考来源1,参考来源2,参考来源3
NOTE:
2020-02-03:在Orangepi PC+上搭建成功
ARM版本操作大致上与X86/64版本相同,详细可以参看官方wiki
下载依赖
sudo apt-get install python-requests
sudo apt-get install python-pip
sudo apt-get install python2.7 python-setuptools python-imaging python-ldap sqlite3 python-urllib3
pip install pillow moviepy
pip install certifi idna
如果提示Package python-imaging is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python-pil
则:apt-get install python2.7 libpython2.7 python-setuptools python-pil python-ldap python-urllib3 ffmpeg python-pip sqlite3
解压服务器压缩包
1.新建用于存放服务器程序的文件夹
mkdir SeafileServer
cd SeafileServer
路径:/home/pi/SeafileServer
2.下载服务器
wget https://github.com/haiwen/seafile-rpi/releases/download/v7.0.5/seafile-server_7.0.5_stable_pi.tar.gz
3.解压缩
tar xzvf seafile-server_7.0.5_stable_pi.tar.gz
cd seafile-server-7.0.5
4.运行并初始化设置服务器
sudo ./setup-seafile.sh
- 2020-02-04测试:在7.0.5版本上无法正常安装
- 需要
sudo
,否则/home/pi/HDD/seafile-data
文件夹会有权限问题. - 目录结构将会是如下:
haiwen
├── conf # configuration files
│ ├── ccnet.conf
│ └── seafile.conf
│ └── seahub_settings.py
│ └── seafdav.conf
├── ccnet
│ ├── mykey.peer
│ ├── PeerMgr
│ └── seafile.ini
├── installed
│ └── seafile-server_1.4.0_x86-64.tar.gz
├── seafile-data
├── seafile-server-1.4.0 # active version
│ ├── reset-admin.sh
│ ├── runtime
│ ├── seafile
│ ├── seafile.sh
│ ├── seahub
│ ├── seahub.sh
│ ├── setup-seafile.sh
│ └── upgrade
├── seafile-server-latest # symbolic link to seafile-server-1.4.0
├── seahub-data
│ └── avatars
├── seahub.db
seafile-server-latest
文件夹是当前 Seafile
服务器文件夹的符号链接.将来你升级到新版本后, 升级脚本会自动更新使其始终指向最新的 Seafile 服务器文件夹
启动 Seafile 服务器和 Seahub 网站
手动启动
启动 Seafile:
sudo ./seafile.sh start
# 启动 Seafile 服务
启动 Seahub
sudo./seahub.sh start
# 启动 Seahub 网站 (默认运行在8000端口上)
设置自动启动服务器
方法1.
创建脚本
sudo nano seafile_start.sh
在
seafile_start.sh
写入以下内容
sudo ./seafile.sh start
sudo ./seahub.sh start
编辑rc.local
文件加添加启动项
sudo nano /etc/rc.local
添加以下内容
cd /home/pi/seafile-server-6.2.5/
sudo ./seafile_start.sh
注意 在 exit 0这一行之前 否则不会执行
方法2.
对于运行 systemd 的系统
例如 Debian 8 以及更新的版本,Ubuntu 15.04以及更新的版本。
创建 systemd 服务管理文件,将以下示例中 ${seafile_dir} 替换为您自己的 seaile 安装路径,并且将 user 指向真正运行seafile的用户。然后您需要重新加载 systemd 的守护进程:systemctl daemon-reload。
创建 systemd
服务文件 /etc/systemd/system/seafile.service
sudo nano /etc/systemd/system/seafile.service
seafile.service文件内容如下:
[Unit]
Description=Seafile
# add mysql.service or postgresql.service depending on your database to the line below
After=network.target
[Service]
Type=oneshot
ExecStart=${seafile_dir}/seafile-server-latest/seafile.sh start
ExecStop=${seafile_dir}/seafile-server-latest/seafile.sh stop
RemainAfterExit=yes
User=seafile
Group=seafile
[Install]
WantedBy=multi-user.target
创建 systemd
服务文件 /etc/systemd/system/seahub.service
sudo nano /etc/systemd/system/seahub.service
seahub.service
文件内容如下(如果你想要运行fastcgi模式,请不要忘记修改它。)
[Unit]
Description=Seafile hub
After=network.target seafile.service
[Service]
# change start to start-fastcgi if you want to run fastcgi
ExecStart=${seafile_dir}/seafile-server-latest/seahub.sh start
ExecStop=${seafile_dir}/seafile-server-latest/seahub.sh stop
User=seafile
Group=seafile
Type=oneshot
RemainAfterExit=yes
[Install] WantedBy=multi-user.target
创建 systemd
服务文件 /etc/systemd/system/seafile-client.service
(可选)
只有在你有了 seafile 控制台客户端并且希望开机运行此程序时你才需要创建此文件。
sudo nano /etc/systemd/system/seafile-client.service
seafile-client.service
文件内容如下:
[Unit]
Description=Seafile client
# Uncomment the next line you are running seafile client on the same computer as server
# After=seafile.service
# Or the next one in other case
# After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/seaf-cli start
ExecStop=/usr/bin/seaf-cli stop
RemainAfterExit=yes
User=seafile
Group=seafile
[Install]
WantedBy=multi-user.target
设置服务开机自启动
sudo systemctl enable seafile.service
sudo systemctl enable seahub.service
sudo systemctl enable seafile-client.service
# 可选
检查服务是否已经运行
sudo systemctl -seafile.service
sudo systemctl -seahub.service
成功后如下图所示
备份与恢复
一般来说,Seafile 备份分为两部分内容:
Seafile 资料库数据
数据库
如果你根据我们的手册来安装 Seafile 服务器,你应该有如下目录结构:
haiwen # 根目录,haiwen 为示例文件名,如果你安装到其他目录则为相应的目录名
--seafile-server-2.x.x # Seafile 安装包解压缩后目录
--seafile-data # Seafile 配置文件和数据(如果你选择默认方式)
--seahub-data # Seahub 数据
--ccnet # Ccnet 配置文件和数据
--seahub.db # Seahub 用到的 sqlite3 数据库文件
--seahub_settings.py # seahub可选属性配置文件
你所有的资料库数据都存储在 haiwen 目录。
Seafile 也在数据库中存储一些重要的元数据。数据库的命名和存储路径取决于你所使用的数据库。
对于 SQLite, 数据库文件也存储在 haiwen 目录。相应的数据文件如下:
ccnet/PeerMgr/usermgr.db
: 包含用户信息
ccnet/GroupMgr/groupmgr.db
: 包含群组信息
seafile-data/seafile.db
: 包含资料库元数据信息
seahub.db
: 包含网站前端(Seahub)所用到的数据库表信息