# 一个很有意思的html托管平台 附带免费二级域名！

**URL:** <https://2hkj2s.loc.rr.kg/t/topic/87208>\
**Category:** 域名社\
**Tags:** 已失效\
**Created:** [2026 年6 月 4 日 09:42 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208 "2026-06-04T09:42:28Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Furry](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/furry/32/61704_2.png) [@Furry](https://2hkj2s.loc.rr.kg/u/Furry)\
**Post date:** [2026 年6 月 4 日 09:42 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/1 "2026-06-04T09:42:28Z")

</div>

界面有点像终端

# Terminal Hosting - org.digital 完整介绍

## 项目概述

**Terminal Hosting** 是一个基于 Cloudflare Workers + Supabase + R2 的静态网站托管平台。用户通过终端风格的网页界面，使用命令行方式注册账号、注册子域名、上传 HTML 文件，即可获得一个可公开访问的网站。

**访问地址** ：请点赞本帖后查看内容。如果你觉得内容不好，稍后可以用踩来回应。

* * *

## 技术架构

| 组件 | 技术 | 用途 |
| --- | --- | --- |
| 前端 | HTML/CSS/JS | 终端风格的用户界面 |
| 后端 | Cloudflare Workers | API 路由、请求处理 |
| 数据库 | Supabase (PostgreSQL) | 用户管理、子域名映射 |
| 存储 | Cloudflare R2 | HTML 文件存储 |
| 域名 | org.digital | 主域名 + 子域名托管 |

* * *

## 功能特性

### 用户系统

- 邮箱注册（无需验证）
- 邮箱登录
- Token 自动刷新

### 子域名管理

- 用户可自定义子域名（如 `myblog.org.digital`）
- 子域名唯一性检查
- 必须先注册子域名才能上传文件

### 文件管理

- 支持上传 `.html` / `.htm` 文件
- 文件大小限制：10MB
- 文件名格式：`index.html`、`index2.html` 等
- 文件列表查看
- 文件删除

### 网站访问

- 通过注册的子域名直接访问
- 自动记录访问统计

* * *

## 命令行操作指南

### 初始界面

```auto
╔════════════════════════════════════════╗
║ Terminal Hosting - org.digital ║
║ Static HTML Hosting Platform ║
╚════════════════════════════════════════╝

Please Login (By Entering "Login" or "Signup"):
>

```

### 可用命令

| 命令 | 说明 | 示例 |
| --- | --- | --- |
| `login` | 登录已有账号 | `login` |
| `signup` | 注册新账号 | `signup` |
| `domain <name>` | 注册子域名（必须先执行） | `domain myblog` |
| `upload` | 上传 index.html | `upload` |
| `upload2` | 上传 index2.html | `upload2` |
| `files` | 列出已上传的文件 | `files` |
| `delete <file>` | 删除指定文件 | `delete index.html` |
| `stats` | 查看使用统计 | `stats` |
| `site` | 显示网站访问地址 | `site` |
| `logout` | 退出登录 | `logout` |
| `help` | 显示帮助信息 | `help` |

### 使用流程

```auto
1. signup # 注册账号
2. login # 登录
3. domain myblog # 注册子域名 （注册时默认分配一个和Email前缀一样的域名，这个命令可以修改域名前缀）
4. upload # 上传 HTML 文件
5. 访问 https://myblog.org.digital # 查看网站

```

* * *

## 登录/注册交互流程

### 注册流程

```auto
> signup
Please Enter Email:
> user@example.com
Please Enter Your Password:
> ********
Creating account...
✅ Account created successfully!

```

### 登录流程

```auto
> login
Please Enter Email:
> user@example.com
Please Enter Your Password:
> ********
Logging in...
✅ Login successful!

```

* * *

## 文件上传说明

### 支持的文件

- `.html` - HTML 网页文件
- `.htm` - HTML 网页文件

### 文件命名规则

| 文件名 | 用途 |
| --- | --- |
| `index.html` | 主页面（访问根路径时显示） |
| `index2.html` | 备用页面 |
| `index3.html` | 其他页面 |

### 访问方式

- 主页面：`https://你的子域名.org.digital/`
- 指定文件：`https://你的子域名.org.digital/index2.html`

* * *

## 系统要求

### 用户要求

- 有效的电子邮箱地址
- 密码至少 6 位

### 子域名要求

- 仅限小写字母、数字、连字符
- 长度：3-32 个字符
- 必须以字母或数字开头和结尾
- 必须唯一（不能与其他用户重复）

**有效示例** ：`myblog`、`test123`、`my-site`

**无效示例** ：`-myblog`、`my_blog`、`my@blog`

* * *

## 错误处理

| 错误信息 | 解决方法 |
| --- | --- |
| `Email already registered` | 使用其他邮箱或直接登录 |
| `Subdomain already taken` | 更换其他子域名 |
| `File already exists` | 先删除原文件再上传 |
| `Register a subdomain first` | 先执行 `domain <name>` |
| `Unauthorized or token expired` | 重新登录 |

* * *

## 数据存储

### Supabase 表结构

**profiles 表**

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| id | UUID | 主键 |
| user\_id | UUID | 关联 auth.users |
| email | TEXT | 用户邮箱 |
| username | TEXT | 子域名 |
| total\_uploads | INTEGER | 上传次数 |
| total\_visits | INTEGER | 访问次数 |

**R2 存储结构**

```auto
users/
├── {user-id-1}/
│ ├── index.html
│ └── index2.html
├── {user-id-2}/
│ └── index.html
└── ...

```

* * *

## 限制说明

| 项目 | 限制 |
| --- | --- |
| 单文件大小 | 10 MB |
| 文件类型 | 仅 HTML/HTM |
| 子域名长度 | 3-32 字符 |
| 子域名字符 | 小写字母、数字、连字符 |

* * *

## 用户警告

- 不允许用于建立不良网站或者任何带有仇恨言论等的网站

* * *

## 技术支持

- 终端内输入 `help` 查看命令帮助

* * *

**Terminal Hosting** - 极客风格的静态网站托管平台，用命令行方式管理你的网站。 ——Generated By DeepSeek

介绍站：[https://www.org.digital](https://www.org.digital)  
用户协议：[https://terms.org.digital](https://terms.org.digital) （我会定期抽查，敢做不良网站的sml

以后域名会改短一下

---

<div class="post-metadata">

**Author:** ![w-d](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/w-d/32/35088_2.png) [@w-d](https://2hkj2s.loc.rr.kg/u/w-d)\
**Post date:** [2026 年6 月 4 日 09:43 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/2 "2026-06-04T09:43:11Z")

</div>

感谢分享 看看

---

<div class="post-metadata">

**Author:** ![yuren](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/yuren/32/64_2.png) [@yuren](https://2hkj2s.loc.rr.kg/u/yuren)\
**Post date:** [2026 年6 月 4 日 09:45 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/3 "2026-06-04T09:45:17Z")

</div>

可以哦

---

<div class="post-metadata">

**Author:** ![zxylxy](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/zxylxy/32/35517_2.png) [@zxylxy](https://2hkj2s.loc.rr.kg/u/zxylxy)\
**Post date:** [2026 年6 月 4 日 09:45 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/4 "2026-06-04T09:45:49Z")

</div>

看看

---

<div class="post-metadata">

**Author:** ![Arvin\_Leung](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/arvin_leung/32/9914_2.png) [@Arvin\_Leung](https://2hkj2s.loc.rr.kg/u/Arvin_Leung)\
**Post date:** [2026 年6 月 4 日 09:47 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/5 "2026-06-04T09:47:13Z")

</div>

看看去

---

<div class="post-metadata">

**Author:** ![ziyoufeixiang](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/ziyoufeixiang/32/17392_2.png) [@ziyoufeixiang](https://2hkj2s.loc.rr.kg/u/ziyoufeixiang)\
**Post date:** [2026 年6 月 4 日 10:15 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/6 "2026-06-04T10:15:28Z")

</div>

好看 就是有点绿

---

<div class="post-metadata">

**Author:** ![Furry](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/furry/32/61704_2.png) [@Furry](https://2hkj2s.loc.rr.kg/u/Furry)\
**Post date:** [2026 年6 月 4 日 10:25 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/7 "2026-06-04T10:25:16Z")

</div>

为啥没人看啊 这个明明很好用的

---

<div class="post-metadata">

**Author:** ![Foxx](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/foxx/32/21803_2.png) [@Foxx](https://2hkj2s.loc.rr.kg/u/Foxx)\
**Post date:** [2026 年6 月 4 日 10:26 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/8 "2026-06-04T10:26:12Z")

</div>

有点意思哈，[org.digital](https://org.org.digital)

---

<div class="post-metadata">

**Author:** ![alphamiaomiao](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/alphamiaomiao/32/906_2.png) [@alphamiaomiao](https://2hkj2s.loc.rr.kg/u/alphamiaomiao)\
**Post date:** [2026 年6 月 4 日 10:27 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/9 "2026-06-04T10:27:02Z")

</div>

看着不错，部署小网页很方便，我试试去 :xhj16:

---

<div class="post-metadata">

**Author:** ![wxk](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/wxk/32/928_2.png) [@wxk](https://2hkj2s.loc.rr.kg/u/wxk)\
**Post date:** [2026 年6 月 4 日 10:27 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/10 "2026-06-04T10:27:07Z")

</div>

感谢分享

---

<div class="post-metadata">

**Author:** ![haoqi75](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/haoqi75/32/39435_2.png) [@haoqi75](https://2hkj2s.loc.rr.kg/u/haoqi75)\
**Post date:** [2026 年6 月 4 日 10:31 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/11 "2026-06-04T10:31:25Z")

</div>

让我看看是什么

---

<div class="post-metadata">

**Author:** ![Clina](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/clina/32/26188_2.png) [@Clina](https://2hkj2s.loc.rr.kg/u/Clina)\
**Post date:** [2026 年6 月 4 日 10:45 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/12 "2026-06-04T10:45:54Z")

</div>

哇

---

<div class="post-metadata">

**Author:** ![a-wlj-ddns-ip-net](https://2hkj2s.loc.rr.kg/letter_avatar_proxy/v4/letter/a/a587f6/32.png) [@a-wlj-ddns-ip-net](https://2hkj2s.loc.rr.kg/u/a-wlj-ddns-ip-net)\
**Post date:** [2026 年6 月 4 日 10:47 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/13 "2026-06-04T10:47:57Z")

</div>

难操作吗

---

<div class="post-metadata">

**Author:** ![Alen](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/alen/32/18005_2.png) [@Alen](https://2hkj2s.loc.rr.kg/u/Alen)\
**Post date:** [2026 年6 月 4 日 10:59 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/14 "2026-06-04T10:59:23Z")

</div>

看一看

---

<div class="post-metadata">

**Author:** ![Furry](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/furry/32/61704_2.png) [@Furry](https://2hkj2s.loc.rr.kg/u/Furry)\
**Post date:** [2026 年6 月 4 日 11:00 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/15 "2026-06-04T11:00:02Z")

</div>

其实有点像命令行 但是其实就是打几个单词的事情

---

<div class="post-metadata">

**Author:** ![donitown](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/donitown/32/36421_2.png) [@donitown](https://2hkj2s.loc.rr.kg/u/donitown)\
**Post date:** [2026 年6 月 4 日 11:20 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/16 "2026-06-04T11:20:09Z")

</div>

:xhj21:

---

<div class="post-metadata">

**Author:** ![joysuff](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/joysuff/32/26224_2.png) [@joysuff](https://2hkj2s.loc.rr.kg/u/joysuff)\
**Post date:** [2026 年6 月 4 日 11:22 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/17 "2026-06-04T11:22:21Z")

</div>

看看

---

<div class="post-metadata">

**Author:** ![bacon159](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/bacon159/32/7038_2.png) [@bacon159](https://2hkj2s.loc.rr.kg/u/bacon159)\
**Post date:** [2026 年6 月 4 日 11:29 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/18 "2026-06-04T11:29:25Z")

</div>

纯静态部署吗，

---

<div class="post-metadata">

**Author:** ![Furry](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/furry/32/61704_2.png) [@Furry](https://2hkj2s.loc.rr.kg/u/Furry)\
**Post date:** [2026 年6 月 4 日 12:01 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/19 "2026-06-04T12:01:07Z")

</div>

英文

---

<div class="post-metadata">

**Author:** ![yealo](https://2hkj2s.loc.rr.kg/user_avatar/2hkj2s.loc.rr.kg/yealo/32/15577_2.png) [@yealo](https://2hkj2s.loc.rr.kg/u/yealo)\
**Post date:** [2026 年6 月 4 日 12:18 UTC](https://2hkj2s.loc.rr.kg/t/topic/87208/20 "2026-06-04T12:18:43Z")

</div>

这么硬核复古，这是没有困难硬制造困难啊

[下一页](https://2hkj2s.loc.rr.kg/t/topic/87208.md?page=2)
