You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+38-1Lines changed: 38 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -75,7 +75,7 @@ make build
75
75
./sealtun --version
76
76
```
77
77
78
-
`make build` 默认会把当前 Git short hash 注入到本地二进制的 version 中,用于确认本地二进制和已 push 的代码提交一致。正式 tag 发布时,GitHub Actions 会用 tag 版本构建 GitHub Release 产物和容器镜像。
78
+
`make build` 默认会把当前 Git short hash 注入到本地二进制的 version 中,用于确认本地二进制和已 push 的代码提交一致。未打 tag 的本地构建会使用 `latest` 远端隧道镜像;正式 tag 发布时,GitHub Actions 会用 tag 版本构建 GitHub Release 产物和同版本容器镜像。
Copy file name to clipboardExpand all lines: README_EN.md
+39-2Lines changed: 39 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
[中文版本](./README.md)
4
4
5
-
Sealtun is a powerful, elegant CLI tool that provides a `cloudflared` tunnel-like experience entirely built on **Sealos Cloud** and **Kubernetes**.
5
+
Sealtun is a powerful, elegant CLI tool that provides a `cloudflared` tunnel-like experience entirely built on **Sealos Cloud** and **Kubernetes**.
6
6
7
7
It connects your local development machine straight to the internet by dynamically provisioning Kubernetes resources (Deployments, Services, Ingresses) and tunneling the traffic securely via bidirectional multiplexed WebSocket streams (`yamux`).
8
8
@@ -75,7 +75,7 @@ make build
75
75
./sealtun --version
76
76
```
77
77
78
-
`make build` injects the current Git short hash into the local binary version by default, which makes it easy to verify that the local binary matches the pushed commit. Tagged releases are built by GitHub Actions using the tag version for GitHub Release assets and container images.
78
+
`make build` injects the current Git short hash into the local binary version by default, which makes it easy to verify that the local binary matches the pushed commit. Untagged local builds use the `latest` remote tunnel image; tagged releases are built by GitHub Actions using the tag version for GitHub Release assets and matching container images.
79
79
80
80
## Release Process
81
81
@@ -94,6 +94,15 @@ git push origin vX.Y.Z
94
94
95
95
Pushing a `v*` tag triggers GitHub Actions: GoReleaser builds multi-platform binaries and creates the GitHub Release, while the Docker workflow builds and publishes the matching `ghcr.io/gitlayzer/sealtun` image. After release, run `make build && ./sealtun --version` again to confirm that the local binary reports the Git hash that was pushed.
96
96
97
+
After GitHub Release assets finish building, publish the npm packages:
98
+
99
+
```bash
100
+
NPM_VERSION=X.Y.Z NPM_RELEASE_TAG=vX.Y.Z make npm-publish-dry-run
101
+
NPM_VERSION=X.Y.Z NPM_RELEASE_TAG=vX.Y.Z make npm-publish
102
+
```
103
+
104
+
`make npm-publish` downloads the GoReleaser binary assets from the matching GitHub Release, generates the local `packages/` directory, publishes each platform optional dependency first, and then publishes the main package. `packages/` is a publish-time artifact and is ignored by `.gitignore`, so it is not committed.
105
+
97
106
## Quick Start
98
107
99
108
### 1. Login to Sealos
@@ -134,6 +143,18 @@ sealtun expose 3000
134
143
135
144
```
136
145
146
+
Enable Basic Auth for public application traffic:
147
+
```bash
148
+
# Recommended: read the password from the environment to avoid shell history
Basic Auth is enforced by the Sealtun server proxy layer, not by Ingress annotations. It protects only public application paths and does not block the `/_sealtun/ws` tunnel control channel, health checks, or metrics protected by the internal Bearer secret.
157
+
137
158
Sealtun will:
138
159
1. Spin up a tunnel proxy Pod in your Sealos namespace.
If you prefer not to store the password in the config file, use `passwordEnv`:
260
+
```yaml
261
+
basicAuth:
262
+
username: admin
263
+
passwordEnv: SEALTUN_BASIC_AUTH_PASSWORD
264
+
```
265
+
229
266
`name`is used as the stable tunnel ID, so repeated `apply` runs update the same `sealtun-<name>` resources. Custom domains still require verified CNAME ownership before attachment; for a new tunnel, `apply` keeps the Sealos-managed host and prints the follow-up `domain set` command when DNS is not ready. For an existing tunnel, `apply` rejects unverified custom-domain changes so it does not accidentally clear or overwrite a working domain configuration.
0 commit comments