Featured image of post 站点与博客自托管:WordPress / WVP 视频监控 / Hoppscotch API 工具

站点与博客自托管:WordPress / WVP 视频监控 / Hoppscotch API 工具

用 WordPress 搭个人博客或企业站,WVP 部署国标 GB28181 视频监控平台做安防集成,Hoppscotch 替代 Postman 跑团队 API 工具链

除了主业务系统,企业里还有些"小而重要"的站点需要自托管:内部博客(WordPress)、视频监控平台(WVP)、API 调试工具(Hoppscotch)。这篇把这三个看似不相干但都属于"开箱即用工具"的部署方案整理到一起。

阅读对象:需要快速部署内部工具的运维 / 全栈工程师 覆盖范围:WordPress 博客完整部署 + WVP 视频监控 GB28181 协议对接 + Hoppscotch 替代 Postman 协作

一、WordPress:最经典的博客 / CMS 平台

WordPress 占据全球 CMS 市场 60%+ 份额——既是博客引擎,也是小型站点的建站工具。Docker 化部署只要 30 秒

1.1 一键启动

1
2
3
4
5
docker run -d --restart=always \
  --name wordpress \
  -p 8864:80 \
  -v /home/project/wordpress/data:/var/www/html \
  wordpress
  • 8864:80 把容器 80 映射到宿主机 8864
  • /home/project/wordpress/data 是数据卷,升级 / 重建容器不丢数据

1.2 访问

1
2
首页:http://<IP>:8864
后台:http://<IP>:8864/wp-admin

首次访问进入安装向导,5 分钟填完站点信息。默认管理员 admin + 启动时设置的密码。

1.3 生产配置建议

挂 MySQL 而非 SQLite

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
docker run -d --name wordpress-db \
  -e MYSQL_ROOT_PASSWORD={{DB_ROOT_PASS}} \
  -e MYSQL_DATABASE=wordpress \
  -e MYSQL_USER=wpuser \
  -e MYSQL_PASSWORD={{DB_USER_PASS}} \
  -v /home/mysql/wordpress:/var/lib/mysql \
  mysql:8.0

docker run -d --name wordpress \
  --link wordpress-db:mysql \
  -p 80:80 \
  -v /home/project/wordpress/data:/var/www/html \
  wordpress

挂 PHP 上传目录到独立卷(避免容器重建时上传文件丢失):

1
-v /home/wordpress/uploads:/var/www/html/wp-content/uploads

1.4 必备插件

  • Akismet Anti-Spam:垃圾评论过滤
  • Yoast SEO:SEO 优化(中文站用 Rank Math)
  • WP Super Cache:静态化提速
  • UpdraftPlus:自动备份到 OSS / S3
  • W3 Total Cache:对象缓存 + CDN 加速

1.5 主题选择

  • 博客:Twenty Twenty-Four(官方默认)、Astra
  • 企业站:Astra Pro、GeneratePress、Flavor
  • 中文社区:Kratos(极简风)、Mirages(资讯类)

1.6 安全加固清单

  • 不要用 admin 用户名:装完立刻建新管理员 → 删 admin
  • 限制登录 IP:Nginx 反代时加 allow / deny
  • 启用 2FA:插件 Two Factor Authentication
  • 禁用文件编辑wp-config.phpdefine('DISALLOW_FILE_EDIT', true);
  • 隐藏 WordPress 版本functions.phpremove_action('wp_head', 'wp_generator');

1.7 备份

1
2
3
4
5
6
7
8
9
# 1. 数据库备份
docker exec wordpress-db mysqldump -u root -p{{DB_ROOT_PASS}} wordpress > wp_backup_$(date +%Y%m%d).sql

# 2. 文件备份
tar czf wp_files_$(date +%Y%m%d).tar.gz /home/project/wordpress/data

# 3. 上传 OSS
ossutil cp wp_backup_*.sql oss://backup-bucket/wordpress/db/
ossutil cp wp_files_*.tar.gz oss://backup-bucket/wordpress/files/

自动化UpdraftPlus 插件定时备份到 S3 / OSS。

二、WVP:国标 GB28181 视频监控平台

WVP(WEB VIDEO PLATFORM)是基于 Java + ZLM(ZLMediaKit)实现的 GB28181 视频平台——对接海康 / 大华等摄像头、做实时预览、云台控制、录像回放。

2.1 适用场景

  • 工厂 / 园区 / 工地:把分散的 NVR / IPCamera 集中管理
  • 应急 / 安防:实时调取监控画面到 Web 端
  • 视频对讲:GB28181 标准 + SIP 信令

