docs: 项目文档、设计图、工具、协议模块、部署说明

This commit is contained in:
Qiufeng
2026-08-20 20:38:21 +08:00
commit bf25d8beac
46 changed files with 2965 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
# EveryPublish 服务器配置样例(部署包专用,已按部署包目录结构调整)
SERVER_ADDR=:8090
MYSQL_DSN=root:everypublish@tcp(127.0.0.1:3306)/everypublish?charset=utf8mb4&parseTime=True&loc=Local
REDIS_ADDR=127.0.0.1:6379
REDIS_PASSWORD=
JWT_SECRET=please-change-me-in-production
# 客户端(agent-core)下载素材用,必须填客户端可达的内网地址:
BASE_URL=http://<服务器内网IP>:8090
# 浏览器侧链接(邀请链接等),同样填内网地址:
PUBLIC_BASE_URL=http://<服务器内网IP>:8090
STORAGE_DIR=./data/materials
# 部署包自带 web/ 前端目录,按部署包路径即可:
STATIC_DIR=./web
+47
View File
@@ -0,0 +1,47 @@
# EveryPublish 服务器部署说明(内网版)
## 目录内容
| 文件 | 说明 |
|---|---|
| everypublish-server-linux-amd64 | Linux x64 服务器程序(单文件,含前端+API+WSS) |
| everypublish-server-windows-amd64.exe | Windows x64 服务器程序 |
| web/ | 网页控制台静态文件(程序自动托管,无需 Nginx) |
| docker-compose.yml | MySQL + Redis 一键编排 |
| .env.example | 配置样例 |
## 部署步骤(Linux 示例)
1. 依赖 MySQL 8 + Redis 7(有现成实例可跳过本步):
`docker compose up -d`(或自建 MySQL 库 everypublish + Redis)
2. 准备配置(可选,默认即可用):
`cp .env.example .env`,改 MYSQL_DSN / REDIS_ADDR / JWT_SECRET
3. 启动:
`./everypublish-server-linux-amd64`(默认监听 0.0.0.0:8090,自动建表)
4. 验证:浏览器访问 `http://<服务器内网IP>:8090` → 出现 EveryPublish 登录页即成功。
5. 防火墙放行 8090 端口(仅内网使用可不放行公网)。
## 使用(连接方式)
1. 浏览器打开 `http://<服务器内网IP>:8090` → **注册账号**(开放注册)→ 登录。
2. Windows 客户端(安装包)「设置」页填服务器地址 `http://<服务器内网IP>:8090` → 保存。
3. 网页控制台「设置 → Agent 设备」生成**配对码** → 客户端「配对」页输入 → 完成绑定。
4. 网页端:账号管理 → 添加平台账号并绑定(客户端扫码/验证)→ 素材库上传 → 新建发布 → 审核通过 → 客户端自动执行。
## 常用配置(.env)
```
SERVER_ADDR=:8090 # 监听端口
MYSQL_DSN=root:密码@tcp(127.0.0.1:3306)/everypublish?charset=utf8mb4&parseTime=True&loc=Local
REDIS_ADDR=127.0.0.1:6379
JWT_SECRET=请改成随机长字符串
BASE_URL=http://<服务器内网IP>:8090 # 素材直链(客户端下载用,必须客户端可达)
PUBLIC_BASE_URL=http://<服务器内网IP>:8090 # 浏览器侧链接(邀请链接等)
STORAGE_DIR=./data/materials
STATIC_DIR=./web # 前端目录(部署包自带)
```
## 测试账号
- 部署后网页端**开放注册**,直接注册即可作为测试账号(注册即建工作空间)。
- 如需平台管理员(可见「平台管理→开发文档」等):把某账号 users.role 改为 admin(MySQL:`UPDATE users SET role="admin" WHERE email="你的邮箱";`)。
+35
View File
@@ -0,0 +1,35 @@
services:
mysql:
image: mysql:8.4
container_name: everypublish-mysql
environment:
MYSQL_ROOT_PASSWORD: everypublish
MYSQL_DATABASE: everypublish
TZ: Asia/Shanghai
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-peverypublish"]
interval: 5s
timeout: 3s
retries: 30
redis:
image: redis:7-alpine
container_name: everypublish-redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 30
volumes:
mysql_data:
redis_data: