您的位置 首页 java

轻松搭建个人专属网盘,手把手教学保证成功

今天为大家介绍一款企业级的开源私有云盘,可以完美替代某度网盘。大家千万不要被企业级吓到,要知道开源软件,只要不用于商业用途一般都是可以自由使用的。

今天介绍的这款开源云盘叫做Seafile。Seafile 起源于清华实验室,目前已发展成为一个国际化的开源项目。

Seafile 解决方案得到了全球过百万用户、数千计公司机构、数家全球顶级学府的信任。在清华大学倍受广大师生喜爱的清华云盘就是使用Seafile 搭建的。

Seafile 是使用C/C++打造开源网盘,执行性能很高,家里淘汰的电脑也可稳定运行。

Seafile 几乎提供了主流云盘产品所具有的所有功能,包括文件同步、文件共享等。在此基础上,Seafile 还提供了高级的安全保护功能以及群组协作功能。

下面我们开始Seafile 云盘服务器的安装。

一、操作系统准备

Seafile 云盘服务器可以部署在Windows系统也可以部署在Linux系统,为了最大化发挥咱们老电脑的性能,建议大家使用Linux系统,我这里使用的是开源的Centos 7系统。

安装操作系统时要注意设置用于Seafile 存储的分区,该分区的空间一定要能满足自己存储数据的需要。

我是单独使用一块硬盘挂载到/data/seafile目录来存储数据的。

单独的硬盘可在系统安装完后再进行挂载。

 #查看当前磁盘信息,第一块磁盘是sda,第二块为sdb,依次递推
fdisk -l 
#分区
fdisk /dev/sdb
#输入m查看帮助
Command action
  d   delete a partition #删除分区
  g   create a new empty GPT partition table
  G   create an IRIX (SGI) partition table
  l   list known partition types
  m   print this menu
  n   add a new partition  #新增分区
  o   create a new empty DOS partition table
  q   quit without saving changes
  s   create a new empty Sun disklabel
  w   write table to disk and exit  #保存分区表
#1、输入d删除分区
#2、输入n创建新分区,一路回车选择默认即可
#3、输入w保存分区表
#格式化分区为XFS
mkfs.xfs -f /dev/sdb1  

挂载分区

 mount -t xfs /dev/sdb1 /data/seafile
vi /etc/fatab
#在最后一行添加
/dev/sdb1 /data/seafile xfs defaults 0 0  

二、Docker环境安装

为了方便部署和维护,建议大家使用Docker方式进行部署。大家没用过Docker也没问题,直接按照 阿里巴巴 开源镜像站给出文档安装即可,复制粘贴几条命令就可以顺利完成安装。装上之后再熟悉也不迟嘛。

 # step 1: 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
yum-config-manager --add-repo  Centos /docker-ce.repo
# Step 3: 更新并安装 Docker-CE
yum makecache fast
yum -y install docker-ce
# Step 4: 开启Docker服务
systemctl start docker
# Step 5: 设置Docker开机自动启动
systemctl enable docker  

如果启动docker服务失败,可尝试

 1、停止firewalld服务
systemctl stop firewalld
systemctl disable firewalld
2、关闭selinux
vi /etc/selinux/config
#将SELINUX=enforcing 改为 SELINUX=disabled  

接下来重新启动docker应该就没问题了

三、docker-compose安装

docker-composer的安装非常简单,就和Windows上的绿色软件是一样的,下载即可,只是Linux里面需要为docker-composer添加执行权限。

docker-composer 的下载地址就在这儿了:

到最新版的 docker-compose-Linux-x86_64 ,复制链接地址,通过wget下载到Centos服务器即可。

如果从github下载速度太慢或者无法下载的话可以尝试国内的下载地址: #install-compose

 #下载docker-compose并保存到/usr/local/ bin /目录下
curl -L `uname -s`-`uname -m` > /usr/local/bin/docker-compose
#为docker-compose添加可执行权限
chmod +x /usr/local/bin/docker-compose  

四、Seafile 服务器部署

前面我们已经准备好了Docker运行环境,接下来我们正式开始Seafile 服务器部署。

我已经为大家编写好了docker-compose文件,把Seafile 所需的服务软件进行了统一配置。这里我同时为大家提供企业版和社区版两个配置文件。

大家只需要在Centos服务器创建docker-compose.yaml 文件,复制下面的社区版和企业版内容到刚刚创建的文件,并更改密码和存储路径后保存。

 mkdir seafile
cd seafile
vi docker-compose.yaml
docker-compose up -d  #该命令会自动拉取镜像并创建容器,容器创建后会在后台启动
docker ps -a   #查看容器状态  

