怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案

admin 2022年4月13日22:19:05评论80 views字数 4479阅读14分55秒阅读模式
 
怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案
导读:Seafile 只专注于文件同步、共享及与之相关的事情,仅此而已。但正因为如此,它最终做的非常好。 
本文字数:5090,阅读时长大约:6分钟

https://linux.cn/article-14468-1.html
作者:Hunter Wittenborn
译者:hwlife

首先,什么是 Seafile ?

Seafile🔗 www.seafile.com 是一个自托管文件同步程序,采用客户端/服务器模式,即你有笔记本、手机等多个设备,能够连接到一个中心服务器。

不像类似 Nextcloud 或 ownCloud🔗 itsfoss.com 这些更流行的替代品一样,Seafile 试图遵循 “只做一件事,但是要做好” 的理念。同样,Seafile 没有内置额外的类似联系人或者日历聚合的功能。

相反,Seafile 只专注于文件同步、共享及与之相关的事情,仅此而已。但正因为如此,它最终做的非常好。

怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案

使用 Docker 和 NGINX 部署 Seafile 服务器

高级教程

我们的许多教程都是针对初学者的。这篇则不然,它是为那些经常鼓捣 DIY 项目和喜欢自托管的高级用户设计的。这个教程假定你可以熟练的使用命令行,而且你至少对我们将要使用的程序有一定的了解。

虽然整个过程完全可以不使用 NGINX ,但是使用 NGINX 更加容易配置,而且在将来更加容易的自托管更多的服务。

如果你想完全使用 Docker 环境,你也可以 在 Docker 内部设置 NGINX🔗 linuxhandbook.com ,但是它这会使事情变得更加复杂,并且不能够带来太多好处。同样,在本教程里也不会涉及这些。

怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案

安装设置 NGINX

在这个教程中,我会使用 Ubuntu,因此会使用 apt 来安装软件包。如果你使用 Fedora 或者一些其他非 Debian 发行版,请使用你的发行版的 包管理器🔗 itsfoss.com

NGINX🔗 www.nginx.com 既是一个网页浏览器,又是一个代理服务器。它将起到 Seafile 服务器和互联网之间网络连接的作用,同时也使一些任务更容易处理。

要安装 NGINX ,使用以下命令:

  1. sudo apt install nginx

如果你想使用 HTTPS(也就是浏览器中的小挂锁),你需要安装 Certbot🔗 certbot.eff.org

  1. sudo apt install certbot python3-certbot-nginx

下一步,你需要设置 NGINX 来连接我们之后将要设置的 Seafile 实例。

首先,运行以下命令:

  1. sudo nano /etc/nginx/sites-available/seafile.conf

键入下方的文本到文件中:

  1. server {
  2. server_name localhost;
  3. location / {
  4. proxy_pass http://localhost:8080;
  5. proxy_set_header Host $host;
  6. proxy_set_header X-Real-IP $remote_addr;
  7. }
  8. }

重要: 将 server_name 一行的 localhost 替换为你要访问你的服务器的地址(比如 seafile.example.com 或者 192.168.0.0)。不确定要输入什么吗?

◈ 如果你只是为了测试,使用 localhost 。这个设置将 只允许你从你的电脑访问服务器 ,仅此而已。
◈ 如果你想通过你的本地 Wi-Fi 连接使用 Seafile(与你在同一 Wi-Fi 网络上),你应该键入 你的计算机 IP 地址🔗 itsfoss.com。你也可以考虑 设置一个静态 IP 地址🔗 itsfoss.com,尽管这不是必须的。
◈ 如果你有一个公网 IP 地址,你知道它指向你的系统,就使用它。
◈ 如果你有一个域名(比如 example.comexample.org)和公网 IP 地址,更改你的 DNS 设置,将域名指向你的系统的 IP 地址。这也需要将公网 IP 指向你的系统。

现在你需要复制配置文件到 NGINX 的查找目录中,然后重启 NGINX :

  1. sudo ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/seafile.conf
  2. sudo systemctl restart nginx

如果你要安装 Cerbot,你也需要运行以下命令来设置 HTTPS :

  1. sudo certbot

如果要重定向 HTTP 流量 到 HTTPS ,选择 2 。

现在可以来确认我们目前设置的一切都是否正常工作。如果你访问你的站点,你应该看到一个屏幕上写着 502 Bad Gateway 字样。

怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案

怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案

安装 Docker 和 Docker Compose

现在要进入有趣的部分了!

首先,你需要安装 Docker🔗 www.docker.com 和 Docker Compose🔗 docs.docker.com 。Docker Compose 需要利用 docker-compose.yml 文件,这将使管理多个 Docker 容器🔗 www.docker.com 的 Seafile 需求变得更加容易。

Docker 和 Docker Compose 可以用以下的命令来安装:

  1. sudo apt install docker.io docker-compose

检查 Docker 是否安装并运行,运行以下命令:

  1. sudo docker run --rm hello-world

