【Docker实战】构建企业级文件管理系统,轻松搭建Seafile社区版云存储解决方案

举报
wzsのcloud 发表于 2024/10/30 12:48:56 2024/10/30
【摘要】 随着企业数据量的激增,构建一个安全、高效的企业级文件管理系统至关重要。华为Flexus X服务器,以其灵活的资源配置与卓越的性能,成为部署Seafile社区版云存储解决方案的理想选择。本文将详述如何轻松在Flexus X上容器化搭建Seafile,助力企业实现文件管理的智能化升级。

前言

随着企业数据量的激增,构建一个安全、高效的企业级文件管理系统至关重要。华为Flexus X服务器,以其灵活的资源配置与卓越的性能,成为部署Seafile社区版云存储解决方案的理想选择利用Flexus X部署Seafile,不仅可快速响应企业存储需求,更实现成本效益最大化。本文将详述如何轻松在Flexus X上搭建Seafile,助力企业实现文件管理的智能化升级。

链接直达:华为云Flexus云服务器X实例

image.png

Seafile介绍

Seafile社区版是一款功能丰富、安全可靠的开源云存储解决方案,它支持跨平台同步与共享文件,提供团队协作、版本控制和精细的权限管理功能。无论是企业内部文档管理还是个人资料备份,Seafile都能提供高效、便捷的服务,满足多样化的数据管理需求。其开源特性与强大功能相结合,赢得了广泛用户的青睐。

官方网站:https://www.seafile.com/

官方文档:https://cloud.seafile.com/published/seafile-manual-cn/

image.png

环境规划

操作系统 seafile docker docker-compose 连接方式
Huawei Cloud EulerOS 2.0 seafileltd/seafile-mc:11.0-latest 27.1.1 2.29.1 本地==shell==

搭建流程

修改 docker-compose.yaml和.env文件,官方下载地址

[root@flexusx-251f ~]# mkdir /opt/seafile-data
[root@flexusx-251f ~]# mkdir /opt/seafile-mysql
[root@flexusx-251f ~]# cd /opt/seafile-data/

# 将下载的docekr-compose.yaml 和 .env文件上传至主机
[root@flexusx-251f seafile-data]# ls
docker-compose.yml 

[root@flexusx-251f seafile]# vim docker-compose.yml
[root@flexusx-251f seafile]# cat docker-compose.yml
services:
  db:
    image: ${SEAFILE_DB_IMAGE:-mariadb:10.11}
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${SEAFILE_MYSQL_ROOT_PASSWORD:?Variable is not set or empty}
      - MYSQL_LOG_CONSOLE=true
      - MARIADB_AUTO_UPGRADE=1
    volumes:
      - "${SEAFILE_MYSQL_VOLUMES:-/opt/seafile-mysql/db}:/var/lib/mysql"
    networks:
      - seafile-net

  memcached:
    image: ${SEAFILE_MEMCACHED_IMAGE:-memcached:1.6.18}
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net

  seafile:
    image: ${SEAFILE_IMAGE:-seafileltd/seafile-mc:11.0-latest}
    container_name: seafile
    ports:
      - "1234:80"
      - ${SEAFILE_SSL_PORT:-}:443
    volumes:
      - ${SEAFILE_VOLUMES:-/opt/seafile-data}:/shared
    environment:
      - DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db}
      - DB_ROOT_PASSWD=${SEAFILE_MYSQL_ROOT_PASSWORD:?Variable is not set or empty}
      - TIME_ZONE=${TIME_ZONE:-Asia/Shanghai}
      - SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL:-me@example.com}
      - SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD:-asecret}
      - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:-example.seafile.com}
      - SEAFILE_SERVER_LETSENCRYPT=${SEAFILE_SERVER_LETSENCRYPT:-false}
      - FORCE_HTTPS_IN_CONF=${SEAFILE_FORCE_HTTPS_IN_CONF:-false}
    depends_on:
      - db
      - memcached
    networks:
      - seafile-net

networks:
  seafile-net:
  
# env文件中存放的是一些变量对应值
[root@flexusx-251f seafile-data]# cat .env
COMPOSE_FILE='docker-compose.yml'
COMPOSE_PATH_SEPARATOR=','


SEAFILE_IMAGE=seafileltd/seafile-mc:11.0-latest
SEAFILE_DB_IMAGE=mariadb:10.11
SEAFILE_MEMCACHED_IMAGE=memcached:1.6.18

SEAFILE_VOLUMES=/opt/seafile-data
SEAFILE_MYSQL_VOLUMES=/opt/seafile-mysql/db
SEAFILE_MYSQL_DB_HOST=db
SEAFILE_MYSQL_ROOT_PASSWORD=Huawei2#$

TIME_ZONE='Asia/Shanghai'

SEAFILE_SERVER_HOSTNAME=example.seafile.com
SEAFILE_SERVER_LETSENCRYPT=false
SEAFILE_FORCE_HTTPS_IN_CONF=false
SEAFILE_SSL_PORT=

