ServerGo 是一个简单的命令行工具,用于快速启动HTTP文件服务器,类似于Python的http.server
模块,但使用Go实现,提供更好的性能。
servergo/
├── main.go # 主程序入口点
├── cmd/ # 命令行命令
│ ├── root.go # 根命令
│ ├── start.go # 启动服务器命令(默认命令)
│ ├── config.go # 配置管理命令
│ └── version.go # 版本命令(包含关于信息)
├── pkg/ # 包含可重用的代码包
│ ├── server/ # 文件服务器的核心实现
│ ├── config/ # 配置管理功能
│ └── utils/ # 工具函数(端口探测等)
└── README.md # 项目文档
go install github.com/CC11001100/servergo@latest
# 添加tap并安装
brew tap CC11001100/servergo https://github.com/CC11001100/servergo
brew install servergo
# 或者一步完成
brew install CC11001100/servergo/servergo
更多关于Homebrew安装的详细信息,请参考HOMEBREW.md文件。
在当前目录启动一个文件服务器,默认端口自动探测(或使用配置文件中设置的默认端口):
# 以下命令效果相同
servergo
servergo start
servergo run # 别名
servergo serve # 别名
servergo launch # 别名
servergo -p 9000
# 或者
servergo --port 9000
# 也可以明确使用子命令
servergo start -p 9000
# 如果指定的端口已被占用,将自动探测一个可用的端口
servergo -d /path/to/your/files
# 或者
servergo --dir /path/to/your/files
# 也可以明确使用子命令
servergo start -d /path/to/your/files
# 目录路径可以是绝对路径或相对路径
默认情况下,服务器启动后会自动打开浏览器访问页面,可以使用以下参数禁用此行为:
servergo -o=false
# 或者
servergo --open=false
# 也可以明确使用子命令
servergo start -o=false
servergo -p 9000 -d /path/to/your/files -o=false
# 或者明确使用子命令
servergo start -p 9000 -d /path/to/your/files -o=false
ServerGo支持持久化配置,配置文件保存在用户主目录的.servergo
目录下。
servergo config list
servergo config get default_port
servergo config get default_dir
servergo config get auto_open
# 设置默认端口,0表示自动探测
servergo config set default_port 8080
# 设置默认目录
servergo config set default_dir /path/to/your/files
# 设置是否自动打开浏览器
servergo config set auto_open true
# 支持多种布尔值表示
servergo config set auto_open yes
servergo config set auto_open 1
# 关闭自动打开
servergo config set auto_open false
servergo config set auto_open no
servergo config set auto_open 0
servergo version
servergo --help
servergo start --help
servergo config --help
-p, --port
: 指定服务器监听的端口(默认使用配置中设置的端口或自动探测)-d, --dir
: 指定要提供服务的目录路径(默认使用配置中设置的目录或当前目录)-o, --open
: 指定是否在启动服务器后自动打开浏览器(默认使用配置中的设置)
- 自动探测端口: 如果不指定端口或指定端口已被占用,自动找到一个可用端口启动服务器
- 路径灵活性: 支持绝对路径和相对路径,便于使用
- 多种启动方式: 支持多种命令别名,适应不同习惯
- 持久化配置: 支持保存默认配置,无需每次都指定相同的参数
- 自动打开浏览器: 服务器启动后可以自动打开浏览器,也可以通过配置或参数禁用
如果您想从源码构建,请执行以下命令:
# 克隆仓库
git clone https://github.com/CC11001100/servergo.git
cd servergo
# 安装依赖
go mod download
# 构建
go build -o servergo
# 运行
./servergo
参见 LICENSE 文件。