Slim 详细部署教程

Slim 是一个轻量级的命令行工具,能让你为本地开发项目快速创建干净的 HTTPS 本地域名(如 myapp.test),并能通过一条命令将本地服务安全地暴露到公网(如 cheeky-panda.slim.show)。

本教程将指导你完成 Slim 的安装、本地使用和公网分享配置。


一、安装 Slim

Slim 的安装方式非常简单,推荐使用官方安装脚本。

1.1 一键安装(推荐)

打开终端,执行以下命令:

1
curl -sL https://slim.sh/install.sh | sh

这个脚本会自动下载并安装 Slim 到你的系统。

1.2 从源码构建(开发者选项)

如果你希望从源码构建,需要先安装 Go 1.25 或更高版本

1
2
3
4
5
6
7
# 克隆仓库
git clone https://github.com/nilbuild/slim.git
cd slim

# 构建并安装
make build
make install

1.3 验证安装

安装完成后,运行以下命令检查是否成功:

1
slim --version

如果能看到版本号,说明安装成功。


二、本地开发:创建 HTTPS 域名

Slim 的核心功能是将 localhost:端口 映射为一个本地 HTTPS 域名,方便开发和测试。

2.1 基本用法:启动一个服务

使用 slim start 命令,为你的本地端口创建一个自定义域名:

1
slim start myapp --port 3000

执行后,你就可以通过 https://myapp.test 来访问原本在 localhost:3000 运行的服务了。slim start 会自动完成:

  1. 生成并信任一个本地 CA 证书。
  2. myapp.test 解析到 127.0.0.1
  3. 启动一个反向代理,将 HTTPS 流量转发到你指定的端口。

2.2 高级路由:一个域名,多个服务

你可以将一个域名下的不同路径,指向不同的本地端口:

1
slim start myapp --port 3000 --route /api=8080 --route /ws=9000

这样:

  • https://myapp.testlocalhost:3000
  • https://myapp.test/apilocalhost:8080
  • https://myapp.test/wslocalhost:9000

2.3 使用自定义顶级域名 (TLD)

默认情况下,Slim 会使用 .test 域名。你也可以指定任何你想要的完整域名(但避免使用 .local,它可能和 mDNS 冲突):

1
2
slim start app.loc --port 3000   # https://app.loc
slim start my.demo --port 4000 # https://my.demo

2.4 管理多个服务:停止与列表

1
2
3
4
5
6
7
8
# 停止一个特定的域
slim stop myapp

# 停止所有正在运行的服务
slim stop

# 查看所有正在运行的服务列表
slim list

2.5 使用配置文件(项目级)

你可以在项目根目录创建一个 .slim.yaml 文件,集中定义所有服务,方便团队共享配置。

示例 .slim.yaml

1
2
3
4
5
6
7
8
9
10
11
12
services:
- domain: myapp
port: 3000
routes:
- path: /api
port: 8080
- domain: dashboard
port: 5173
- domain: app.loc
port: 4000
log_mode: minimal # 日志模式: full | minimal | off
cors: true # 为代理响应启用 CORS 头

定义好后,使用一条命令即可启动全部服务:

1
slim up

停止所有服务则使用:

1
slim down

三、公网分享:将本地服务暴露到互联网

Slim 还能将你的本地服务通过一个公共 URL 分享给他人,非常适合演示、测试或协作。

3.1 登录(首次使用)

分享功能需要先登录你的账户:

1
slim login

按照提示完成登录。

3.2 基础用法:随机公网 URL

最简单的分享方式,获取一个随机生成的 slim.show 子域名:

1
2
slim share --port 3000
# 返回类似: https://cheeky-panda.slim.show

3.3 高级分享选项

你可以通过参数进行更精细的控制:

1
2
3
4
5
6
7
8
9
10
11
12
# 使用自定义子域名
slim share --port 3000 --subdomain demo
# 生成: https://demo.slim.show

# 设置密码保护
slim share --port 3000 --password mysecret123

# 设置自动过期时间 (例如 30 分钟后失效)
slim share --port 3000 --ttl 30m

# 使用你自己的自定义域名 (需配置 DNS)
slim share --port 3000 --domain myapp.example.com

四、诊断与维护

Slim 提供了几个有用的命令来帮助你排查问题。

4.1 运行诊断

doctor 命令会检查所有关键组件是否正常工作:

1
slim doctor

一个健康的输出示例:

1
2
3
4
5
6
✓  CA certificate        valid, expires 2035-02-28
✓ CA trust trusted by OS
✓ Port forwarding active (80→10080, 443→10443)
✓ Hosts: myapp.test present in /etc/hosts
! Daemon not running
✓ Cert: myapp.test valid, expires 2027-06-03

4.2 查看日志

1
2
3
4
5
6
7
8
# 查看所有访问日志
slim logs

# 持续跟踪特定域名的日志
slim logs --follow myapp

# 清空日志文件
slim logs --flush

五、更新与卸载

5.1 更新到最新版本

1
slim update

5.2 完全卸载

这将移除所有相关的证书、Hosts 条目、端口转发规则和配置文件:

1
slim uninstall

六、注意事项

  1. .local 域名:在 macOS 和 Linux 上,.local 通常被 mDNS 协议预留,可能导致 DNS 解析变慢。Slim 默认使用 .test请避免使用 .local
  2. 系统权限:Slim 在修改 /etc/hosts 文件和创建端口转发规则(用于 80/443 端口)时,可能需要你输入管理员密码。
  3. 登录状态slim loginslim share 命令需要网络连接。首次使用请确保网络畅通。

通过以上步骤,你应该能够顺利安装并使用 Slim 来简化本地开发和外部协作流程。