1.图床选择
最近因为家里人有使用图床的需求,又担心第三方图床跑路导致数据丢失,恰好家里有个威联通NAS,还有公网IP和域名,既然如此,那就动手自建一个图床吧,毕竟开源的图床应用还是有很多的。
一上来就在好几个开源图床间纠结,最终在 https://hostloc.com/thread-988538-1-1.html 找到一个网友投票,那就从众吧,选择了兰空图床。
2.创建图床容器
首先我们在威联通中使用FileStation创建一个文件夹用于存放图床的文件内容。
然后去docker hub社区搜索兰空图床镜像。
找到下载和收藏量最高的镜像,这里大家可以直接拷贝镜像名:halcyonazure/lsky-pro-docker,然后打开威联通上的容器工作站,创建一个容器,填写镜像名,然后点击下一步。
在“配置容器”选项页中,先配置一个映射端口,用于我们后续通过Ip和端口访问图床后台页面,只要端口不与其他应用冲突就行。
先别点击下一步,点击左下角的“高级设置”,我们设置下映射目录。
选择左侧的“存储”,如下图所示选择“绑定装载主机路径”选项。
“主机”路径选择我们一开始在威联通主机上创建的存储文件夹,“容器”路径填写为:/var/www/html,这样做的目的是为了避免容器损坏或重建时图片数据丢失。
上述配置完成后,我们点击完成,开始容器创建流程。
稍等一小下,如下图所示,容器创建完成。
3.初始化设置
我们可以使用http://IP:端口的形式访问兰空图床页面,第一次访问会打开安装设置页面。
选择数据库为sqllite,设置管理员账号的邮箱和登录密码。信息设置完成后,点击“立即安装”。
如下图所示,初始化安装成功。
接下来我们再通过IP:端口的方式进行访问,会打开图片上传页面,我们点击右上角的“登录”选项,使用上面填写的邮箱账号和密码登录后台,进行一系列设置。
登录成功后,界面如下所示,有很多管理员设置选项。
系统设置里可以修改一系列限制、注册、空间大小等,如果是私人使用,那就关闭注册和游客上传吧。
4.设置公网访问
试着上传一张图片,可以得到图片链接,在浏览器访问这个链接就可以看到上传的图片啦。不过这里得到的是内网地址,通过公网是无法访问的,接下来我们使用Nginx Proxy Manager(下文简称NPM)进行反向代理,实现公网访问。
我们在NPM中新增域名代理,在Details中设置内网地址和端口。
设置SSL访问和证书。
还要一步也很重要,在Advanced选项中配置自定义规则,缺少这些配置,会导致页面无法正常显示。
代码如下所示,记得修改IP和端口。
location / {
# We set up the reverse proxy
proxy_pass http://内网IP:端口;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect http:// $scheme://;
proxy_set_header Host $http_host;
}
接下来去DDNS-GO设置DDNS上报,将我们的域名和IP地址的映射关系上报给域名服务器。上报成功后,会在DNS服务器增加一条规则,后面就可以直接使用域名访问了。
如果一切顺利的话,就可以通过域名进行访问啦,因为我关闭了游客上传,所以在没有登录的情况下访问会默认进入登录页,页面如下图所示。
如果缺少上面说的NPM自定义规则,访问页面会展示异常,缺少样式文件,如下图所示的异常状态。
登录成功后,记得去图床中修改访问网址,改为域名访问,这样上传图片后得到的图片链接就是带域名格式的链接,可以直接在公网访问。
将之前的内网IP地址改为你的域名地址。
还有一点,如果你想对上传的图片进行压缩,或者设置图片的转换格式,可以在角色组中进行设置,如下图所示,我将图片格式设置为webp,将图片保存质量设置为75。
5.安装快捷传图工具
如果每次都打开网页上传图片还是挺麻烦的,接下来我们安装一个小工具PicGo,实现图片自动上传和链接拷贝。
PicGo的安装请看我之前的文章,有非常详细的介绍。PicGo安装好之后,我们需要获取兰空图床的token,后面在插件中需要用到。这里我使用的是postman来获取V2版本的token,使用POST访问兰空图床token获取地址,格式为:域名/api/v1/tokens,在Body中使用form-data格式设置email和password,最后点击Send发起请求,拷贝结果中的token信息备用。
PicGo安装好之后,我们需要安装兰空图床的插件,可以搜索“lsky”,安装如图所示lankong插件。
插件安装成功后,在左侧图床设置下选择“lankong”,编辑相关配置。
如下图所示选择V2版本,填写你的域名和token,需要在token前添加 Bearer ,填写完成后点“确定”保存配置信息,注意在token字符串“1”前面有个空格。
接下来选择插件左侧的“上传区”,选择刚才编辑的“兰空”图床上传图片测试。
上传成功后就可以得到图片链接,如下图所示还会有消息提示。
PicGo插件支持快捷键传图,可以实现截图或者复制图片到粘贴板后使用快捷键一键传图,不需要再打开这个工具,非常方便!如果你感兴趣的话,可以看看我之前的图床文章,有详细的介绍。
通过上面的步骤我们就在威联通上安装好了自己的图床应用,并实现快捷传图和公网访问,所有数据一手掌握,从此再也不怕第三方图床跑路啦!
本文使用到的NPM和DDNS-GO在我之前的文章中有详细介绍,如果你没有看过的话,强烈推荐一读!