如何使用Docker部署Seafile Server实习文件同步和文件共享


原文地址:如何使用Docker部署Seafile Server实习文件同步和文件共享

Seafile是一种自托管文件同步程序,可与服务器-客户端模型一起使用。本篇文章分享了如何使用Docker部署SeaFile Server以实现文件同步和文件共享。

首先,什么是Seafile?

Seafile是一种自托管文件同步程序,可与服务器-客户端模型一起使用,因为您的笔记本电脑和电话等几台设备都连接到中央服务器。

与诸如Nextcloud或ownCloud之类的一些更流行的替代方法不同,Seafile尝试遵循“只做一件事,但要做好”的理念。同样,Seafile也没有内置其他功能,例如“联系人”或“日历”集成。

相反,Seafile仅专注于文件同步,共享及其周围的事物,仅此而已。结果,它最终表现得非常出色。

使用Docker和NGINX部署Seafile Server

虽然可以完全不使用NGINX来完成整个过程,但是使用NGINX可以简化设置,并且将来可以更轻松地自托管更多服务。

如果你想使用完整的Docker设置,你也可以在Docker内部设置NGINX,但这只会让事情变得更复杂,而且不会带来太多好处,同样,本教程也会涉及到NGINX。

安装和设置NGINX

我将在本教程中使用Ubuntu,因此将使用apt安装软件包。如果您使用Fedora或其他非Debian发行版,请使用发行版的软件包管理器

Nginx和Web服务器一样,被称为代理。它将充当Seafile服务器和Internet之间的连接,同时还使一些任务更易于处理。

要安装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.com192.168.0.0)。不知道要放什么?

  • 如果仅出于测试目的而使用,请使用localhost。此设置仅允许您从计算机访问服务器,仅此而已。
  • 如果要通过本地WiFi连接(与您位于同一WiFi网络上的任何设备)使用Seafile,则应输入计算机的IP地址。您可能还想研究设置静态IP地址,尽管这不是必需的。
  • 如果您拥有指向系统的公共IP地址,请使用该地址。
  • 如果您具有系统的域名(例如example.comexample.org公共IP地址,请更改DNS设置以将域名指向系统的IP地址。这也将需要公共IP地址指向您的系统。

现在您需要将配置文件复制到NGINX查找文件的目录,然后重新启动NGINX:

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

如果设置Certbot,则还需要运行以下命令来设置HTTPS:

sudo certbot

如果要求将HTTP通信重定向到HTTPS,请选择2

现在是确保我们到目前为止设置的所有程序都可以正常工作的好时机。如果您访问自己的网站,则应该看到一个屏幕,上面显示502 Bad Gateway

如何使用Docker部署Seafile Server实习文件同步和文件共享

安装Docker和Docker Compose

现在进入有趣的东西!

首先,您需要安装DockerDocker Compose。需要使用Docker Compose来利用docker-compose.yml文件,这将使管理Seafile所需的各种Docker容器变得更加容易。

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

sudo apt install docker.io docker-compose

要检查Docker是否已安装并正在运行,请运行以下命令:

sudo docker run --rm hello-world

如果成功完成,您应该在终端中看到类似的内容:

如何使用Docker部署Seafile Server实习文件同步和文件共享

如果要避免添加sudodocker命令的开头,则可以运行以下命令以将自己添加到该docker组:

sudo groupadd docker
sudo usermod -aG docker $USER

本教程的其余部分假定您运行了以上两个命令。如果没有,请添加sudo到以docker或开头的所有命令docker-compose

安装Seafile服务器

这部分比之前的部分要容易得多。您需要做的就是将一些文本放入文件中并运行一些命令。

打开一个终端。然后创建一个目录,您要在其中存储Seafile服务器的内容并输入该目录:

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

如何使用Docker部署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-net

networks:
  seafile-net:

在保存文件之前,需要进行一些更改:

  • MYSQL_ROOT_PASSWORD:更改为一个更强的密码,你也不需要记住这一点,所以不要尝试挑不出什么容易。如果您需要帮助,请使用密码生成器。我建议长度为20个字符,并避免使用任何特殊字符(所有!@ #$%^&*符号)。
  • DB_ROOT_PASSWD:更改为您为MYSQL_ROOT_PASSWORD设置的值。
  • SEAFILE_ADMIN_EMAIL:设置管理员帐户的电子邮件地址。
  • SEAFILE_ADMIN_PASSWORD:设置管理员帐户的密码。避免使它与MYSQL_ROOT_PASSWORDDB_ROOT_PASSWD相同。
  • SEAFILE_SERVER_HOSTNAME:设置为您在NGINX配置中设置的地址。

完成后,您可以使用以下命令显示整个内容docker-compose

docker-compose up -d

取决于您的Internet连接,可能需要一两分钟,因为它必须拉下Seafile需要运行的多个容器。

完成后,请再花几分钟完成它。您还可以通过运行以下命令检查其状态:

docker logs seafile

完成后,您将看到以下输出:

如何使用Docker部署Seafile Server实习文件同步和文件共享

接下来,只需在浏览器中输入您为SEAFILE_SERVER_HOSTNAME设置的地址,就应该在登录屏幕上。

如何使用Docker部署Seafile Server实习文件同步和文件共享

然后你走了!现在一切都已完全正常运行,可以与客户一起使用了。

安装Seafile客户端

移动设备上的Seafile可在Google PlayF-DroidiOS App Store上找到。Seafile还具有适用于Linux,Windows和Mac的桌面客户端,可在此处获得

通过以下seafile-gui软件包,可以在Ubuntu系统上轻松使用Seafile :

sudo apt install seafile-gui

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

结论:以上就是关于如何在Docker上部署Seafile Server以实现文件同步和共享的全部教程。

评论

登录后评论

服务器优惠活动

Top