如果你完全安装成功,你应该在终端能看到这几行文字:

怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案

如果你想避免在 docker 命令的开始添加 sudo 的话,你可以运行以下的命令将你自己添加到 docker 组:

  1. sudo groupadd docker
  2. sudo usermod -aG docker $USER

这个教程的其余部分假定你已经运行了以上两个命令。如果你没有运行,在所有 docker 或 docker-compose 的命令都添加 sudo 。

怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案

安装 Seafile 服务器

这部分比之前部分明显容易的多。你所需要做的是输入一些文本到文件,然后运行一些命令。

打开一个终端,然后创建一个 Seafile 服务器用来储存内容的目录,并进入目录中:

  1. mkdir ~/seafile-server && cd ~/seafile-server

怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案

转到你创建的目录然后运行以下命令:

  1. nano docker-compose.yml

下一步,在弹出的窗口中键入以下文本内容:

  1. version: '2.0'
  2. services:
  3. db:
  4. image: mariadb
  5. container_name: seafile-mysql
  6. environment:
  7. - MYSQL_ROOT_PASSWORD=password
  8. - MYSQL_LOG_CONSOLE=true
  9. volumes:
  10. - ./data/mariadb:/var/lib/mysql
  11. networks:
  12. - seafile-net
  13. memcached:
  14. image: memcached
  15. container_name: seafile-memcached
  16. entrypoint: memcached -m 256
  17. networks:
  18. - seafile-net
  19. seafile:
  20. image: seafileltd/seafile-mc
  21. container_name: seafile
  22. ports:
  23. - "8080:80"
  24. volumes:
  25. - ./data/app:/shared
  26. environment:
  27. - DB_HOST=db
  28. - DB_ROOT_PASSWD=password
  29. - TIME_ZONE=Etc/UTC
  30. - SEAFILE_ADMIN_EMAIL=me@example.com
  31. - SEAFILE_ADMIN_PASSWORD=password
  32. - SEAFILE_SERVER_LETSENCRYPT=false
  33. - SEAFILE_SERVER_HOSTNAME=docs.seafile.com
  34. depends_on:
  35. - db
  36. - memcached
  37. networks:
  38. - seafile-net
  39. networks:
  40. seafile-net:

在保存文件之前,一些参数需要更改:

◈ MYSQL_ROOT_PASSWORD:更换强壮的密码,你不必记住它,所以不要尝试挑选简单的密码。如果你需要帮助生成一个,请使用 密码生成器🔗 itsfoss.com 。我建议使用 20 位字符长度并且避免使用任何的特殊字符(!@#$%^&* 等符号)。
◈ DB_ROOT_PASSWD:更改你为 MYSQL_ROOT_PASSWORD 设置的值 。
◈ SEAFILE_ADMIN_EMAIL:设置管理员帐户的电子邮件地址。
◈ SEAFILE_ADMIN_PASSWORD:设置管理员帐户密码。避免与MYSQL_ROOT_PASSWORD 或者 DB_ROOT_PASSWD 密码相同。
◈ SEAFILE_SERVER_HOSTNAME:在 NGINX 配置中设置 Seafile 的服务器主机名。

完成之后,你可以运行 docker-compose 整个运行起来:

  1. docker-compose up -d

可能需要花一到两分钟,取决于你的网速,因为需要拉下几个 Seafile 需要运行的几个容器。

完成以后,还需要几分钟来完成。你也可以通过以下命令来检查运行状态:

  1. docker logs seafile

当完成了,你将会看到如下输出:

怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案

下一步,你只需要在你的浏览器里键入你设置的 SEAFILE_SERVER_HOSTNAME 的地址,然后你应该看到登录屏幕的页面。

怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案

就这样!现在一切功能齐全,准备用客户端来使用。

怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案

安装 Seafile 客户端

Seafile 移动客户端在 Google Play🔗 play.google.comF-Droid🔗 f-droid.org 和 苹果商店🔗 itunes.apple.com 都是可用的。Seafile 也有 Linux、Windows 和 Mac 桌面客户端可用,可在 此处🔗 www.seafile.com 找到。

通过 seafile-gui 软件包,可以在 Ubuntu 系统轻松获得 Seafile :

  1. sudo apt install seafile-gui

通过 seafile-client 软件包 Seafile 也包含在 Arch 用户的 AUR 包管理器中。

怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案

结语

请尽情探索客户端及其所能提供的一切。我将在未来的一篇文章中详细阐述 Seafile 客户端的所有功能。(敬请期待 😃)

总的来说,如果有什么错误,或者你有什么问题,请在下方评论 – 我会尽我所能回应。


via: https://itsfoss.com/deploy-seafile-server-docker/

作者:Hunter Wittenborn 选题:lujun9972 译者:hwlife 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。


原文始发于微信公众号(Linux中国):怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案 | Linux 中国

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月13日22:19:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案http://cn-sec.com/archives/907613.html

发表评论

匿名网友 填写信息