windows+alist搭建一个web版局域网共享站点
前言
最近发现一个有意思的项目 alist,官方定义是一个支持多种存储的文件列表程序,而且它使用的新的框架 SolidJS;没有虚拟dom,直接操作原生dom,性能和 Vanilla 相同,于是拿来用了一下,发现解决了我的一个痛点。
当我电脑下载完视频后,这些视频文件往往会很多或者文件很大,但是这些文件属于待确认文件,我可能简单略了一遍后就会将它们删除,所以,我不想移动到手机上去查看,但是电脑上看又不是很便捷,特别上晚上想躺床上的时候,操作电脑就不是很方便了。
之前我是利用windows自带的文件共享功能Samba
来远程查看的,通过手机的文件管理器SMB连接到电脑,然后查看文件,但是这种方式非常痛苦,首先它的速度非常慢,而且对于快速查看视频,很容易播放无响应,必须重新打开文件才可以。
但是用了alist,它的视频是在线的,文件的读取和反馈都是通过服务器实现,服务器就是我的电脑,所以我在拖拽查看的时候,体验堪比在电脑上操作了,秒开的体验,配置5g的wifi带宽,完全满足需要。
为此记一下笔记,分享给跟我一样有这种需求的人(主要是买不起NAS)。
教程
alist下载
github:alist
使用文档:文档
注意不要看错文档了,我们看v3的,也就是我提供的这个地址的。
进入到github仓库,我们找到 Releases 下载windows版的包。
下载完毕后我们解压到电脑磁盘目录,我个人把他放到了专门存放代码的自建code目录下了,这个我觉得可以分类为软件,看自己想法。
初次启动并挂载磁盘
文档我们查看 安装 - 手动安装;找到windows的教程,官方提供了这么一条命令:
.\alist.exe server
这个用于启动服务,此时我们可以看到启动的是当前目录下的alist.ext文件。
输入完后我们可以看到这么一个提示:start server @ 0.0.0.0:5244
说明它用的是本地服务,5244是它的默认端口,这个是可以改动的,这个自己去看文档吧。
我们通过访问:http://localhost:5244
就能进入到站点页面了。
但是需要登录,所以我们还需要通过另一段命令获取到默认的管理员账号密码
.\alist.exe admin
可以看到输出了username和password,这个就是账号密码了,默认密码是随机字符的,我这个其实是自己改过了,不用纠结是否相同。
输入账号密码进入后台我们直奔管理后台的存储菜单,点击后我们就可以添加本地存储了。
这里我以电脑的F盘为例,我希望挂载整个F盘,设置如下:
注意根文件夹路径才是磁盘路径,挂载路径指的是前端路由的路径,不要搞混了。
设置完毕后保存,我们就可以在通过访问:http://localhost:5244
看到刚刚挂载的目录了。
至此我们测试上基本就没啥问题了,现在我们需要解决几个问题:
- 程序保活,也就是开机自启
- DNS本地代理,这样就可以通过域名访问
- 配置环境变量,这样可以直接通过alist命令来控制程序
程序保活:开机自启
官方提供了两个vbs脚本,一个是启动,一个是停止,我们只需要将这两个脚本放置在和alist.exe同级目录即可,然后将启动脚本放置在windows的启动计划中即可。
官方有提供脚本下载,嫌麻烦自己创建一个text文件,然后把代码粘贴进去,把文件名改一下就行了,文件后缀为:.vbs
。
我的脚本名为:alist_start.vbs
右键创建一个快捷方式,然后 win + r调出运行,输入:shell:Startup
回车。
会打开一个这样的文件夹:C:\Users\你的用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
我们将刚刚创建的快捷方式,剪切到这个文件夹中即可。
此时我们的程序会在系统重启后自动启动。
DNS本地代理
访问alist站点,本机电脑可以通过:http://localhost:5244
访问,但是其他设备就需要通过主机ip+端口访问了。
略有一些不方便,有没有办法通过域名访问,比如通过nas.com:5244
访问呢?
这个就需要看使用的路由器是否支持DNS代理了,我的路由是爱快,它是支持这个功能的:
添加完毕后,我们在局域网内,都可以通过nas.com:5244
来访问页面了。
比较可惜的是还是需要增加端口号,爱快不支持带端口,暂时就这样吧。
配置环境变量
到这里我们就要考虑下alist的一些方便的操作了,如果我们想要停止这个程序,只能运行我们之前创建的停止的vbs脚本,双击运行即可。
但是有些不方便,我看到官方在底部有说:
对于所有平台,您可以使用以下命令来静默启动、停止和重新启动。 (v3.4.0 及更高版本)
# 携带`--force-bin-dir`参数启动服务
alist start
# 通过pid停止服务
alist stop
# 通过pid重启服务
alist restart
但是此时我们在cmd或者PowerShell调用alist
得到的是一个报错,因为我们还没有将其设置为全局变量,这种用法是不行的。
为此,我们在我的电脑右键 -> 属性 -> 高级 -> 环境变量 -> Path
点击编辑,新建一条程序目录的path路径:
确定后在下面的系统变量区域新建一个系统变量:
确定后,关闭所有的命令行程序,然后重新打开,输入alist
就不会再报错了,会返回一段命令提示:
这就表示我们的设置成功了。
完事后我们还需要更新下vbs脚本内容,不需要再通过路径去触发了。
启动脚本:
Dim ws
Set ws = Wscript.CreateObject("Wscript.Shell")
ws.run "alist start",vbhide
Wscript.quit
停止脚本:
Dim ws
Set ws = Wscript.CreateObject("Wscript.Shell")
ws.run "alist stop",0
Wscript.quit
此时完成,现在当我们有需要时,就可以通过alist stop
来停止程序的运行,比如更新下程序。
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
暂无评论数据