参考从零开始的树莓派搭建NAS
参考树莓派–seafile搭建私人网盘
参考部署 Seafile 服务器(使用 MySQL/MariaDB)
1 seafile简介
NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。目前国际著名的NAS企业有Netapp、EMC、OUO等。
NetApp,不断以创新的理念和领先的技术引领存储行业的发展,是向数据密集型企业提供统一存储解决方案的居世界最前列的公司,其 Data ONTAP是全球首屈一指的存储操作系统。
EMC(易安信)为一家美国信息存储资讯科技公司,主要业务为信息存储及管理产品、服务和解决方案。EMC公司创建于1979年,总部在马萨诸塞州霍普金顿市。2003年,EMC收购了VMware。2015年10月,EMC被DELL收购。
OUO,个人安全存储和中小企业服务器领域的全球首家集团化公司,公司专注一个核心:数据安全;覆盖两大产业:移动互联网和中小企业服务器。
NAS就是私有云,私有云纯粹就是自己用的。
公有云有百度网盘,腾讯微云等。
2 安装网盘软件seafile
2.1 下载解压seafile
安装包seafile-server-8.0.3-buster-armv7.tar.gz
$ mkdir -p /home/pi/seafile
$ tar -xzvf seafile-server-8.0.3-buster-armv7.tar.gz -C /home/pi/seafile/
2.2 准备工作
2.2.1 树莓派安装mariadb
$ sudo apt-get install mariadb-server -y
$ sudo mysql
> use mysql;
> UPDATE user SET password=password('bigdata') WHERE user='root';
> flush privileges;
> exit
使用root用户登陆
$ sudo mysql -uroot -p
2.2.2 安装依赖
$ sudo apt-get install libpython2.7 python-setuptools python-pil python-ldap python-urllib3 sqlite3 python-requests python-mysqldb -y
$ sudo pip3 install pymysql
2.3 安装seafile
$ cd /home/pi/seafile/seafile-server-8.0.3/
进入到目录后,会发现有两个安装脚本setup-seafile.sh和setup-seafile-mysql.sh,这里,也就是seafile提供了两个安装方法,一个是不需要数据库安装,另一个需要数据库安装。这里选择的是数据库配置安装方法。
$ sudo ./setup-seafile-mysql.sh
(1)主机名
(2)IP地址
(3)设置端口
(4)验证数据库
(5)新增用户和数据库
(6)生成的配置参数
(7)完成配置
seafile-server-latest文件夹为指向当前 Seafile 服务器文件夹的符号链接。
将来升级到新版本后, 升级脚本会自动更新使其始终指向最新的 Seafile 服务器文件夹。
2.4 启动Seafile 服务器和 Seahub 网站
在 seafile-server-latest 目录下,运行如下命令
$ cd /home/pi/seafile/seafile-server-latest
$ sudo ./seafile.sh start # 启动 Seafile 服务
$ sudo ./seahub.sh start # 启动 Seahub 网站 (默认运行在127.0.0.1:8000端口上)
按提示输入管理员邮箱和密码
管理员账号为邮箱19789xxx514@qq.com。
设置管理员密码bigdata。8000端口默认监听在127.0.0.1地址上,这意味着您无法直接通过8000端口访问Seafile服务。建议您配置nginx反向代理。
$curl http://127.0.0.1:8000
$ sudo /home/pi/seafile/seafile-server-latest/seahub.sh stop
$ sudo /home/pi/seafile/seafile-server-latest/seafile.sh stop
2.5 修改授权访问地址
文件/home/pi/seafile/conf/gunicorn.conf.py
import os
daemon = True
workers = 5
# default localhost:8000
#bind = "127.0.0.1:8000"
bind = "192.168.0.199:8000"
# Pid
pids_dir = '/home/pi/seafile/pids'
pidfile = os.path.join(pids_dir, 'seahub.pid')
# for file upload, we need a longer timeout value (default is only 30s, too short)
timeout = 1200
limit_request_line = 8190
$ sudo /home/pi/seafile/seafile-server-latest/seahub.sh start
$ sudo /home/pi/seafile/seafile-server-latest/seafile.sh start
2.6 设置开机自启动
$ sudo vi /etc/systemd/system/seafile.service
[Unit]
Description=Seafile
After=network.target
[Service]
Type=oneshot
ExecStart=/home/pi/seafile/seafile-server-latest/seafile.sh start
ExecStop=/home/pi/seafile/seafile-server-latest/seafile.sh stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
$ sudo vi /etc/systemd/system/seahub.service
[Unit]
Description=Seafile hub
After=network.target seafile.service
[Service]
ExecStart=/home/pi/seafile/seafile-server-latest/seahub.sh start
ExecStop=/home/pi/seafile/seafile-server-latest/seahub.sh stop
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
$ sudo systemctl enable seafile.service
$ sudo systemctl enable seahub.service