5 个版本
0.2.4 | 2024 年 1 月 29 日 |
---|---|
0.2.3 | 2023 年 9 月 22 日 |
0.2.2 | 2023 年 7 月 9 日 |
0.2.1 | 2023 年 5 月 26 日 |
0.2.0 | 2023 年 5 月 26 日 |
#298 in HTTP 服务器
115KB
1.5K SLoC
portalgun
portalgun
允许您通过公开 URL 暴露本地运行的 Web 服务器。使用 Rust 编写。完全使用 async-io 在 tokio 之上构建。
安装
Cargo
cargo install portalgun
无处不在
或 在此处下载适用于您目标操作系统的版本: portalgun/releases
使用
快速入门
portalgun --port 8000
上述命令打开隧道并将流量转发到 localhost:8000
。
更多选项
Expose your local web server to the internet with a public url.
Usage: portalgun [OPTIONS] [COMMAND]
Commands:
login Login using OpenID Connect. This will store the authentication token on disk for future use
help Print this message or the help of the given subcommand(s)
Options:
-v, --verbose
A level of verbosity, and can be used multiple times
-s, --sub-domain <SUB_DOMAIN>
Specify a sub-domain for this tunnel
--host <LOCAL_HOST>
Sets the HOST (i.e. localhost) to forward incoming tunnel traffic to [default: localhost]
-t, --use-tls
Sets the protocol for local forwarding (i.e. https://127.0.0.1) to forward incoming tunnel traffic to
--port <PORT>
Sets the port to forward incoming tunnel traffic to on the target host [default: 8000]
--dashboard-port <DASHBOARD_PORT>
Sets the address of the local introspection dashboard
-h, --help
Print help
自己托管
- 请参阅
Dockerfile
了解运行该服务器二进制文件的简单 alpine 基础镜像。 - 将镜像部署到您想要的位置。
OIDC 提供者设置
门户枪使用以下自定义属性来确定用户是否允许在特定子域上创建门户。
{
"portalgun": [
".*",
"or-any-subdomain-matching-regexp-in-here
]
}
管理员必须适当地配置其身份提供者。
本地测试
# Run the Server: xpects TCP traffic on 8080 and control websockets on 5000
ALLOWED_HOSTS='localhost' TUNNEL_HOST='localhost' OIDC_DISCOVERY='https://example.com/.well-known/openid-configuration' OIDC_CLIENT_ID='openid-client-id-here' OIDC_SCOPES='openid,portalgun' cargo run --bin portalgun_moon
# Logging in using OIDC
cargo run --bin portalgun login --control-server ws://127.0.0.1:5000
# Test it out!
# Remember 8080 is our local portalgun TCP server
curl -H '<subdomain>.localhost' "https://127.0.0.1:8080/some_path?with=somequery"
请参阅 portalgun_moon/src/config.rs
了解配置的环境变量。
依赖项
~30–48MB
~848K SLoC