# Cross-Device-Online-Clipboard
**Repository Path**: yangshare/Cross-Device-Online-Clipboard
## Basic Information
- **Project Name**: Cross-Device-Online-Clipboard
- **Description**: 一个极简的 Web 端跨设备文本传输工具。无需下载 App,无需登录,只需扫码即可在手机和电脑之间实时同步文本。
- **Primary Language**: JavaScript
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-03
- **Last Updated**: 2025-12-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 📋 Cross-Device Online Clipboard (跨屏即时剪贴板)
一个极简的 Web 端跨设备文本传输工具。无需下载 App,无需登录,只需扫码即可在手机和电脑之间实时同步文本。


## 📸 界面预览
> 试用地址:https://copy.yangshare.cn
## ✨ 功能特性
* **即扫即用**:PC 端生成动态二维码,手机扫码即连。
* **私有频道**:基于 Socket.io 的 Room 机制,确保每对连接的数据隔离。
* **实时同步**:WebSocket 长连接,毫秒级传输延迟。
* **智能识别**:自动识别局域网 IP / 公网域名,支持 Docker 及反向代理部署。
* **历史记录**:PC 端自动保存接收历史,支持一键复制。
* **剪贴板兼容**:智能降级策略,支持 HTTPS 下的 Clipboard API 和 HTTP 下的传统复制。
## 🛠️ 本地开发
确保您的环境已安装 Node.js (v14+)。
1. **克隆项目**
```bash
git clone https://github.com/yangshare/Cross-Device-Online-Clipboard.git
cd online-clipboard
```
2. **安装依赖**
```bash
npm install
```
3. **启动服务**
```bash
npm start
```
4. **访问**
浏览器打开控制台输出的地址(通常是 `http://localhost:3000` 或 `http://<局域网IP>:3000`)。
## 🐳 Docker 部署
提供多种 Docker 部署方式,任选其一。
### 方式一:直接使用 Docker 镜像 (推荐)
无需下载代码,直接拉取 Docker Hub 镜像运行:
```bash
docker run -d -p 3000:3000 --name online-clipboard yangshare/online-clipboard
```
### 方式二:Docker Compose (源码部署)
如果您已下载本项目代码,可以直接使用 Docker Compose 启动:
1. 确保已安装 Docker 和 Docker Compose。
2. 在项目根目录下运行:
```bash
docker-compose up -d
```
3. 服务将在 `3000` 端口启动。
### 方式三:手动构建镜像
如果您想手动控制构建过程:
1. **构建镜像**
```bash
docker build -t online-clipboard .
```
2. **运行容器**
```bash
docker run -d -p 3000:3000 --name my-clipboard online-clipboard
```
## 🌐 公网/反向代理部署说明
本项目支持部署在公网服务器(如 VPS),建议配合 Nginx 使用。
**Nginx 配置示例**:
由于使用了 WebSocket,需要配置 Upgrade 头。
```nginx
server {
listen 80;
server_name clipboard.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme; # 关键:识别 https
}
}
```
## ⚠️ 注意事项
1. **局域网使用**:手机和电脑必须在同一局域网(Wi-Fi),或者服务器有公网 IP。
2. **复制功能**:
* 在 **HTTPS** 或 **localhost** 环境下,使用现代 Clipboard API,体验最佳。
* 在 **HTTP (非 localhost)** 环境下(如直接访问局域网 IP),系统会自动降级使用 `execCommand` 模拟复制,确保功能可用。
## 📄 License
Apache-2.0 license