邳州信息网

标题: 怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案 [打印本页]

作者: 3AAA    时间: 2022-5-14 08:08
标题: 怎样用 Docker 部署 Seafile 服务器来托管你自己的文件同步和共享解决方案


首先,什么是 Seafile ?

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

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

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

使用 Docker 和 NGINX 部署 Seafile 服务器


高级教程

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

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

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

安装设置 NGINX


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

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

要安装 NGINX ,使用以下命令:
sudo apt install nginx
如果你想使用 HTTPS(也就是浏览器中的小挂锁),你需要安装 Certbot:
sudo apt install certbot python3-certbot-nginx
下一步,你需要设置 NGINX 来连接我们之后将要设置的 Seafile 实例。

首先,运行以下命令:
sudo nano /etc/nginx/sites-available/seafile.conf
键入下方的文本到文件中:
server {  server_name localhost;  location / {    proxy_pass http://localhost:8080;    proxy_set_header Host $host;    proxy_set_header X-Real-IP $remote_addr;  }}
重要: 将server_name一行的localhost替换为你要访问你的服务器的地址(比如seafile.example.com或者192.168.0.0)。不确定要输入什么吗?

现在你需要复制配置文件到 NGINX 的查找目录中,然后重启 NGINX :
sudo ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/seafile.confsudo systemctl restart nginx
如果你要安装 Cerbot,你也需要运行以下命令来设置 HTTPS :
sudo certbot
如果要重定向 HTTP 流量 到 HTTPS ,选择 2。

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



安装 Docker 和 Docker Compose


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

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

Docker 和 Docker Compose 可以用以下的命令来安装:
sudo apt install docker.io docker-compose
检查 Docker 是否安装并运行,运行以下命令:
sudo docker run --rm hello-world
如果你完全安装成功,你应该在终端能看到这几行文字:



如果你想避免在 docker命令的开始添加sudo的话,你可以运行以下的命令将你自己添加到docker组:
sudo groupadd dockersudo usermod -aG docker $USER
这个教程的其余部分假定你已经运行了以上两个命令。如果你没有运行,在所有 docker或docker-compose的命令都添加sudo。

安装 Seafile 服务器


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

打开一个终端,然后创建一个 Seafile 服务器用来储存内容的目录,并进入目录中:
mkdir ~/seafile-server && cd ~/seafile-server


转到你创建的目录然后运行以下命令:
nano docker-compose.yml
下一步,在弹出的窗口中键入以下文本内容:
version: '2.0'services:  db:    image: mariadb    container_name: seafile-mysql    environment:      - MYSQL_ROOT_PASSWORD=password      - MYSQL_LOG_CONSOLE=true    volumes:      - ./data/mariadb:/var/lib/mysql    networks:      - seafile-net  memcached:    image: memcached    container_name: seafile-memcached    entrypoint: memcached -m 256    networks:      - seafile-net            seafile:    image: seafileltd/seafile-mc    container_name: seafile    ports:      - "8080:80"    volumes:      - ./data/app:/shared    environment:      - DB_HOST=db      - DB_ROOT_PASSWD=password      - TIME_ZONE=Etc/UTC      - SEAFILE_ADMIN_EMAIL=me@example.com      - SEAFILE_ADMIN_PASSWORD=password      - SEAFILE_SERVER_LETSENCRYPT=false      - SEAFILE_SERVER_HOSTNAME=docs.seafile.com    depends_on:      - db      - memcached    networks:      - seafile-netnetworks:  seafile-net:
在保存文件之前,一些参数需要更改:

完成之后,你可以运行 docker-compose整个运行起来:
docker-compose up -d
可能需要花一到两分钟,取决于你的网速,因为需要拉下几个 Seafile 需要运行的几个容器。

完成以后,还需要几分钟来完成。你也可以通过以下命令来检查运行状态:
docker logs seafile
当完成了,你将会看到如下输出:



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



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

安装 Seafile 客户端


Seafile 移动客户端在 Google Play、F-Droid和苹果商店都是可用的。Seafile 也有 Linux、Windows 和 Mac 桌面客户端可用,可在此处找到。

通过 seafile-gui软件包,可以在 Ubuntu 系统轻松获得 Seafile :
sudo apt install seafile-gui
通过 seafile-client软件包 Seafile 也包含在 Arch 用户的 AUR 包管理器中。

结语


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

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

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

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

本文由 LCTT原创编译,Linux中国荣誉推出
作者: 寿雪登    时间: 2022-5-14 08:09
文件同步seafile
作者: 翠玉绿茶    时间: 2022-5-14 08:11
转发了
作者: 我爱马天宇啊    时间: 2022-5-14 08:12
转发了
作者: jjiangxh2012    时间: 2022-5-14 08:13
转发了
作者: 沈老师2017    时间: 2022-5-14 08:14
转发了
作者: Doris__5    时间: 2022-5-14 08:15
转发了
作者: 沈老师2017    时间: 2022-5-14 08:16
转发了




欢迎光临 邳州信息网 (https://www.pzxxw.com/) Powered by Discuz! X3.4