欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

seafile搭建

程序员文章站 2022-07-09 20:16:56
...

seafile搭建

此次目的就是搭建私有云,由于之前搭建的nextcloud太过于庞大,小小的树莓派无法支撑nextcloud这艘巨轮,所以这次是换个轻量的云平台seafile,废话不多说,直接上教程

准备条件

  • 树莓派 3B+ 250+
  • 移动硬盘 2T 470+
  • 笔记本一台
  • 路由器一台

搭建过程

准备环境

安装系统

在官网中下载树莓派系统镜像Raspbian Buster Lite,使用Win32DiskImager烧入SD卡

镜像地址

seafile搭建

在boot盘中创建空ssh文件和wpa_supplicant.conf

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="Danke_1504"
    psk="wifi.danke.life"
    key_mgmt=WPA-PSK
    priority=1
}
配置环境

树莓派上电后,笔记本与树莓派连接到同一路由器或同一网段。win使用以下命令获取树莓派ip地址

$ arp -a

seafile搭建

一般树莓派的mac地址是b开头,我这里是有两个树莓派

初始化用户名和密码分别是pi和raspberry,使用ssh工具登录,之后是换源,有需要的同志可以考虑一下,不是必须的

$ nano /etc/apt/sources.list
deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi
$ nano /etc/apt/sources.list.d/raspi.list
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ buster main ui
$ apt-get update
挂载移动硬盘

这里需要注意的是,刚买回来的移动硬盘是exfat格式,linux无法正常使用,需要借助其他工具来进行挂载,我这里图方便,所以索性格式化为ext4

$ sudo su
# 查看移动硬盘格式
$ df -T 
# 挂载硬盘
$ mount /dev/sda /data/wd
# 卸载硬盘
$ umount /data/wd
# 开机自动挂载
$ blkid
aaa@qq.com:/data/wd# blkid
/dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="5203-DB74" TYPE="vfat" PARTUUID="6c586e13-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="2ab3f8e1-7dc6-43f5-b0db-dd5759d51d4e" TYPE="ext4" PARTUUID="6c586e13-02"
/dev/sda: UUID="f69f23ac-8617-4825-b8e5-9abc1da1e648" TYPE="ext4"
/dev/mmcblk0: PTUUID="6c586e13" PTTYPE="dos"
$ nano /etc/fstab
UUID=f69f23ac-8617-4825-b8e5-9abc1da1e648 /data/wd ext4 defaults 0 0

开始安装

安装seafile所需要的工具和依赖

$ apt-get install libpython2.7 python-setuptools python-pil python-ldap python-urllib3 sqlite3 python-requests python-mysqldb mariadb-server -y
$ mysql
> use mysql; 
> UPDATE user SET password=password('password') WHERE user='root'; 
> flush privileges; 
> exit

github中获取专有的seafile压缩包,我这里下载的是最新 7.0.5,下载完之后,解压安装

github地址

打不开github的小伙伴请自行想办法

$ mkdir /home/pi/seafile
$ cp /home/pi/seafile-server_7.0.5_stable_pi.tar.gz /home/pi/seafile
$ cd /home/pi/seafile
$ tar -zxf seafile-server_7.0.5_stable_pi.tar.gz
$ cd /seafile-server-7.0.5

这里需要注意一下,进入到目录后,会发现有两个安装脚本setup-seafile.shsetup-seafile-mysql.sh,这里,也就是seafile提供了两个安装方法,一个是不需要数据库安装,另一个需要数据库安装。我这里选择的是数据库配置安装方法。

$ ./setup-seafile-mysql.sh
What is the name of the server? It will be displayed on the client.
3 - 15 letters or digits
[ server name ] seafile

What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101
[ This server's ip or domain ] 192.168.124.37

Where do you want to put your seafile data?
Please use a volume with enough free space
[ default "/home/pi/seafile/seafile-data" ] /data/wd/seafile
[ default "/home/pi/seafile/seafile-data" ] /data/wd/seafile

Which port do you want to use for the seafile fileserver?
[ default "8082" ] 

-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------

[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases

[ 1 or 2 ] 1
.... # 之后一直回车
port of seafile fileserver:   8082
port of seahub:               8000

When problems occur, Refer to

        https://github.com/haiwen/seafile/wiki

for information.
$ cd /home/pi/seafile/conf/
$ nano gunicorn.conf
# 修改授权访问地址
bind = "0.0.0.0:8000"
$ cd /home/pi/seafile/seafile-server-7.0.5/
$ ./seafile.sh start
$ ./seahub.sh start
# 按提示输入管理员邮箱和密码
# 如果需要管理端口的可以安装ufw工具
$ apt-get install ufw

补充

外网访问

由于我的是电信动态ip,自己也有个域名,这里使用了aliyun ddns,与光猫中设置端口映射到路由器中,路由器又DMZ虚拟主机映射,实现了可以通过外网来访内网seafile服务。

seafile搭建

自启动

$ sudo su
$ nano /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
$ nano /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