SEAFILE_ADMIN_EMAIL=admin@example.com
SEAFILE_ADMIN_PASSWORD=Huawei12#$

拉取对应的镜像

[root@flexusx-251f seafile]# docker-compose pull
[+] Pulling 25/25
 ✔ memcached Pulled                                                        16.6s
   ✔ a2318d6c47ec Already exists                                            0.0s
   ✔ a5daf70fef96 Pull complete                                             0.3s
   ✔ b0b7f6e48c99 Pull complete                                             0.4s
   ✔ 759ef1ab0c87 Pull complete                                             0.5s
   ✔ 5823fa7609d8 Pull complete                                             0.7s
   ✔ 5565e224421e Pull complete                                             0.7s
 ✔ seafile Pulled                                                          34.6s
   ✔ 7c3b88808835 Pull complete                                             1.3s
   ✔ 6ea0e81b1046 Pull complete                                             1.3s
   ✔ 2cdac9582559 Pull complete                                             2.5s
   ✔ ccd44c40b557 Pull complete                                             2.5s
   ✔ edcbbb902102 Pull complete                                             9.1s
   ✔ 92b48bd34329 Pull complete                                            10.0s
   ✔ 5bcedf4c4f9f Pull complete                                            10.4s
   ✔ b07edc8cb7f6 Pull complete                                            11.5s
   ✔ 9590e9eed365 Pull complete                                            14.5s
   ✔ 916c8f4e3fc8 Pull complete                                            14.6s
   ✔ de6bbe57f3fe Pull complete                                            14.6s
   ✔ 5646d0bc87c4 Pull complete                                            14.6s
   ✔ d499e1745bf4 Pull complete                                            14.7s
   ✔ de86ad2ed9d3 Pull complete                                            14.7s
   ✔ a16495c6dca9 Pull complete                                            14.7s
   ✔ bea0c6116c5d Pull complete                                            18.5s
 ✔ db Pulled                                                               13.9s

创建容器

[root@flexusx-251f seafile]# docker-compose up -d
d
[+] Running 3/3
 ✔ Container seafile-memcached  Started                                     1.7s
 ✔ Container seafile-mysql      Started                                     1.7s
 ✔ Container seafile            Started                                     1.1s

查看容器运行状态

[root@flexusx-251f seafile]# docker-compose ps
NAME                IMAGE                          COMMAND                  SERVICE     CREATED         STATUS         PORTS
seafile             seafileltd/seafile-mc:10.0.1   "/sbin/my_init -- /s…"   seafile     4 seconds ago   Up 4 seconds   0.0.0.0:6188->80/tcp, :::6188->80/tcp
seafile-memcached   memcached:1.6                  "memcached -m 256"       memcached   4 seconds ago   Up 4 seconds   11211/tcp
seafile-mysql       mariadb:10.5                   "docker-entrypoint.s…"   db          4 seconds ago   Up 4 seconds   3306/tcp

查看容器日志(如果没有报错信息,证明容器正常运行)

[root@flexusx-251f seafile]# docker-compose logs

配置安全组,放行端口号 1234

image.png

访问测试

在浏览器地址栏输入: http://主机IP:1234

image.png

输入账号,密码进行登录( .env文件中有指定

image.png

登陆成功

image.png

基本使用

创建资料库

默认会有一个私人资料库,我们创建一个新的资料库

  • 点击左上角新建资料库,输入名称
  • 可以选择加密(需要设置密码),也可以默认不加密
  • 填写完成,点击提交,即可创建成功

image.png

image.png

资料库的基本使用

点击资料库名称,即可进入该资料库

  1. 点击左上角上传,可以选择上传文件或者文件夹

image.png

  1. 点击新建,可以新建目录和多种类型的文件

image.png

  1. 新建一个文件

image.png

  1. 也可以进行资料库的共享
    • 支持多种共享方式
    • 下边演示链接共享

image.png

选择链接的保护方式,之后点击生成链接

image.png

之后就可以通过链接或者二维码进行访问了

image.png

系统管理

点击右上角头像,点击系统管理

image.png

可以对用户进行管理

image.png

创建一个新用户,输入邮箱,姓名,密码,点击提交

image.png

创建成功

image.png

使用普通用户进行登录(首次登录之后,需要进行密码修改)

image.png

登陆成功

image.png

体验和感受

在构建企业级文件管理系统的过程中,华为FlexusX服务器与Seafile社区版云存储解决方案的完美结合,给我带来了前所未有的体验。FlexusX云服务器以其强大的算力、灵活的扩展性和智能调度能力,为Seafile的部署提供了坚实的基础。部署过程流畅无阻,资源按需分配,确保了系统的高可用性和性能最优化。

更让我印象深刻的是,Seafile在FlexusX上的运行表现卓越,不仅满足了企业对于文件存储、共享、协作的多样化需求,还通过精细的权限管理和安全策略,确保了企业数据的安全无忧

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。