• 欢迎访问愉悦人生,我会在这里分享一些我认为有趣的东西,欢迎关注!
  • 永远相信美好的事情即将发生!
  • 转眼间到了十一月中了,今年我好像长大了不少。
  • 今年可能是比较幸运的一年,得到了成长,得到了经验,还有一些别的东西!
  • 糊里糊涂的又把站点迁了一遍,顺便修复了一下问题
  • 春节回家,消失一段时间了。

树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书

Linux相关 Nvito 1年前 (2018-10-11) 1671次浏览 0个评论

文章可能已经失去时效性,如有问题可在下方留言与我联系,文章最后更新于

前言

树莓派的I/O读写效率太差了,直到3B+才有千兆网口,USB至今还是2.0,如果指望用树莓派当主要NAS存储大量数据的话,还是非常不靠谱的。但是如果你像我一样,只用来存一点日常用的小工具、照片、种子啥的还是可以的。
官方服务器手册地址

建议

如果你想随时随地使用seafile当私有云盘首先建议你所处的网络环境是有一个公网ip的,固定ip当然是最好的,动态公网ip也行。如果没有公网ip,可以琢磨琢磨frp、ngrok、zero tier等等这些内网穿透工具。

如果你有大量的数据存储用途,搞一块便宜的itx工控板几块大容量的硬盘组一台家用nas是最合适不过了,能组riad保护数据安全,还能搞链路聚合提高存储速度,当然要保证你的硬盘读写没有达到瓶颈。

如果你不是装在树莓派上的,可以看一下这个3用户免费版专业版,功能比社区版多很多。

免费的Seafile专业版

文章可能已经失去时效性,如有问题可在下方留言与我联系,文章最后更新于 2019年12月27日 前段时间在捣鼓S […]

过程

注意

如果你的pi上有web服务器或者已经安装了pihole注意把lighttpd和其他web服务器先卸载或者停止服务避免端口冲突,最好先用纯净的环境安装好seafile再安装pihole,或者在安装pihole的过程中选择不安装lighttpd。

sudo apt-get remove lighttpd    //卸载
sudo systemctl stop lighttpd      //停止服务
sudo systemctl disable lighttpd  //禁止开机自启
使用Apache2部署Pi-hole及基本介绍

文章可能已经失去时效性,如有问题可在下方留言与我联系,文章最后更新于 2019年12月13日 前言 在家里用树 […]

seafile脚本安装

先开启并切换到root用户

sudo raspi-config         //开启 root 用户,方法一
sudo root password     //开启 root 用户,方法二
su –                               //切换 root 用户

安装必要的组件

apt-get upadte
apt-get -y install  libpython2.7 python-setuptools python-imaging python-ldap python-urllib3 ffmpeg python-pip sqlite3
pip install pillow moviepy

官方说用使用python2.7,而树莓派安装好系统后默认安装了py2、py3,缺省使用python2.7,所以不用更改了。

下载seafile Pi版本,在以下链接可以找到最新版本。
Seafile Pi版下载链接

在root的家目录下创建一个seafile文件夹,并把下载好的pi版本复制进seafile文件夹(windwos与linux之间文件传输不介绍了)

mkdir seafile && cd seafile   //新建 seafile 文件夹并进入
tar -zxvf seafile-server_6.3.2_stable_pi.tar   //解压缩
./setup-seafile.sh    //执行安装脚本

执行安装脚本后会检测你的安装环境,并且需要输入你的基本信息

树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书
树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书

启动seafile服务,并且设置web管理员密码

./seafile.sh start     //启动 seafile 服务
./seahub.sh  start 8000     //第一次启动会让输入 web 管理员邮箱和密码
//注意,这个路径在/root/seafile/seafile-server-6.2.3/

树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书

seafile常用命令

./seahub.sh stop # 停止 Seahub
./seafile.sh stop # 停止 Seafile 进程
./seafile.sh restart # 停止当前的 Seafile 进程,然后重启 Seafile
./seahub.sh restart  # 停止当前的 Seahub 进程,并在 8000 端口重新启动 Seahub
//注意这里的目录是/root/seafile/seafile-server-6.3.2/

