File size: 3,060 Bytes
75f1ae1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c57e208
75f1ae1
 
 
 
 
 
 
 
 
 
 
 
c57e208
75f1ae1
 
c57e208
d3f40ae
c57e208
 
cf4f9f7
c57e208
 
 
d3f40ae
c57e208
 
 
75f1ae1
 
 
c57e208
75f1ae1
 
c57e208
cf4f9f7
c57e208
d3f40ae
c57e208
 
75f1ae1
d3f40ae
75f1ae1
c57e208
 
 
75f1ae1
 
c57e208
cf4f9f7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
---

title: VPS Linux
emoji: 🐨
colorFrom: red
colorTo: green
sdk: docker
pinned: false
license: mit
---


# Simplified Linux VPS on Hugging Face Spaces

这是一个用于在 Hugging Face Spaces 上运行简化版 Linux VPS 的配置模板。它基于轻量级的 Debian Bookworm Slim,预装了基本的开发工具和 `ttyd` 网页终端,允许你在浏览器中直接访问命令行。

此环境配置了 `sudo` 权限,方便你在运行时安装所需的软件(如 OpenClaw)。

**新特性:采用 Nginx + oauth2-proxy 架构,支持稳定的 GitHub/Google OAuth 登录与 WebAssembly 游戏预览。**

## 🚀 快速开始

### 1. 创建 Hugging Face Space
1. 登录 Hugging Face。
2. 点击右上角的头像 -> **New Space**3. 输入 Space 名称(例如 `my-linux-vps`)。
4. **Select the Space SDK**: 选择 **Docker**5. **Docker Template**: 选择 **Blank**6. 点击 **Create Space**### 2. 上传文件
将本仓库中的所有文件(`Dockerfile`, `README.md`, `start.sh`, `nginx.conf`, `oauth2-proxy.cfg`, `build_wasm.sh`)上传到你的 Space 仓库中。

### 3. 配置鉴权环境变量 (重要!)
在 Space 的 **Settings** -> **Variables and secrets** 中添加以下环境变量:

| 变量名 | 描述 | 示例 |
|--------|------|------|
| `ALLOWED_USERS` | **必填**。允许登录的 GitHub 用户名或 Email,逗号分隔。 | `yourgithubuser,your@email.com` |
| `OAUTH2_PROXY_CLIENT_ID` | OAuth Client ID (GitHub 或 Google) | `Ov23li...` |
| `OAUTH2_PROXY_CLIENT_SECRET` | OAuth Client Secret | `a1b2c3...` |
| `OAUTH2_PROXY_COOKIE_SECRET` | Cookie 加密密钥 (16/24/32字节) | `python3 -c 'import os,base64; print(base64.b64encode(os.urandom(16)).decode())'` 生成一个 |

**回调地址配置**:
*   GitHub App Callback URL: `https://<你的Space地址>/oauth2/callback`
*   Google Client Redirect URI: `https://<你的Space地址>/oauth2/callback`

### 4. 访问 VPS
配置好环境变量后,Space 会自动重启。
点击 **App** 标签页,你会看到 GitHub/Google 登录页面。登录成功后即可进入终端。

## 🛠️ 功能特性
- **OAuth 鉴权**: 使用 oauth2-proxy,安全稳定,支持 Session 管理。
- **白名单机制**: 仅允许 `ALLOWED_USERS` 中的用户登录,拒绝陌生人访问。
- **Nginx 反代**: 高性能反向代理,处理静态文件和 WebSocket。
- **Web 终端**: 访问根路径 `/`,使用 `ttyd` 管理 VPS。
- **WASM 游戏预览**: 访问 `/game`,预览编译好的 WebAssembly 游戏。
- **WASM 编译环境**: 预装 Emscripten (emsdk)。

## 🎮 如何编译 OpenClaw 为 WASM

1.  登录终端。
2.  运行 `./build_wasm.sh`3.  如果编译成功,访问 `https://<你的Space地址>/game` 即可玩游戏。

## ⚠️ 安全警告
- 此 VPS 拥有 root 权限。
- 请务必正确设置 `ALLOWED_USERS`,否则虽然能登录,但可能被 oauth2-proxy 拒绝(如果未设置则可能开放给所有人,具体取决于配置)。