疫情期间被封闭在家,唯有动手玩弄轻量服务器给我带来快感。Seafile搭建私人网盘并使用K8s集群进行部署是一项非常不错的消磨时间的好选择。
我是选择使用两台Ubuntu一起搭建这个服务的。但是如果只有一台也不是不行。
首先是容器的搭建,docker官网有给docker快速搭建脚本。seafile也有相应的容器镜像我们直接拉取下来。拉去下来之后我们为了保证集群的机子的数据相同与持久化我们肯定要去找数据存储的位置。我们直接开个container里面找一下
mysql;
show variables like"datadir";
直接获取数据库文件保存的路径。那就好办了,一会在k8s中设置数据卷就可以了。
seafile网怕我粗略的扫过使用django的框架写的,注册账号调用的也是django的create superuser。既然这样读者们想怎么玩这个账号就直接请便,毕竟已经知道框架,换句话说知道存哪个数据库里面,我们去改账号也会很方便把。
至于k8s集群使用kubeadm搭建的步骤直接点击看我这篇就好了。
接下来就是docker与集群的部署了。我们需要部署的最主要要注意的两个东西:开放的端口, 数据卷。
Seafile网盘的web界面向外开放的端口是8000, 服务器功能开放的端口是8082这是很多教程都都有提到的。但是很多教程都没有说过Seafile的文件传输还依赖于80端口。这个地方你在管理员的设置界面需要设置,或者是在opt/seafile目录下面的seahub-db/constance_config, 进行80端口的设置才能保证数据传输的正常。
至于数据卷,我们在yaml编写的时候指定一个节点进行数据同步即可,docker内部同步的路径就是我们刚刚mysql语句的结果,也就是/var/lib/mysql/文件夹整个数据卷备份即可。但是这种方法也可以用下面的方法替代。
当然,我们还可以直接把数据库远程连接到我们的数据库上,毕竟是django的产物应该有settings.py有配置数据库相关的配置。我们查找后就能找到 /opt/seafile/seafile-server-6.3.4/seahub/seahub/settings.py 文件就是一个django settings, 在其中配置我们连接的数据库
DATABASES = { # 这里是原配置,我们可以随心所以配置我们自己的mysql等等 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'USER': '', 'PASSWORD': '', 'HOST': '', 'PORT': '', } }
然后用上级目录的manage.py 进行库迁移上也没毛病。这样我们甚至可以自定义数据库了。
cd .. python manage.py makemigrations python migrate
综上你就会拥有一个数据持久化集群搭建的自定义数据库的私有网盘,哎呦,不错哦~~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。