配置apache2及https证书

apt-get -y install apache2
a2enmod rewrite
a2enmod proxy_http
a2enmod ssl
mv /etc/apache2/sites-enabled/000-default.conf /etc/apache2/sites-enabled/000-default.conf.bak
vi /etc/apache2/sites-enabled/000-default.conf

需要注意的是有几处需要根据自己的实际情况修改:

  • 1.第二、二十四行的www.myseafile.com修改成自己的域名。
  • 2.第四、二十九行根据自己的安装路径修改(绝对路径),如果你是按着我上面做的,直接复制就可以。
  • 3.第二十七、二十八行是你存放证书的位置,我这里用的是阿里云免费的证书,存放在/etc/apche2下
<VirtualHost *:80>
    ServerName www.myseafile.com
    DocumentRoot /var/www
    Alias /media  /root/seafile/seafile-server-latest/seahub/media
    RewriteEngine On
    <Location /media>
        Require all granted
    </Location>
    #
    # seafile fileserver
    #
    ProxyPass /seafhttp http://127.0.0.1:8082
    ProxyPassReverse /seafhttp http://127.0.0.1:8082
    RewriteRule ^/seafhttp – [QSA,L]
    #
    # seahub
    #
    SetEnvIf Authorization “(.*)” HTTP_AUTHORIZATION=$1
    ProxyPass / http://127.0.0.1:8000/
    ProxyPassReverse / http://127.0.0.1:8000/
</VirtualHost>
<VirtualHost *:443>
  ServerName www.myseafile.com
  DocumentRoot /var/www
  SSLEngine On
  SSLCertificateFile /etc/apache2/cacert.pem
  SSLCertificateKeyFile /etc/apache2/privkey.key
  Alias /media  /root/seafile/seafile-server-latest/seahub/media
  <Location /media>
    Require all granted
  </Location>
  RewriteEngine On
  #
  # seafile fileserver
  #
  ProxyPass /seafhttp http://127.0.0.1:8082
  ProxyPassReverse /seafhttp http://127.0.0.1:8082
  RewriteRule ^/seafhttp – [QSA,L]
  #
  # seahub
  #
  SetEnvIf Authorization “(.*)” HTTP_AUTHORIZATION=$1
  ProxyPass / http://127.0.0.1:8000/
  ProxyPassReverse / http://127.0.0.1:8000/
</VirtualHost>

配置完apache的部分,先重启apache服务,让配置文件生效

systemctl restart apache2

如果重启apache服务没有报错证明apache已经正常启动了,现在登录seafile看看https是不是已经生效了。

http://192.168.3.50
https://192.168.3.50

树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书
树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书

现在用ip访问还没绑定域名,所以浏览器url旁边会显示一个不安全的标志,但是点进去查看证书发现自己的域名已经绑定在上面了,说明https已经配置正确,还需最后的配置让seafile正常的工作。

如图点击右上角的头像图标进入系统设置,这里面可以自定义logo等,根据自己的需求选择
树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书
树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书

SERVICE_URL:https://www.seafile.com(你的域名)
FILE_SERVICE_ROOT:https://www.seafile.com/seafhttp(你的域名/seafhttp)

到这里seafile这部分已经完全配置完了,想要测试的可以写一条hosts指向你的服务器ip,再试试能不能正常上传下载,正常运行的话就可以设置端口映射和域名解析了。

硬盘挂载

如果你觉得树莓派的几十G内存卡够用的话可以忽略这个步骤。

首先要保证你的树莓派供电稳定,能带得起一个机械硬盘,买一个硬盘盒装个2.5寸的机械硬盘,或者买一个硬盘坞(最好带供电的)插几块3.5寸或者2.5寸的机械硬盘然后接在在你的树莓派usb口上。

格式化就不说了,不懂的直接把硬盘插在你的windows下把分区格式化成ext4

把硬盘接上树莓派,在根目录下的media文件夹中创建一个seafile-data的文件夹以便挂载

mkdir</span> /media/seafile-data