2.2 一键启动

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
docker run --name wvp \
  --env WVP_IP="203.0.113.10" \
  -itd --restart=always \
  -p 18080:18080 \
  -p 33010-33020:33010-33020/udp \
  -p 33010-33020:33010-33020/tcp \
  -p 9980:9980 \
  -p 5060:5060 \
  -p 5060:5060/udp \
  -p 9554:9554 \
  dockerhub.example.com/base/648540858/wvp_pro:latest

关键参数

  • WVP_IP必须是公网 IP 或能被摄像头访问到的 IP
  • 18080:Web 管理界面
  • 33010-33020:GB28181 信令 + 流媒体端口
  • 9980:ZLM HTTP 端口
  • 5060:SIP 信令端口(不能改,GB28181 协议规定)
  • 9554:ZLM RTSP 推流端口

2.3 配置文件修改

1
2
3
4
5
# 进入容器
docker exec -it wvp bash

# 修改 WVP 配置
vim /opt/wvp/config/application.yml

常用配置项:

1
2
3
4
5
6
7
8
9
sip:
  ip: 203.0.113.10         # SIP 信令 IP
  port: 5060
media:
  sdp-ip: 203.0.113.10     # SDP 协商 IP
  stream-ip: 203.0.113.10  # 媒体流 IP
  http-port: 9980
  rtp:
    port-range: 33010,33020    # 一字对应启动端口

修改后必须重启

1
docker restart wvp

注意:重启后 sdp-ipstream-ip 会还原成启动时的 WVP_IP——生产要把 WVP_IP 设对

2.4 挂载配置(推荐)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 1. 先启动一次让容器生成配置
docker run --name wvp --env WVP_IP="203.0.113.10" -itd wvp_pro:latest

# 2. 拷贝配置出来
docker cp wvp:/opt/wvp/config/application.yml /data/wvp/
docker cp wvp:/opt/media/config.ini /data/wvp/

# 3. 停掉 + 删除
docker rm -f wvp

# 4. 重新启动,挂载配置
docker run --name wvp \
  --env WVP_IP="203.0.113.10" \
  -itd --restart=always \
  --net=host \
  -v /data/wvp/application.yml:/opt/wvp/config/application.yml \
  -v /data/wvp/config.ini:/opt/media/config.ini \
  dockerhub.example.com/base/648540858/wvp_pro:latest

2.5 接入海康摄像头

