Slim 是用 Go 编写的开发用 CLI,支持 macOS 和 Linux。它可以给本机服务配置可读的 HTTPS 域名,也可以通过公网分享入口把本地端口交给他人访问。本地域名解决开发时的域名与证书问题,公网入口用于远程演示或接收回调,需要分别配置。

先让 localhost 有一个稳定的本地域名
假设应用已经在 3000 端口运行,可以用下面的命令建立本地入口:
slim start myapp --port 3000
默认得到 https://myapp.test,请求转发到本机 3000 端口。Slim 负责代理,不会替你启动应用进程。先确认原服务可以访问,再检查域名、证书信任和转发,排错时更容易定位是哪一段没有就绪。
默认后缀是 .test,也支持完整自定义域名。本地命名尽量避开 .local,该后缀常用于 mDNS,可能与现有解析机制产生冲突。这个域名能在本机使用,并不表示互联网中的其他人也能访问。
前端和接口分属不同端口时,可以按路径分流:
slim start myapp --port 3000 --route /api=8080 --route /ws=9000
这适合把页面、API 和 WebSocket 放到同一个入口下,但后端的路径、协议和应用配置仍要匹配。开启 HTTPS 以后,业务接口、登录状态与回调地址也要一起核对;浏览器显示锁标志,也不能证明业务配置正确。

反复启动同一组服务,把映射写进配置
项目根目录可以放 .slim.yaml,将域名、端口和路径映射保存下来。例如一个前端、一个接口,再加一个管理页面:
services:
- domain: myapp
port: 3000
routes:
- path: /api
port: 8080
- domain: dashboard
port: 5173
log_mode: minimal
cors: true
在对应目录使用 slim up 启动配置,slim down 停止。这份配置描述的是代理关系,应用本身仍需另外运行。README 的日志模式有 full、minimal、off;是否开启 CORS 应按应用需要决定,它不会替代登录与业务权限校验。
slim stop myapp:停止一个指定的本地服务入口。slim stop:停止全部本地服务入口。slim list:查看服务;需要机器读取结果时可用 JSON 输出。slim logs:查看日志,持续观察时使用对应的 follow 选项。
需要外部访问时,再创建公网分享
公网分享需要先执行 slim login 登录,再指定要分享的端口。最简单的入口是随机分配的公网地址:
slim login
slim share --port 3000
需要便于辨认的名称、密码或有限时长时,可按 README 设置相应参数。下面将一个 3000 端口的演示限定为 30 分钟,密码只是占位值,使用时换成自己的值:
slim share --port 3000 --subdomain demo --password YOUR_PASSWORD --ttl 30m
还可按文档使用自定义域名。分享前先看清端口上是什么服务:开发管理页、调试接口、私密文件或依赖“仅本机可访问”的功能,不应直接作为公开演示入口。密码保护与时限能限制分享条件,但应用本身的权限仍由应用负责。
当前 README 说明,随机子域名的浏览器首次访问可能出现一次提示,告知页面来自个人电脑、未经验证;密码保护、已验证自定义域名和保留子域名等情况按文档处理。程序化请求、Webhook、SDK 与 CORS 预检不展示该浏览器提示,因此排查回调时应看实际请求结果。
访问失败时,按连接经过逐段检查
- 本地端口:先确认应用已启动、端口正确,直接访问原服务是否正常。
- 代理状态:用
slim list看入口,用日志确认请求是否到达 Slim。 - 域名与 HTTPS:检查解析和证书信任,
slim doctor可帮助诊断 CA 信任、端口转发、hosts 与守护进程相关问题。 - 公网条件:仅公网分享失败时,再核对登录、隧道入口、密码、有效期与原应用响应。
本地 HTTPS 涉及信任本地 CA、域名解析和端口转发。换电脑或清理环境时,应把这些配置一起考虑;README 提供 slim uninstall 清理对应组件,普通停止服务与完整卸载的影响不同。
源码可读,许可仍有用途限制
官方提供安装脚本与源码构建说明;源码的 go.mod 使用 Go 1.25.0。按所选发行版准备环境,先阅读安装脚本与平台说明,再决定安装路径,不把源码构建要求直接等同于预编译程序的运行要求。
项目采用 PolyForm Shield 1.0.0,允许使用、复制、修改和分发,但包含不得提供竞争产品或服务、保留声明及随分发附带许可证等条件。它不是 MIT 或 Apache 这类无竞争限制的开源许可;准备把代码纳入自己的产品时,应对照官方许可原文与实际用途。
Slim 比较适合需要稳定本地 HTTPS 地址、临时演示入口或回调测试的开发流程。若应用准备长期对外服务,还需要安排正式部署、认证、日志和可用性,临时端口分享不能独自承担这些工作。
- 项目与命令说明:
https://github.com/nilbuild/slim - 项目许可证:
https://github.com/nilbuild/slim/blob/HEAD/LICENSE














暂无评论内容