自托管 · 主密码加密 · 数据归你所有

把文章、仓库、凭证和 API
收进一个私有工作台

InfoHub 帮开发者整理日常要用的知识和资源:离线保存技术文章,跟踪 GitHub 仓库,加密保管服务器和数据库凭证,直接调试 API。数据放在你自己的服务器上,用主密码加密。

服务端 v0.3.0 · 本服务器以介绍页模式运行,请用桌面客户端连接

// Features

一个工作台,覆盖开发者的日常资料

文章、仓库、凭证三类资源统一检索和整理,配套 API 调试、版本历史和备份。

文章离线保存与阅读

粘贴链接即可收录,正文转成 Markdown 保存,文中图片下载到你自己的存储里,原网页没了也能看。

  • 阅读和源码两种视图,可直接编辑保存
  • 记录阅读进度,支持稍后读
  • 逐篇写批注
  • 导出为 Markdown 或带图片的 ZIP

GitHub 仓库订阅

收藏仓库后自动同步 README、Star 等指标和最新 Release。

  • 订阅仓库,后台定期检查更新
  • 有新 Release 时标为未读
  • 为每个仓库写实践笔记

加密凭证与一键连接

服务器、数据库、缓存、向量库等连接信息加密保存,敏感字段默认隐藏。

  • 字段显示或隐藏,一键复制
  • 按类型生成连接命令:ssh、mysql、psql、redis-cli、mongosh 等
  • 可附加文件

API 调试台

导入 OpenAPI 或 Swagger 文档,生成接口列表,然后直接发请求。

  • 编辑 Path、Query、Header、Body
  • 全局 Header 的继承和覆盖
  • 多套环境变量,加密保存
  • 请求历史和重放,可以取消正在发的请求
  • 一键复制 cURL 命令

项目、标签与批量整理

资源多了也能理清楚。

  • 按项目归档,项目可以归档隐藏
  • 标签合并,条目之间建立关联
  • 保存常用的筛选条件为视图
  • 批量打标签、批量归入项目

版本历史、回收站与备份

改错了能回退,删错了能找回,迁移服务器也不怕。

  • 每次修改保存版本,可对比和回滚
  • 删除先进回收站
  • 完整备份下载,一键恢复到新实例
  • 编辑草稿自动保存

后台收录任务

收录网页、同步仓库这类耗时操作放进后台队列,不阻塞你继续工作。

  • 任务中心查看进度
  • 失败可以重试,进行中可以取消

使用统计

看看自己收藏和阅读了多少、最近在关注什么。

  • 使用统计面板,数据只保存在你的服务器
  • 可随时关闭或清空
  • 新手引导帮助快速上手
// Security

你的数据,只有你能解开

敏感内容在服务端用主密码派生的密钥加密。服务器只存密文,主密码本身不落盘。

# 加密方案
主密码  ──Argon2id──▶  256 位密钥
明文    ──AES-256-GCM──▶  密文 + 随机 nonce
# 锁定或空闲超时后,内存中的密钥被清除
Argon2id + AES-256-GCM业界推荐的密钥派生和认证加密算法组合。
主密码不存储服务器上没有主密码,也就没有可泄露的主密码。
登录限流按客户端 IP 统计失败次数,指数退避,抵御暴力猜测。
SSRF 防护收录和 API 调试默认禁止访问内网地址,需要时显式加白名单。
初始化令牌新实例要凭一次性令牌才能设置主密码,防止被抢先初始化。
严格的 CSP禁止外部脚本和嵌入,降低 XSS 和点击劫持风险。
// Desktop

桌面客户端,连接你自己的服务器

基于 Tauri 的轻量桌面应用。首次打开填写服务地址,之后用主密码登录即可。

下载并安装客户端

点击下方按钮获取安装包。

填写服务地址

例如 https://hub.example.com,客户端会先检查连接。

创建或输入主密码

新实例需要启动日志里的初始化令牌,也可以直接从备份恢复。

开始使用

还可以从客户端直接用 VS Code、终端或文件管理器打开工作目录。

下载桌面客户端
// Self-host

几分钟完成自托管

一个 Rust 服务进程加一个 PostgreSQL 数据库。用 Docker Compose 或 1Panel 部署都可以。

Docker / 1Panel自带 compose 配置,1Panel 里填环境变量即可。
PostgreSQL所有数据存一个库,迁移自动执行。
本地或 R2 存储图片和附件可存本地目录,也可存 Cloudflare R2。
三种网页模式full 完整网页版,landing 只显示本页,off 只开放 API。
# .env
DATABASE_URL=postgres://infohub:***@db:5432/infohub
PUBLIC_URL=https://hub.example.com
FILE_STORAGE=local        # 或 r2
WEB_UI=landing            # full | landing | off
LANDING_DOWNLOAD_URL=https://example.com/download

# 启动
$ docker compose up --build -d
$ curl -fsS http://127.0.0.1:3210/api/health
// FAQ

常见问题

为什么这个地址打不开网页版?

管理员把服务设置成了 WEB_UI=landing,只展示介绍页。请下载桌面客户端,填写这个地址连接。

忘记主密码怎么办?

主密码不保存在服务器上,加密数据无法找回。请妥善保管主密码,并定期下载完整备份。

新实例怎么初始化?

第一次启动时,服务会在日志里打印一次性初始化令牌,也可以用 SETUP_TOKEN 指定。在客户端里填入令牌并设置主密码,或者直接从备份恢复。

收录网页或调试 API 能访问内网吗?

默认不能,这是为了防止 SSRF。需要时在 ALLOWED_PRIVATE_HOSTS 里显式列出允许的内网主机。

怎么迁移到另一台服务器?

在旧实例里下载完整备份,在新实例上用初始化令牌或主密码恢复即可,附件和图片会一起迁移。

把资料收进自己的工作台

下载桌面客户端,连接这台服务器开始使用。

下载桌面客户端