社区版

 version: '2.0'
services:
  db:
    image: mariadb:10.1
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=12345678  # 必须,数据库密码,需要更改成自己的密码,不改也没事,只要不允许外部访问就行.
      - MYSQL_LOG_CONSOLE=true
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - /data/seafile/seafile-mysql/db:/ var /lib/mysql  # 必须,mysql数据库文件持久化存储路径,数据库文件一定要存储在本地服务器,避免容器更改造成数据丢失.
    ports:
      - "3306:3306"
    networks:
      - seafile-net
     restart : always

  memcached:
    image: memcached:1.5.6
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net
    restart: always

  seafile:
    image: seafileltd/seafile-mc:latest
    container_name: seafile
    ports:
      - "9080:80"
#      - "443:443"  # If https is enabled, cancel the comment.
    volumes:
      - /data/seafile/seafile-data:/shared   # 必须, Seafile持久化存储路径.
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=12345678  # 必须, 填写上面的数据库密码.
      - TIME_ZONE=Asia/Shanghai # Optional, default is UTC. Should be uncomment and set to your local time zone.
      - SEAFILE_ADMIN_EMAIL=admin@qq.com # Seafile超级管理员用户, default is 'me@example.com'.
      - SEAFILE_ADMIN_PASSWORD=123456     # 超级管理员用户的密码.
      - SEAFILE_SERVER_LETSENCRYPT=false   # Whether use letsencrypt to generate cert.
      - SEAFILE_SERVER_HOSTNAME=seafile.example.com # 域名,如果使用非 80端口 ,同时填上端口号如,seafile.example.com:9080.
    depends_on:
      - db
      - memcached
    networks:
      - seafile-net
    restart: always

networks:
  seafile-net:  

企业版

 version: '2.0'
services:
  db:
    image: mariadb:10.1
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=12345678  # 必须,数据库密码,需要更改成自己的密码,不改也没事,只要不允许外部访问就行.
      - MYSQL_LOG_CONSOLE=true
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - /data/seafile/seafile-mysql/db:/var/lib/mysql  # 必须,mysql数据库文件持久化存储路径,数据库文件一定要存储在本地服务器,避免容器更改造成数据丢失.
    networks:
      - seafile-net

  memcached:
    image: memcached:1.5.6
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net

  elasticsearch:
    image: seafileltd/elasticsearch-with-ik:5.6.16
    container_name: seafile-elasticsearch
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 2g
    volumes:
      - /data/seafile/seafile-elasticsearch/data:/usr/share/elasticsearch/data  # 必须, elasticsearch持久化存储路径.
    networks:
      - seafile-net

  seafile:
    image: docker.seafile.top/seafileltd/seafile-pro-mc:latest
    container_name: seafile
    ports:
      - "9080:80"
#     - "443:443"  # If https is enabled, cancel the comment.
    volumes:
      - /data/seafile/seafile-data:/shared   # 必须, Seafile持久化存储路径.
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=12345678  # 必须, 填写上面的数据库密码.
#      - TIME_ZONE=Asia/Shanghai # Optional, default is UTC. Should be uncomment and set to your local time zone.
      - SEAFILE_ADMIN_EMAIL=admin@qq.com # Seafile超级管理员用户, default is 'me@example.com'.
      - SEAFILE_ADMIN_PASSWORD=123456     # 超级管理员用户的密码.
      - SEAFILE_SERVER_LETSENCRYPT=false   # Whether to use https or not
      - SEAFILE_SERVER_HOSTNAME=seafile.example.com # 域名,如果使用非80端口,同时填上端口号如,seafile.example.com:9080.
    depends_on:
      - db
      - memcached
      - elasticsearch
    networks:
      - seafile-net
    restart: always

networks:
  seafile-net:  

五、云盘的使用

Seafile云盘分企业版和社区版两种,社区版对个人用户完全免费,企业版可供三个用户免费使用。社区版可满足大家的对于文件同步和分享的基本需求。企业版对硬件配置要求更高一些,毕竟多运行了elasticsearch容器嘛。elasticsearch主要用于大数据搜索,对于个人用户完全没必要,而且elasticsearch要是真飙起来咱这老旧机器可撑不住。所以我最终还是选择了企业版在老机子上使用,经过半年多的使用,无论是性能还是稳定性都完全没问题。

seafile企业版和开源版功能对照表

具体使用效果请大家关注我,观看我发布的同期视频。

文章来源:智云一二三科技

文章标题:轻松搭建个人专属网盘,手把手教学保证成功

文章地址:https://www.zhihuclub.com/177379.shtml

关于作者: 智云科技

热门文章

网站地图