返回主页
全栈 React FastAPI SQLite 已上线

Share Board 共享展板

2026-06

访问项目

提出背景

我在日常协作中经常遇到这样的场景:想把手机上一段文字发到电脑、想临时给同事分享一串链接、想在会议室的大屏上贴几条信息——

这些需求的共同点是**「临时、轻量、多人可见」**,但我发现现有工具都太重了:微信/IM 需要加好友或拉群,在线文档需要注册账号,AirDrop 又只能在苹果设备之间用。

Share Board 就是我为这个场景做的:不需要注册、不需要登录,只要约定好一个 boardName + 口令(passphrase),任何人打开网页就能进入同一个共享展板,往里贴文本或链接纸条。口令不存浏览器本地,展板只记住你最近用过的名字,兼顾便利与隐私。

主要功能

  • 通过 boardName + passphrase 创建或进入共享展板
  • 支持文本链接两种纸条
  • 支持新增、编辑、删除、搜索、一键复制、手动刷新
  • 我把它挂载在了个人域名的子路径下(/apps/share-board),与主站共存

技术架构

⚠️ 声明:本节技术架构内容完全由 AI 生成,仅供参考。

整体采用前后端分离架构:

浏览器
  │  HTTPS

Nginx(反向代理,挂载到 /apps/share-board 子路径)
  ├── 静态资源 → 前端构建产物(/var/www/share-board)
  └── /api 请求 → 后端服务(127.0.0.1:8100)


              FastAPI + SQLite(systemd 常驻)
  • 前端:React 19 + Vite + Tailwind CSS v4,构建为纯静态文件,由 Nginx 直接服务;
  • 后端:FastAPI + SQLite,轻量单进程即可支撑,通过 uvicorn 运行、systemd 守护,崩溃自动重启;
  • 部署:前后端各有独立的 deploy.py 一键部署脚本(代码 rsync 增量同步);Nginx 路由由独立的 nginx-configuration 仓库统一生成与管理;
  • 安全:口令仅在创建/进入展板时用于鉴权,不写入浏览器本地存储;后端统一通过环境变量配置,密钥与代码分离。

在技术选型上我刻意保持轻量:没有引入用户系统、没有用重型数据库,整个后端一个 SQLite 文件就是全部状态,非常契合「临时共享」这个产品定位。