安装
官方二进制包
复制 # mkdir alist
# cd alist
# fetch https://github.com/AlistGo/alist/releases/download/v3.39.2/alist-freebsd-amd64.tar.gz
# tar zxvf alist-freebsd-amd64.tar.gz
# rm alist-freebsd-amd64.tar.gz
注意
根据手动安装 所述及实际测试,无需额外配置后端 alist-web。
编译安装(可选)
安装依赖:
或者
复制 # cd /usr/ports/devel/git/ && make install clean
# cd /usr/ports/lang/go/ && make install clean
然后:
复制 # git clone -b v3.38.0 https://github.com/alist-org/alist # 写作本文时,最新版本为 v3.38.0
# cd alist/public
# fetch https://github.com/AlistGo/alist-web/releases/download/3.38.0/dist.tar.gz # 这是前端部分,官方已经编译好的,注意和后端版本相对应
# tar xzvf dist.tar.gz # 解压缩
# rm dist.tar.gz # 清理垃圾
# cd ..
复制 # mkdir build
# cd build
# go build -ldflags="-w -s" -tags=jsoniter ..
编译后的文件即在 build
下。
部署 rc 服务
编写 /usr/local/etc/rc.d/alist
ee /usr/local/etc/rc.d/alist
:
复制 #!/bin/sh
. /etc/rc.subr
name = "alist"
rcvar = "alist_enable"
command_path = /home/ykla/alist/build # 可执行文件 alist 所在目录
command = "${command_path}/alist" # 命令路径
command_args = "start" # 启动命令参数
stop_cmd = do_stop # 停止命令参数
do_stop ()
{
${command} stop
}
load_rc_config $name # 载入 rc.conf 文件中定义的变量
: ${alist_enable := no} # 如果未设置 alist_enable 则设为 no
run_rc_command "$1" # 运行 service 命令
增加执行权限
复制 # chmod +x /usr/local/etc/rc.d/alist
使用 alist 服务
复制 # sysrc alist_enable=YES
增强安全,使用普通用户执行进程(注意 build
目录的属主和组都必须是 ykla
):
复制 # sysrc alist_user=ykla
初始化方案一
复制 root@ykla:/home/ykla/alist/build # ./alist admin
INFO[2024-10-29 12:02:04] reading config file: data/config.json
INFO[2024-10-29 12:02:04] config file not exists, creating default config file
INFO[2024-10-29 12:02:04] load config from env with prefix: ALIST_
INFO[2024-10-29 12:02:04] init logrus...
INFO[2024-10-29 12:02:04] Successfully created the admin user and the initial password is: CtSnFKv2 # 此处即是密码
INFO[2024-10-29 12:02:04] Admin user 's username: admin
INFO[2024-10-29 12:02:04] The password can only be output at the first startup, and then stored as a hash value, which cannot be reversed
INFO[2024-10-29 12:02:04] You can reset the password with a random string by running [alist admin random]
INFO[2024-10-29 12:02:04] You can also set a new password by running [alist admin set NEW_PASSWORD]
复制 root@ykla:/home/ykla/alist/build # service alist start
Starting alist.
INFO[2024-10-29 12:07:25] success start pid: 1633
初始化方案二
复制 # service alist start # 先启动服务
Starting alist.
INFO[2024-10-28 22:43:45] success start pid: 3436
# service alist stop # 再结束服务
Stopping alist.
Waiting for PIDS: 3436.
# rm -rf daemon
# ps # 查看有无正在运行 alist,将其 kill,若无可跳过下一步
# kill 3436
重置 admin
密码为 1
,必须指定绝对路径方可修改密码:
复制 # ./alist admin set 1 --data /home/ykla/alist/build/data
重启服务:
登录
http://ip:5244
,请将 ip
改为你的局域网地址。用户名是 admin
。
参考文献
另外 start 等静默启动 会强制 --force-bin-dir
。对于 start
指定任何 data
均会在后面附带 --force-bin-dir
。但是仍然是无效的。
指定 vlc 为 AList 的外部播放器
AList 中的内嵌播放器有时不能播放某些视频,但 AList 可以通过 URI 调用外部程序(通过 xdg-open
)。AList 为 vlc 指定的视频地址形如 vlc://http://xxx
,只要为 vlc://
开头的 URI 指定 vlc 程序即可。
安装 vlc:
或者:
复制 # cd /usr/ports/multimedia/vlc/
# make install clean
xdg-open
向 vlc 传递 URI 时会包含 vlc://
, vlc 不能打开这样的地址,需要在打开视频地址前先去除,然后调用 vlc,下面是要调用的脚本:
复制 safreya ~ % cat ~/.local/share/applications/vlc-noschema.sh
#!/bin/sh
url = "$1"
clean_url = "${url # vlc :// }" # 去除 vlc:// 头
vlc "$clean_url"
增加执行权限
复制 $ chmod u+x ~/.local/share/applications/vlc-noschema.sh
新建 .desktop
文件,以便 xdg-open 调用上面的脚本:
复制 safreya ~ % cat ~/.local/share/applications/userapp-vlc.desktop
[Desktop Entry]
Encoding = UTF-8
Version = 1.0
Type = Application
NoDisplay = true
Exec = /home/safreya/.local/share/applications/vlc-noschema.sh %U
Name = vlc
Comment = Custom definition for vlc
注册 vlc://
URI 的调用程序
复制 $ update-desktop-database ~/.local/share/applications
$ xdg-mime default userapp-vlc.desktop x-scheme-handler/vlc
参考文献