9个稳定版本
1.2.1 | 2024年5月24日 |
---|---|
1.1.1 | 2024年5月3日 |
1.1.0 | 2023年11月23日 |
1.0.5 | 2022年9月24日 |
1.0.2 | 2022年5月18日 |
#63 in 网络编程
每月48次下载
125KB
2.5K SLoC
stargazer
Stargazer是一款快速且易于使用的Gemini服务器,无运行时依赖(如果使用musl libc编译)。
灵感主要来自 gmnisrv。
功能
- 静态文件服务
- 自动证书生成
- CGI
- 大部分与Jetforce兼容
- SCGI
- 多个域名和路由
- 正则表达式重写
- 开发模式
安装
有多种安装方法,任选其一。
通过包管理器安装
容器
docker pull zethra/stargazer
Docker Hub
下载预构建版本
您可以从发布页面下载预构建的Linux二进制文件。该捆绑包包含静态二进制文件、示例配置文件和手册页。它应该适用于任何发行版。
从crates.io安装
cargoinstall stargazer
从源码构建
依赖项
- POSIX或其他兼容系统
- Rust编译器1.77或更高版本和cargo
- scdoc(可选)用于生成手册页
- strip(可选)(来自binutils)以减小二进制文件大小
- Python 3(测试)
- Python 3密码学(测试)
git clone https://git.sr.ht/~zethra/stargazer && cg stargazer
./scripts/build
# As root
./scripts/install --prefix=/usr
如果crates.io无法访问,Stargazer的每个版本的依赖项也可以在发布页面上找到。只需下载供应商tar包,将其提取到项目根目录中,然后按照INSTRUSTIONS
文件中的说明操作即可。
最低支持的Rust版本策略
修补程序版本之间不会更改所需的Rust版本。
支持的平台
Stargazer官方支持Linux和FreeBSD。它可能在其他BSD、macOS、Windows和其他其依赖项支持的平台上运行,但目前尚未在这些平台上进行测试。如果对其他免费平台有足够的请求,未来可能会正式支持。虽然可能会接受支持其他平台的补丁,但请记住这一点。
使用方法
通过编辑配置文件来配置Stargazer,通常位于/etc/stargazer.ini
。有关命令行选项,请参阅stargazer(1),有关配置说明,请参阅stargazer.ini(5)。
安全性
Stargazer应该是相当安全的。我自己使用过它,并且进行了相当多的测试。然而,Stargazer几乎完全由一个人编写,并且没有经过任何正式的代码审查或审计,所以请记住这一点。
如果您使用CGI脚本,请务必注意。编写它们可能会很容易导致安全问题,特别是如果它们是用POSIX shell编写的。
了解安全问题
已修复:如果在握手期间收到close_notify警报,则可能导致潜在的中断 - 1.1.1之前
Stargazer的依赖项rustls存在一个可能影响Stargazer的漏洞。有关更多详细信息,请参阅RUSTSEC-2024-0336。
已修复:来自异常客户端证书的潜在中断 - 1.1.0之前
Stargazer的依赖项webpki存在一个可能影响Stargazer的漏洞。有关更多详细信息,请参阅RUSTSEC-2023-0052。
已修复:根逃避 - 0.4.0之前
如果请求以//
开头的路径,Stargazer会从文件系统的任何位置提供文件。
复制
stargazer的所有源代码和生成的二进制文件均根据GNU AFFERO GENERAL PUBLIC LICENSE Version 3的条款授权。
贡献
请将任何补丁、错误和问题发送到stargazer邮件列表~zethra/[email protected],或者如果您愿意,提交一个错误跟踪器票据todo.sr.ht/~zethra/stargazer。您也可以直接与我联系。最新的联系方式可以在我的网站上找到sashanoraa.gay。
需要帮助打包
如果您可以打包stargazer,请这样做!我目前维护Arch和Alpine包,但如果您可以为任何其他发行版打包,请这样做,并告诉我。
依赖项
~21–35MB
~604K SLoC