摄像头配置(Web 界面 http://<camera-ip>/doc/page/config.asp):

1
2
3
4
5
SIP 服务器地址:203.0.113.10
SIP 服务器端口:5060
SIP 用户名:34020000001320000022
SIP 认证密码:(任意)
视频通道编码ID:34020000001320000001

WVP 端

  1. 登录 http://203.0.113.10:18080(默认 admin/admin
  2. 进入 控制台 → 信令服务器配置,填摄像头信息
  3. 摄像头注册成功后自动出现在设备列表
  4. 点击 通道播放 即可预览

2.6 录像回放 / 云台

WVP 支持:

  • 实时预览(Web 端 HTML5 播放)
  • 云台控制(上下左右、镜头变倍变焦)
  • 录像回放(基于 ZLM 自动录像)
  • 报警联动(对接 IoT 平台)

注意:海康摄像头必须先在 WVP 注册才能控制云台——RTSP 直连不能控制。

2.7 反向代理 / 公网映射

不能用 Nginx 7 层代理——GB28181 用的是 UDP 协议,且 SIP 信令对延迟敏感。

正确做法:路由器 / 防火墙直接做 1:1 端口映射,把公网 IP 段 33010-33020 转到内网 WVP 服务器。

三、Hoppscotch:开源 Postman 替代

Hoppscotch(原 Postwoman)是开源的 API 调试工具——比 Postman 轻、比 curl 友好、团队协作强

3.1 一键启动

1
2
3
4
docker run -d --name hoppscotch \
  --restart=always \
  -p 3000:3000 \
  hoppscotch/hoppscotch:latest

访问 http://<IP>:3000 即可使用——单容器版本不支持多人协作,要协作得部署完整版。

3.2 完整版(PostgreSQL + 后端 + 前端)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
version: "3.8"
services:
  hoppscotch-backend:
    image: hoppscotch/hoppscotch-backend:latest
    restart: always
    environment:
      - DATABASE_URL=postgres://hopp:hopp@hoppscotch-db:5432/hopp
    depends_on:
      - hoppscotch-db
    ports:
      - "3100:3100"

  hoppscotch-frontend:
    image: hoppscotch/hoppscotch-frontend:latest
    restart: always
    depends_on:
      - hoppscotch-backend
    ports:
      - "3000:3000"

  hoppscotch-db:
    image: postgres:13
    restart: always
    environment:
      - POSTGRES_USER=hopp
      - POSTGRES_PASSWORD={{DB_PASS}}
      - POSTGRES_DB=hopp
    volumes:
      - /data/hoppscotch/pgdata:/var/lib/postgresql/data

3.3 核心功能

  • REST / GraphQL / WebSocket / SSE 全协议支持
  • 环境变量(dev / staging / prod 切换)
  • 协作空间(团队共享请求集合)
  • Postman 导入(一键迁移现有 .json)
  • OpenAPI / Swagger 导入
  • 测试用例 + 自动化测试

3.4 与 Postman 对比

维度HoppscotchPostman
体积几十 MB几百 MB
启动速度< 1 秒5-10 秒
团队协作开源自托管收费
客户端Web(也可装 PWA)独立客户端
协议支持REST / GraphQL / WS / SSE全部
Mock 服务器收费
自动化测试

企业内网推荐 Hoppscotch——避免 Postman 把 API 文档同步到 Postman 服务器(数据合规问题)。

四、典型坑位

4.1 WordPress 上传文件 413

症状:上传大于 2MB 的图片失败。

修复:三处都要调

Nginx

1
client_max_body_size 100m;

PHP(在 wp-config.php 之前):

1
2
3
@ini_set('upload_max_size', '100M');
@ini_set('post_max_size', '100M');
@ini_set('max_execution_time', '300');

WordPress 后台设置 → 媒体 → 大小 改到合适。

4.2 WVP 摄像头显示离线

排查清单

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 1. 摄像头能否 ping 通公网 IP
ping 203.0.113.10

# 2. 5060 端口是否开放
nc -zv 203.0.113.10 5060

# 3. 容器日志
docker logs -f wvp

# 4. ZLM 状态
curl http://localhost:9980/index/api/getServerConfig

4.3 Hoppscotch WebSocket 测试断连

修复:用 wss://(加密)而非 ws://生产 WebSocket 都应该是 wss

五、安全合规清单

工具风险加固建议
WordPress暴力破解 / 0day 漏洞强密码 + 2FA + WAF + 自动更新
WVP默认弱口令 admin/admin首次登录必改密码 + 限定内网访问
HoppscotchAPI 凭据泄露强制登录 + 团队权限 + 凭据加密存储

六、备份策略

1
2
3
4
5
6
7
8
# 1. WordPress 全量备份(crontab 每天 3 点)
0 3 * * * /usr/local/bin/wp_backup.sh

# 2. WVP 配置备份
0 4 * * * tar czf /backup/wvp-$(date +\%Y\%m\%d).tar.gz /data/wvp/

# 3. Hoppscotch 数据库备份
0 5 * * * docker exec hoppscotch-db pg_dump -U hopp hopp > /backup/hopp-$(date +\%Y\%m\%d).sql

2024+ 视角补充

本文写于 2022-11,2024-2026 期间 WordPress / WVP / Hoppscotch 三个工具的演进:

  • WordPress 6.5+(2024-04)/ 6.6(2024-07):全站编辑(Full Site Editing)成熟字体 APIBlock Theme 主流——传统 PHP 主题模式逐步被块主题取代
  • WVP 4.7+(2024-08):GB/T 28181-2022 国标全面支持、国密算法AI 事件检测
  • Hoppscotch 2024+:已从单仓库拆分为 hoppscotch / hoppscotch-backend / hoppscotch-k8s——企业版商业化(hoppscotch-enterprise),自托管社区版仍 100% 开源
  • Postman 2024+:**本地化协作(Postman Offline)**已 GA;AI 助手 Postman AI(生成测试用例)商业化
  • Insomnia 9.x(2024-2026):开源 API 客户端,GraphQL / gRPC / WebSocket 全协议插件市场完善
  • Bruno 1.x(2023-2025):“Postman 杀手”——纯本地文件存储(.git 友好)、离线优先开源免费
  • HTTPie 3.x:CLI API 客户端,2024 仍是命令行党首选

实战建议(2025-2026 视角)

  • WordPress 6.6+ + PHP 8.3 + MariaDB 11 是 2025+ 稳态组合
  • WVP 4.7+ 是 2024+ GB28181 开源首选
  • API 工具选型
    • 团队协作 + 云同步 → Postman / Hoppscotch
    • Git 友好 + 离线Bruno(新项目首选)
    • CLI 党 → HTTPie
    • GraphQL / gRPC 重度 → Insomnia

下一步

使用 Hugo 构建
主题 StackJimmy 设计