查看接入的硬盘的uuid,可以看到新接入的硬盘还没有挂载,把uuid复制下来

lsblk -f

树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书
设置开机自动挂载硬盘到/media/seafile-data下,在/etc/fstab加入以下内容

UUID=79cb4e16-e87c-44b9-a8a1-5f0c7c185f0a      /media/seafile-data     ext4    defaults        0       0
//将上面的 uuid 替换成你在上面复制下来的 uuid

树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书
把安装目录下的seafile-data转移到挂载盘下,再在seafile的安装目录下创建一个软链接,链接到挂载盘的seafile-data,这样数据就会全部存储到挂载盘下了。

mount /dev/sda1 /media/seafile-data
mv /root/seafile/seafile-data /media/seafile-data
ln -s /media/seafile-data /root/seafile/seafile-data

树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书

配置开机自启

修改/media/seafile-data拥有者,不然会报错
chown -R root:root /media/seafile-data
vi /etc/system/system/seafile.services
加入以下内容

[Unit]
Description=seafile
After=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
User=root
ExecStart=/bin/bash -c “/root/seafile/seafile-server-6.3.2/seafile.sh start”
ExecStart=/bin/bash -c “/root/seafile/seafile-server-6.3.2/seahub.sh start”
ExecStop=/bin/bash -c “/root/seafile/seafile-server-6.3.2/seafile.sh stop”
ExecStop=/bin/bash -c “/root/seafile/seafile-server-6.3.2/seahub.sh stop”
[Install]
WantedBy=multi-user.target

用以下命令使服务进程生效及开机自启动seafile

systemctl daemon-reload
systemctl enable seafile.services
systemctl start seafile.services    //运行后没有显示则说明启动成功
systemctl status seafile.services  //查看运行状态,有报错可以根据提示解决

树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书

本文的Seafile安装目录是/root/seafile,版本是seafile-server_6.3.2_stable_pi,如果你不是跟我一样,请注意修改自己的路径和版本号。本篇全篇都是处于root用户下运行的,如果你是pi用户注意用sudo.

路由器端口映射和阿里ddns动态域名解析

DDNS动态域名解析的厂家有很多,比较出名的有花生壳、公云、阿里ddns、noip、dnspod等等,根据自己的需要选择吧,我这里只介绍阿里ddns,对于普通用户来说,花生壳还是比较坑的。

无论你选择哪一家,你都需要把seafile的80、443端口开放到公网上去,这样才能随时随地的访问到你的私有云,但是国内所有的运营商都是会封掉一些web端口,但是好像各个地区又不一样,比如说,某些地区的运营商会把80.8080.443端口都封掉,但是在我这就只封了80端口而已。

由于封掉了外网的80端口,80端口只能在内网访问了,在外网访问你就必须要在url后面加上端口号,用上了https虽然说不需要加上端口号,但是确实要在前面手打https感觉还是非常麻烦,好在seafile的移动端可以设置固定的端口号。

端口映射

在路由器设置一个非80端口映射到内网80端口,我用的路由器是openwrt,接口–>防火墙–>端口转发
树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书

上面的外部端口可以自己填

阿里ddns

阿里ddns的原理非常简单,通过阿里开放的api实时修改域名解析记录。在路由器本地对比解析记录地址和本地wan口ip,如果解析记录上的地址不符合本地ip就通过api自动更新解析记录。

要使用阿里的api首先需要申请一个AccessKey,很简单,进入控制台后如图操作

树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书

树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书

点击右上角的创建AccessKey,获取并记下你的AccessKey ID和Access Key Secret

我用的路由器是openwrt,这个阿里ddns插件是集成在自带的ddns里面的,如果你那里没有的话自己研究一下吧
树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书
树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书
树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书

需要注意的是一定要正确的填写你的AccessKey和域名,这里最小只能设置到每5分钟检查更新一次

10/11/2018


愉悦人生 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:树莓派RaspberryPi3B+搭建私人网盘Seafile并配置阿里云免费HTTPS证书
喜欢 (4)
发表我的评论
取消评论

表情 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址