Linux
curl -fsSL https://locus.casa/releases/install | sh
脚本先让你选语言,检查环境,再问监听地址、端口和数据目录,最后启动服务并给出访问地址。
Local Object & Capability Unified Space
少记几个地址,少维护一张导航页。
自托管,在一页里找到并打开 NAS、服务器和自建应用。
示例环境,设备名称与服务数据为演示用途。
家里慢慢会多出几台机器:一台 NAS,一台跑着好几个应用的家庭服务器,一台开发主机,路由器和树莓派也各有后台。每样东西都有自己的地址和端口。
LOCUS 面向的就是这些:NAS、家庭服务器、开发主机和自建应用。它不是智能家居控制面板,也不是监控系统。
LOCUS 运行在家里的一台 Linux 机器上。它收听局域网里设备发出的广播,把能打开的服务按设备整理到一个页面。
nas 或 ssh nas。多个词一起筛选,不必记得地址。网页在新标签打开;SSH、SMB、VNC 交给电脑上已有的客户端。
每个入口旁的圆点是最近一次检查的结果:可到达、不可到达、尚未确认,或服务异常(例如网页返回 HTTP 5xx)。
locus,注册 systemd 或 OpenRC 服务并设为开机启动;防火墙开着时,会先问你是否放行端口和发现用的组播。
http://这台机器的 IP:3033,或 http://主机名.local:3033。
--network host,否则收不到设备广播;因此不做端口映射,数据保存在卷 locus-data。用 Docker 部署只是运行方式,LOCUS 不管理容器。
curl -fsSL https://locus.casa/releases/install | sh
脚本先让你选语言,检查环境,再问监听地址、端口和数据目录,最后启动服务并给出访问地址。
curl -fsSL https://locus.casa/releases/latest/docker-linux-amd64.tar.gz | docker load
docker run -d --name locus --network host --restart unless-stopped -v locus-data:/data locus:latest
ARM64 把 amd64 换成 arm64。换端口时,在命令末尾加 --bind 0.0.0.0:端口。
发行版会定期检查新版本。有新版本时,LOCUS 页面右上角出现升级图标,点「升级并重启」:程序下载对应架构的文件,核对 SHA256SUMS,试运行通过后替换并重启。也可以再运行一次安装命令来升级。新程序写在数据目录里(Docker 是 /data 卷),在 Docker 卷内升级不会更新镜像本身。设置环境变量 LOCUS_UPDATE_CHECK=off 可以关闭检查。
升级前先停止服务、备份整个数据目录,再启动服务升级。回退需要与旧程序兼容的数据;不要仅删除升级下载的程序来降级。
不想直接运行 curl | sh,可以先下载、校验再运行。每个版本有固定目录 locus.casa/releases/0.1.0.000037/,GitHub Release 上有同样的文件:
下载程序、校验后直接运行(数据放在 ~/.local/share/locus,不注册服务):
V=0.1.0.000037
curl -fsSLO https://locus.casa/releases/$V/linux-x86_64.tar.gz
curl -fsSLO https://locus.casa/releases/$V/SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS
tar -xzf linux-x86_64.tar.gz
./locus-$V-linux-x86_64/locus --bind 0.0.0.0:3033
或者先读安装脚本再运行。它会下载 linux-install.sh,用同一目录的 SHA256SUMS 核对后再执行:
curl -fsSL https://locus.casa/releases/install -o install
less install
sh install
SHA256SUMS 和文件放在一起,只能发现下载损坏或不完整,不能证明文件来源,也不是数字签名。可以把 locus.casa 和 GitHub Release 上的两份清单对照(GitHub 上的文件名多了 locus-版本- 前缀,哈希值相同)。
LOCUS 假定家里的网络是可信的。下面几条决定了该怎么部署它,点开看细节。
LOCUS 没有登录。能打开页面的人都能修改设置,也能使用下面说的设备控制。访问防护只挡浏览器里的跨站请求和 DNS 重绑定,不是认证。只在可信的局域网里使用。
目前只有三类:UPnP 媒体播放器(如电视、音箱上的 DLNA 渲染器)可以播放、暂停、停止、上一个、下一个、静音、调音量和切换播放源,具体按钮取决于设备当时允许的动作;IPP 打印机只读型号、排队数和状态,可以打开打印队列页面;ONVIF 摄像头只读设备信息,可以打开视频流地址。不做其他设备管理。
不需要先授权:能打开 LOCUS 页面的电脑,都能控制它发现的这些设备。要收紧时,用环境变量 LOCUS_CONTROL_CLIENTS 列出允许的 IP 或网段(none 表示都不允许),也可以在「态势」面板里逐项关掉控制;关掉的那项,LOCUS 不再为它向设备发请求。
浏览器地址里的主机名必须是 LOCUS 认可的名字(本机 IP、localhost、主机名、主机名.local,或在 LOCUS_ALLOWED_HOSTS 里加的),端口必须等于 LOCUS 的监听端口;修改操作只接受来自同一个 http 地址的请求。所以经常见的反向代理访问时,请求会被拒绝(421 或 403)。我们暂不提供反向代理示例。请不要靠删除 Origin 头或关闭防护来绕过。
开启后,LOCUS 会主动连接局域网设备的端口(候选探测每 15 分钟一轮),整网扫描还会向整个网段发包。这类流量可能触发路由器、防火墙或安全软件的告警。在公司或别人管理的网络上,先取得许可。它不是漏洞扫描,也不是资产盘点。
自动发现用 mDNS、SSDP/UPnP 和 WS-Discovery,只能看到运行 LOCUS 的机器实际收得到的广播,不会自动跨过 VLAN、隔离的 Wi-Fi 或 VPN。跨网段通常要在网络侧转发,或者手动添加入口。服务自己也要开着广播。
https://locus.casa/releases/latest/version,不附带本机信息;升级时从同一处下载程序。LOCUS_UPDATE_CHECK=off 可以关闭。
设备记录、入口、启动台、名称和分组、设置、使用记录、上传的图标和背景图,都在数据目录里:安装脚本默认是 /var/lib/locus,Docker 是卷 locus-data,直接运行是 ~/.local/share/locus。升级下载的程序也放在这里。备份或迁移时,先停止服务,再复制这个目录。
SSH、SMB、VNC 这类入口用 ssh://、smb:// 等地址打开,由浏览器交给电脑上的程序。没有装客户端,或者系统没有关联这个协议时,就打不开;浏览器也可能先询问。手机上能打开的通常更少。LOCUS 不内置终端、文件管理器或远程桌面。
IP 不是永久身份。有 MAC 等稳定标识时,LOCUS 把不同来源的记录归到同一台设备,地址变了也会更新;不能确认时,记录会分开留着,同名或同 IP 也不一定合并。手动添加的 IP 入口,可以按宿主的 MAC 和邻居记录跟到新地址,但这不是动态 DNS:多网卡、地址冲突或缺少记录时要你确认;HTTPS 换了 IP,证书名称也可能对不上。
状态来自最近一次检查。两次检查之间设备可能离线;端口能连上,也不代表应用本身正常,或者你已经登录。
不做指标监控、告警、密码保管或容器管理,也不会替你登录目标服务;打开之后,仍由那个应用自己认证。