继续和大家分享围绕NAS打造数据管理中心的教程,本文分享的是漫画管理中心搭建教程,包含手机端通过OSPD外网访问方法。
项目支持X86和ARM(64位)架构,所有在售威联通型号只要内存达标均可部署,当然实际总内存小于2G的设备不建议部署,可能会引发OOM。
下文包含容器本体部署、后续一键更新容器、外网配置和手机OPDS客户端(calibre通用)访问,共计四个部分,觉得有用欢迎点赞收藏关注三联。
LANraragi作为开源漫画管理器,项目开发者为Difegue,支持zip / rar / targz / lzma / 7z / xz / cbz / cbr / pdf多种格式,项目地址:
https://hub.docker.com/r/difegue/lanraragi
本文使用的是B站UP浅笑一夏的汉化版本,前两天刚更新了一版,项目同样开源可查,如果可以的话帮忙给作者点波关注,项目地址:
https://hub.docker.com/r/dezhao/lanraragi_cn
放一下本次搭建使用的测试平台。
1?? 威联通(QNAP)TS-462C
关键词:X86、2.5G网口、四盘位、HTPC模式
https://item.jd.com/100030253868.html
这次教程采用了威联通TS-462C NAS进行搭建,虽然目前很多旗舰NAS已经用上了N5095或者N5015这类JasperLake平台,但价格都比较高,如果你平时折腾虚拟机不多,那么选择同为JasperLake平台的N4505处理器的TS-462C也是不错的选择。它拥有4个大盘位,支持最高20TB单硬盘容量,Intel赛扬最新处理器性能强劲,而且还支持2.5G网口以及HDMI2.0接口。
TS-462C使用的N4505为双核处理器,2.9GHz的主频能满足正常家用需求,与N5105采用同系列核显,但是只有16eU,N5105的集显是24eU,性能对于家用而言,相差不大,可以轻松硬解以及转码高码率4K视频,内置的双SO-DIMM内存槽最高支持到32G扩展,合理分配CPU玩玩Docker挺轻松。
2?? 威联通(QNAP)TS-416
关键词:ARM天花板、四盘位、性价比
简介:TS-416使用目前最主流的顶级ARM平台瑞芯微RK3568,同时板载了4G内存(不支持后加或更换)和双千兆网口,非常适合轻量折腾玩家。
TS-416的造型同样为威联通经典的四盘位设计,外观方案几乎没有改变,除了轻松硬解高码率4K以外,威联通实验室还把NPU用在AI相片处理上,配合所有NAS中图片处理最强的软件QuMagie,只玩影音和少量Docker的玩家真的可以入手这款。
3?? 希捷(Seagate)酷狼 机械硬盘
关键词:NAS专用盘、免费数据救援
本次搭建还使用了4块4TB的希捷酷狼NAS硬盘,组建了RAID5阵列,可以充分保证数据安全。值得一提的是,希捷酷狼全系硬盘均采用 CMR技术,使用的AgileArray 技术对NAS有特殊加成,主要在硬盘电源管理和多盘位环境中的硬盘双面平衡和RAID优化。
另外威联通对酷狼有单独的健康管理内置软件,可以有效实现预防、干预和恢复功能,另外内置的旋转振动传感器也有缓震作用, 还送一次免费原厂数据救援服务,值得购买。
4?? 蒲公英(Oray)X1/X3A 路由器
关键词:SD-WAN组网、傻瓜配置
简介:解决没有公网IPv4或者IPv6远程访问问题的路由器,系统预制了SD-WAN程序,下联的所有设备皆自动加入组网且不占用名额,活动价正常八九十块钱,是NAS的好搭档。
如果不好走线或者需要无线中继,也可以选择X1旁路由做无线桥接连接NAS组网,需要注意的是这款是旁路由,只支持一台下联设备,有需求还是选择X3A。
5?? 红米 K50Ultra
关键词:不热、超长待机、水桶机
简介:最近入手了这款几乎毫无短板的水桶机,实测运行温度相比之前的火龙888要强很多,重点是待机时间超长,不开省电模式常规使用可以一天一冲,唯一缺点就是屏幕了,偶尔会降帧数,问题不大。
下文中的一键更新需要容器名称匹配,所以请注意这一段的操作。
1?? 创建文件夹
先创建容器的挂载路径,在Container文件夹下创建一个名为lanraragi的子文件夹。
再创建两个子文件夹,名称和对应的作用分别是:
content,用于存放漫画文件。
database,用于存放数据库配置。
2?? 部署容器
进入ContainerStation,点击创建,搜索lanraragi,找到dezhao/lanraragi_cn,点击安装。
标签用默认的latest即可。
跳转配置页面后,先将容器名称修改为lanraragi_cn,切记不要错了,确认无误后点击高级设置。
第一步点击网络,新增一组端口转发关系:
本地端口填写3000,Container端口填写3000
第二步点击共享文件夹,创建两组文件夹挂载关系:
共享文件夹选择刚才新建的content文件夹,挂载路径填写/root/lanraragi/content
共享文件夹选择刚才新建的database文件夹,挂载路径填写/root/lanraragi/database
全部确认无误后,点击创建容器,具体部署所需时间根据网络质量和带宽决定。
在总览里面能看到LANraragi这个容器在运行,表示部署成功。
3?? 访问后台
首先需要知道这台NAS的IP,进入网络与虚拟交换机,下图圈出来的就是内网IP地址。
浏览器打开新的标签页,输入:
NAS的IP:3000
左上角会提示登录和修改密码,默认密码是:
kamimamita
登录后点击设置,先修改下一个好记的密码,配置好后点击保存设置。
在设置页面也可以修改页面显示信息和主题,按需修改。
如果想回到首页,点击返回资料库,所有入口返回首页都是这么操作。
4?? 上传管理
安利个ACG的分享网站,资源多更新快:
http://www.animetox.com/
点击中上方位置的上传档案,点击从您的计算机添加,选中想上传的文件,期间尽量保持网络稳定。
友情提示:一般直接将压缩包上传即可,如果有密码请解压后重新压缩,再进行上传操作,建议使用zip格式,rar可能有问题。
上传完毕后LANraragi会自动生成封面,如果卷比较多会比较慢,不要急。
如果漫画比较多,可以点击顶部的修改分类自行创建不同类别。
作者自己也说了,lanraragi还是有些问题,后续会更新解决,这里和大家分享下后续一键更新容器的方法。
1?? 配置SSH
进入控制台的网络和文件服务,点击Telnet/SSH勾选允许SSH连接,端口号建议改成你能记得的四位数。
用SSH工具登录这台NAS,推荐使用FinalShell:
http://www.hostbuf.com/t/988.html
2?? 部署容器
首次打开FinalShell需要创建访问配置,按下图依次选择SSH(Linux连接)。
接着按下图填写相关信息,确认无误后保存:
双击登录刚创建的NAS登录配置开始登录NAS,按照提示输入:
Q
回车
输入:
Y
回车
进入常规Shell后su登录,输入:
sudo -i
回车
Q
回车
Y
回车
将下面代码复制到输入框,回车执行:
docker run
-v /var/run/docker.sock:/var/run/docker.sock
containrrr/watchtower
--run-once lanraragi_cn
等执行完成后,即可更新到最新版本,执行日志也会在页面中显示。
如果以后需要更新,不再需要重新部署或者SSH操作,进ContainerStation找到watchtower程序手动执行一次即可,不建议一直运行。
如果你的宽带有IPv4协议的公网IP,先进入路由器后台开启UPnP功能,这一步是为了完成端口转发链路:
容器端口→NAS端口→宽带拿到的公网IP端口
之后进入myQNAPCloud,配置下威联通附赠的DDNS服务,外网访问的时候用网页域名+8083端口号即可看书。
如果没有IPv4协议的公网IP,可以选择通过部署Zerotier或者蒲公英容器做SD-WAN组网访问,当然直接买蒲公英X1或者X3A路由器也是可以的。
作者推荐了三款联动软件(PC端、iphone和安卓),点击lanraragi后台首页的日志即可跳转下载。
个人推荐手机使用静读天下App,支持OSPD比较方便一些,不受源文件格式困扰,之前分享的电子书管理器Calibre同样可以用这款App阅读,各大安卓应用市场搜索下载安装即可。
下载完成后点击设置,进入网上书库配置。
跳转后点击左上角的增加新书库。
弹出的页面填写威联通lanraragi的相关信息:
名称随便填写,最好是你能记得住的名字。
书库地址填写NAS的ip/域名加上端口号,和网页访问没有区别。
保存完成后点击书库地址即可浏览,个人感觉流畅度比浅笑一夏推荐的archive要好一点,大家可以都安装试试,根据自己喜好选择。
术变革的步伐往往会最大限度地简化探索进程,软件开发也是如此。在容器中运行软件最近非常受企业青睐,主要原因之一是当代码在一个环境中开发时,如果部署在另一个环境中,代码可能不会运行相同的代码。这会导致错误,而且需要时间来修复。在这个快速迭代和发布的时代,没有人能负担得起类似的错误和成本。因此,像Docker和Kubernetes这样的容器化生态系统越来越受欢迎。2018年容器采用基准调查显示,近一半(47%)的受访IT领导者计划在生产中部署容器,另有12%的人表示已经部署了。
容器的优缺点
通过改变软件交付的方式,容器使开发人员的生活更加轻松。 它们具有很广阔的前景,特别是在提高混合基础架构的开发效率方面。容器通常是作为连贯系统一起运行的软件和环境的集合。 开发人员以容器图像的形式制作这些系统,测试它们并确保它们是可接受的。 然后,开发人员将它们部署到大型环境中,在这种环境中,容器平台从映像中实例化相同的副本,确保它在同一个地方运行的软件相同。之所以需要容器化,是因为它支持相同软件的可重复部署。
由于它们不包含操作系统映像,因此容器比硬件或传统虚拟机(VM)环境耗费更少的系统资源。开发人员使用VM可能需要购买更多硬件,因为他们会更快地达到容量上限。虽然工作负载当然可以放在VM中,但使用容器是一种非常好的方法,因为随着云计算从简单到复杂的分布式体系结构的转变,它会更受欢迎。
容器使软件交付更简单,更可预测,因为它们提供了一致的部署环境,可以在交付管道的所有阶段使用。在容器中运行的应用程序可以轻松部署到多个不同的容器平台和云提供商。 无论您是在构建软件、测试软件还是在生产中部署软件,都可以使用相同的环境来托管软件。 容器还可以帮助企业实现遗留应用程序的现代化,并创建既可扩展又灵活的新的云原生应用程序。
容器非常有用,但也有其局限性。例如,它们确实消除了关于开发环境和生产环境之间的差异将如何影响应用程序的一些顾虑。但是容器并不能完全避免困扰传统软件开发的bug和错误问题。缺陷、中断和安全事件仍然发生,事实证明,测试工具并不能100%地发现问题。
根据Snyk最近的一份报告,在最受欢迎的10张Docker图片中,每张至少有30个漏洞。最重要的是,如果您使用应用程序的旧版本安装容器,那么它很可能包含漏洞。这意味着企业仍然面临潜在的系统中断和停机风险,这些可能会造成重大的经济和声誉影响。
2018年Ponemon Institute的数据违规成本研究发现,一小时的中断可能会使一家小公司损失8000美元,一家中型公司损失74000美元,大型企业大约需要70万美元。在IT中使用混合匹配软件维护一致的服务一直是一个挑战,而这就是容器解决的问题。但问题是,如果有人创建了针对一个容器的漏洞,那么将会有相同的软件在任何地方运行,并且它将对所有容器起作用。
避免陷阱
开发人员需要在测试方面采用新方法,以帮助抵御这些潜在问题,而不仅仅是将应用程序放在容器中。质量保证(QA)团队需要确保他们在生产中可能遇到的所有情况下测试容器化应用程序。这是因为容器的行为可能因系统硬件到意外的网络流量而变化。通过在生产中进行测试,可以在bug出现之前检测到错误,并在威胁产生影响之前将其隔离。
容器使用需谨慎
容器为开发人员处理与多个环境相关的问题提供了非常好的解决方案,它们使软件开发和测试更加容易。然而,容器依然有缺点,因此它们需要小心处理。bug和错误仍然有可能发生,一个容器中的漏洞意味着所有容器中的漏洞。容器作用虽然强大,但是需要您谨慎使用它们!
原文网址:https://jaxenter.com/containers-need-know-160733.html
家可能都在用Wordpress写博客,之前都都是买个VPS部署一个一键L/WAMP程序完成整个部署,部署可能也容易但是操作比较费劲。前两天虫虫的博客VPS出问题导致数据丢失,需要重新部署,在这次部署中为了追求完美使用了docker容器方式并对网站升级使用全站HTTPS的方式进行部署,站点支持TLS 1.3协议以最大程度提高性能,本文虫虫就给大家介绍整个部署的全过程供大家参考优化。
站点采用Docker方式部署,使用两个容器一个是mysql 5.7数据库容器,一个是apache(2.4.25)、php(7.3.6),Wordpress(5.2.2)容器,容器部件都是最新版本。为了安全连个容器都映射到宿主机127.0.0.1端口不直接对外提供服务。宿主机上部署nginx最新版本1.17反向代理到容器,nginx对外提供https服务:使用TLS 1.3协议,证书是从Let's Encrypt申请免费SSL,可以一键申请证书并且免费3个月更新。整个架构结构如下:
基础VPS环境是centos 7.2,默认是vi我们先将它换成vim
yum install vim
初始化VPS数据盘,注意该盘为外挂的盘VPS变化重新初始化时候数据不会丢失,一般为sdb,比如虫虫的盘,60G
创建分区并格式化
fdisk /dev/sdb mkfs.ext4 /dev/sdb1
挂载,挂载目录我们设为/data
mkdir /data mount /dev/sdb1 /data
修改/etc/fstab实现重启自动挂载:
通过dumpe2fs或者blkid查看磁盘UUID
d179868b-6fb9-414c-8901-b990f7c586bd
echo 'UUID="d179868b-6fb9-414c-8901-b990f7c586bd" /data ext4 defaults 0 0' >>/etc/fstab
mount –a测试fstab配置,如果没提示表示正确,如果有错误会显示,比如我们给UUID前面加个1,测试信息如下:
系统其默认的防火墙firewalld,先将其修改为比较熟悉称手的iptables:
yum install iptables iptables-services systemctl disable firewalld systemctl stop firewalld systemctl enable iptables systemctl start iptables
selinux配置太复杂,我们先暂时关闭(在正式生产环境不建议该操作):
setenforce 0
为了一直关闭,需要修改其配置文件,这样重启后就不会再加载。方法
perl -i -lpe 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
为了VPS已经修改掉系统默认的ssh 22端口,并且禁止root登陆,方法修改/etc/ssh/sshd_config,查找Port去掉其前面的注释#号,并把22修改为其他端口,比如12322:
Port 12322
增加一行" PermitRootLogin no"禁止root登陆:
事先添加证书登陆,然后禁止密码登录方式"PasswordAuthentication no":
防火墙开启新sshd端口,并删掉22端口
iptables -I INPUT -p tcp -m state --state NEW -m tcp -dport 12322 -j ACCEPT
重启sshd服务
systemctl restart sshd.service
用新端口证书方式访问服务器,如果没有问题:
删掉22端口
iptables -D INPUT -p tcp -m state --state NEW -m tcp -dport 22 -j ACCEPT
保存防火墙规则
systemctl save sshd.service
yum install epel-release yum install -y yum-utils
yum install docker-ce docker-compose systemctl enable docker systemctl start docker
启用docker过程中报了一个错误"SELinux is not supported with the overlay2 graph drive...false",原因是linux的内核中的SELinux不支持 overlay2 graph drive,解决方法,修改docker配置文件/etc/sysconfig/docker修改--selinux-enabled为--selinux-enabled=false
还有一个典型错误如下:
fatal msg="Error starting daemon: error initializing graphdriver: "/var/lib/docker" contains several valid graphdrivers: devicemapper, overlay; Please cleanup or explicitly choose storage driver (-s )"
是由于docker初始化数据有问题导致,只需清理/var/lib/docker/目录下文件
"rm -rf /var/lib/docker/",然后重启就OK了
docker pull wordpress docker pull mysql:5.7.25
systemctl stop docker.service mv /var/lib/docker /data/docker
vim /usr/lib/systemd/system/docker.service 查找ExecStart给其参数增加:
"--graph /data/docker":
重新加载配置文件
systemctl daemon-reload
重启docker服务
systemctl restart docker.service
创建应用数据目录
首先是数据库mysql目录:
mkdir -p /data/web/data chown -R 999:999 /data/web/data
网站目录:
mkdir /data/web/webapps chown -R 33:33 /data/web/webapps
启动应用容器
mysql容器:
docker run --name mysql -h mysql \ --restart=always \ -e MYSQL_ROOT_PASSWORD=wp12345 \ -p 127.0.0.1:13306:3306 \ -v /data/web/data:/var/lib/mysql \ -d mysql:5.7.25
注意上面加重的参数表示mysql的root初始化密码,需要根据实际修改。
wordpress应用容器
docker run -h wordpress --name wordpress \ --restart=always \ --link mysql:mysql \ -p 2880:80 \ -v /data/web/webapps:/var/www/html \ -d wordpress
注意上面黑体表示连接到mysql容器,注意两个服务启动顺序,现有mysql,wordpress放弃才能连接到这个数据库,在宿主机上映射的端口为2880。
以上两个个容器启动后,wordpress部署就完全完成,现在通过浏览器访问
http://ip:2880就可以访问到wordpress安装界面了。
就可以通过web安装wordpress和配置了。
有可能报错数据库连接错误:
提示信息表示数据库服务没有创建wordpress数据库,这时候需要连接到mysql容器:
docker exec -it mysql /bin/bash
在容器中执行mysql -uroot -p 输入上面我们设置mysql密码,wp12345
在mysql命令行创建一个数据库wordpress
create database wordpress;
然后再访问就可以了
注意该处保存好系统给你设置的密码,或者修改为自己的密码。
进过以上步骤,一个全新版本的wordpress服务就可以:
安装好后需要迁移历史数据,最主要是两部分数据:数据库数据和上传的文件数据。
这部分迁移很简单把以前保存的目录中的wp-content下的uploads目录复制过来所有上传数据就ok了。
数据库迁移,如果wordpress版本相同,可以直接把以前保存的数据文件导入到新数据库就可以。如果版本不同需要注意版本差异,否则会导致错误,可以只导入wp-post和wp-comments这两个表的数据。
通过wordpress导入导出功能:
如果你以前通过wordpress的导出插件导出过历史数据,就可以利用它导入所有数据信心,结合uploads目录导入文件就可以完美恢复历史数据。具体方法:
点击"工具"-"导入":
在该页面点击WordPress下的现在安装,先安装该插件。安装后点击"插件":
点击"启用"。
然后再返回"工具"-"导入":
点击"运行导入器"。
弹出页面选择以前保存的xml文件,然后点击"上传并导入"按钮,
选择好需要迁移的用户,点解"Submit"按钮。
根据保存文件大小,该步骤需要比较长的时间。最后会显示如下页面,表示导入过程已经完成:
文章页面:
迁移目前遇到问题有些插件不好使用,最主要是代码高亮插件"Crayon Syntax Highlighter"在最新版本中不能用了,启用该插件后,前台不能显示文章列表和内容,目前还未知道解决方案,暂时安装了另一个代码高亮插件"Enlighter"来代替。
本文我们使用部署中docker容器方式重新部署和迁移了Wordpress站点,涉及了VPS基础设置、docker容器环境和安装、应用容器的安装和Wordpress历史数据的迁移。限于篇幅我们总体文章分两篇来介绍,本文第二篇将介绍nginx编译安装支持TLS 1.3,站点https设置和wordpress https化存在的问额和解决。
*请认真填写需求信息,我们会在24小时内与您取得联系。