输入同一个空间 ID 即进入同一个共享房间,支持文件与文字共享、口令保护、过期清理、访问日志。
- 同 ID 进入同一空间
- 房间口令保护(设置/清除)
- 文件上传到阿里云 OSS
- 若
OSS_ENDPOINT / OSS_ACCESS_KEY_ID / OSS_ACCESS_KEY_SECRET / OSS_BUCKET任一缺失,文件自动落地到当前目录tmp/(或LOCAL_TMP_DIR) - 文件下载、删除
- 过期策略仅支持:
1h、12h、1d(默认1h,最长1d) - 访问日志使用 Redis 存储,键 TTL 固定
7 天 - 房间/文件/文字元数据存储在 PostgreSQL
docker compose up -d --build启动后访问:http://localhost:18743
Compose 已包含:
app(Go 服务,自动重启)postgres(数据卷持久化,自动重启)redis(AOF + 数据卷持久化,自动重启)app_tmp卷(OSS 缺失时本地文件缓存)- 冷门端口:
app=18743、postgres=35432、redis=36379
- 复制配置
cp .env.example .env- 启动依赖(推荐)
docker compose up -d postgres redis- 运行后端
cd backend
go mod tidy
go run .- 打开
http://localhost:18743
DATABASE_DSN:PostgreSQL 连接串(优先)POSTGRES_HOST/PORT/USER/PASSWORD/DB/SSLMODE:未设置DATABASE_DSN时用于拼接连接串REDIS_ADDR、REDIS_PASSWORD、REDIS_DB:日志 Redis 连接MAX_UPLOAD_MB:上传大小上限(MB)DOWNLOAD_TTL_MINUTES:OSS 下载签名时效(分钟)CLEANUP_INTERVAL_MINUTES:过期房间扫描间隔(分钟)LOCAL_TMP_DIR:OSS 缺失时本地文件目录
POST /api/rooms/enter- body:
{ "roomId": "team_docs", "password": "123456", "retentionPolicy": "1h" }
- body:
GET /api/rooms/{roomId}?password=...POST /api/rooms/{roomId}/notes- body:
{ "content": "文本", "password": "123456" }
- body:
POST /api/rooms/{roomId}/files(form-data:file,password)DELETE /api/rooms/{roomId}/files/{fileId}- body:
{ "password": "123456" }
- body:
GET /api/rooms/{roomId}/files/{fileId}/download?password=...POST /api/rooms/{roomId}/settings- body:
{ "currentPassword": "old", "newPassword": "new", "retentionPolicy": "12h" }
- body:
GET /api/rooms/{roomId}/logs?password=...&limit=120