项目地址: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)所用到的数据库表信息


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。