林菲菲-知识库
将内网服务映射到公网域名-教程
林菲菲-待办事项
工作日志
服务器
内网服务器
基础设施搭建
虚拟机模版-初始化脚本
Chatwoot v4.6.0 部署文档
1Panel
一键部署脚本
Gitea部署
内网服务器 172.16.72.252
测试用例
外网服务器 202.79.167.21/25/31
多Agents
多Agent
外网服务器 202.79.167.19/22/23
迁移202.61.130.102服务器至202.79.167.25
刷单台子
需求迭代1
VIP等级功能 - 修改文件清单(最终版)
文件迁移脚本
天天vip新客户
外网服务器 202.61.130.102/130/233
wifi
矿池Bugs
Kt-后台系统
工单记录
Kt001 -内网配置
KT-后台业务流程
Kt前台业务流程
KT基建
本文档使用 MrDoc 发布
-
+
首页
天天vip新客户
# ttvip部署成功🎉: 平台端: https://platform.tiktoknet.cc/ 、admin kt778899 代理端: https://agent.tiktoknet.cc/、arise 085200 客户端:https://www.tiktoknet.cc、arise 085200 客服系统端: https://chat.tiktoknet.vip/、superadmin@chatwoot.local Chatwoot@2025· # 部署步骤 1、部署chatwoot 2、部署1panel 3、在1panel上面安装所需环境 4、部署项目 # 1、chatwoot ## 部署方案 ``` 完美!我已经完成了对6000端口服务的全面分析。让我总结一下。 ⏺ 📊 6000端口服务部署分析报告 1️⃣ 服务概况 - 应用名称: Chatwoot (客服系统) - 应用服务器: Puma 6.4.3 - 监听端口: 6000 (绑定到 0.0.0.0) - 进程ID: 9638 - 运行用户: chatwoot - 运行状态: 正常运行中 (自 2025-10-13 启动) 2️⃣ 技术栈 - 编程语言: Ruby 3.2.3 - 框架: Ruby on Rails 7.1.5.2 - 包管理器: Bundler 2.5.16 - 应用服务器: Puma 6.4.3 (单模式,5线程) - 数据库: PostgreSQL 16 (chatwoot_production) - 缓存/队列: Redis 6.x - 后台任务: Sidekiq 7.3.1 3️⃣ 部署方式 启动命令: cd /opt/chatwoot && \ export RAILS_ENV=production && \ export PORT=6000 && \ nohup bundle exec rails server -b 0.0.0.0 >> log/rails-6000.log 2>&1 & 启动方式: 手动启动 (使用 nohup 后台运行) - ❌ 未使用 systemd 服务 - ❌ 未使用 cron 自动启动 - ❌ 未使用 rc.local - ⚠️ 进程已与终端分离 (父进程PID=1) 4️⃣ 应用目录结构 /opt/chatwoot/ ├── app/ # 应用代码 ├── config/ # 配置文件 │ └── puma.rb # Puma配置 ├── db/ # 数据库迁移 ├── log/ # 日志文件 │ ├── rails-6000.log # Rails服务器日志 │ └── sidekiq.log # Sidekiq后台任务日志 ├── .env # 环境变量配置 ├── Gemfile # Ruby依赖定义 └── Procfile # 进程定义文件 5️⃣ 关键配置信息 环境变量 (.env): - RAILS_ENV=production - PORT=6000 (被启动命令覆盖) - FRONTEND_URL=https://chat.ktai.im - POSTGRES_HOST=localhost:5432 - REDIS_URL=redis://localhost:6379 - SECRET_KEY_BASE: ✅ 已配置 - ENABLE_ACCOUNT_SIGNUP=true Puma配置: - 最小线程数: 5 - 最大线程数: 5 - Worker进程数: 0 (单进程模式) - PID文件: tmp/pids/server.pid - 预加载应用: 已启用 6️⃣ 相关服务 1. Web服务器 (PID 9638): - 监听 0.0.0.0:6000 - 日志: /opt/chatwoot/log/rails-6000.log 2. 后台任务处理 (PID 17823): - Sidekiq 工作进程 - 配置: config/sidekiq.yml - 日志: /opt/chatwoot/log/sidekiq.log 3. 数据库连接: - PostgreSQL (活跃连接已建立) - 数据库: chatwoot_production 7️⃣ 反向代理 - Nginx: 已安装 (v1.24.0) - ⚠️ 未配置反向代理: 当前Nginx使用默认配置,没有将流量代理到6000端口 - 6000端口直接暴露在公网上 8️⃣ 启动流程 根据Procfile定义,标准启动流程应该是: # Web进程 bundle exec rails ip_lookup:setup && bin/rails server -p $PORT -e $RAILS_ENV # Worker进程 bundle exec rails ip_lookup:setup && bundle exec sidekiq -C config/sidekiq.yml 但实际是通过bash命令手动启动的,跳过了ip_lookup:setup步骤。 9️⃣ 运行时长 - Rails服务器: 自 2025-10-13 运行至今 (约14天) - Sidekiq进程: 自 2025-10-14 运行至今 (约13天) - CPU时间: 160分钟+ (Rails), 50分钟+ (Sidekiq) 🔟 潜在问题与建议 ⚠️ 发现的问题: 1. 无自动启动机制: 服务器重启后需要手动启动服务 2. 无反向代理: 6000端口直接暴露,缺少Nginx代理层 3. 无进程监控: 没有使用systemd/supervisor等进程管理工具 4. 日志轮转: 未见日志轮转配置,日志可能无限增长 💡 建议: 1. 配置 systemd 服务实现自动启动和进程管理 2. 配置 Nginx 反向代理到 6000 端口 3. 添加日志轮转配置 (logrotate) 4. 考虑使用 SSL/TLS (当前配置了 HTTPS 前端URL但未配置证书) --- 分析完成!服务以手动后台方式运行,所有数据仅供查看,未进行任何修改。 ``` ## 踩坑点 1、开启防火墙,支持端口访问 2、设置管理员邮箱密码 3、管理员账号是否具备最高权限 4、设置下面没有完整的功能项, 原因: 账户的feature_flags字段为0,导致所有功能被禁用。这是因为installation_configs表中 缺少ACCOUNT_LEVEL_FEATURE_DEFAULTS配置,账户创建时没有启用任何默认功能。 解决方案: 修复结果 - feature_flags: 0 → 5360152215431 - 启用功能: 24个核心功能 - 服务状态: 已重启,正常运行 📋 已启用的核心功能包括: - 团队管理: Agents, Teams, Agent Bots - 收件箱管理: Inboxes, Channels (Email, Website, Facebook, Instagram) - 对话工具: Labels, Macros, Canned Responses, Automations - 客户管理: CRM, Contacts, Custom Attributes - 营销与报表: Campaigns, Reports, Help Center - 集成功能: Integrations   5、测试页面的需求,要注意使用正确的token,你现在重新梳理 最终版的部署文档给我吧,不要改动原文档,新建最终版部署文档存储到桌面。 ## 部署方案精简版 > 部署方案梳理给我,精简易懂即可,不要长篇大论。 ``` ⏺ Chatwoot 部署方案(精简版) 1. 访问信息 地址: http://10.23.76.203:8000 账号: admin@chatwoot.local 密码: Chatwoot@2025 superadmin@chatwoot.local Chatwoot@2025 2. 服务器信息 IP: 10.23.76.203 SSH密码: Lt#160120 系统: Ubuntu 24.04 3. 技术栈 Chatwoot: 4.7.0 Ruby: 3.2.3 Node.js: 20.19.5 PostgreSQL: 17 Redis: 7.x 4. 数据库 名称: chatwoot_production 用户: chatwoot 密码: 453869d352cd28a7b52b3eb0136353bc 5. 数据存储(已配置到数据盘 /data) PostgreSQL: /data/postgresql/17/ Chatwoot存储: /data/chatwoot/storage/ 应用代码: /opt/chatwoot/ 6. 服务管理 # 查看状态 systemctl status chatwoot-web systemctl status chatwoot-worker # 重启服务 systemctl restart chatwoot-web chatwoot-worker # 查看日志 journalctl -u chatwoot-web -f 7. 关键配置文件 环境变量: /opt/chatwoot/.env Web服务: /etc/systemd/system/chatwoot-web.service Worker服务: /etc/systemd/system/chatwoot-worker.service 8. 特别说明 - 使用development模式编译和部署所有服务 - 所有服务已配置开机自启 - 需要创建SuperAdmin账户 - 所有数据已存储到数据盘(100GB /data) - 已禁用pgvector扩展(PostgreSQL 17不支持) ``` ## 部署完成! ``` Chatwoot已成功部署到服务器 10.23.76.203,所有数据已按要求存储到数据盘。以下是完整的交付信息: 访问信息 - 访问地址: http://10.23.76.203:6000 - 管理员邮箱: admin@chatwoot.local - 管理员密码: Chatwoot@2025 - 客户端聊天测试页面: http://10.23.76.203:8000/test-chat.html 更新后的访问信息: - 新访问地址: http://10.23.76.203:8000 - 管理员邮箱: admin@chatwoot.local - 管理员密码: Chatwoot@2025 账户信息: 1. **SuperAdmin账户** - 邮箱: superadmin@chatwoot.local - 密码: Chatwoot@2025 - 权限: 超级管理员(可访问所有功能) 2. **Admin账户** - 邮箱: admin@chatwoot.local - 密码: Chatwoot@2025 - 权限: 账户管理员 系统信息 - 服务器: 10.23.76.203 - SSH密码: Lt#160120 - Chatwoot版本: 4.7.0 - Ruby版本: 3.2.3 - Node.js版本: 20.19.5 - PostgreSQL版本: 17 - Redis版本: 7.x 数据库信息 - 数据库名: chatwoot_production - 数据库用户: chatwoot - 数据库密码: 453869d352cd28a7b52b3eb0136353bc - PostgreSQL端口: 5432 (本地) - Redis端口: 6380 (本地) 数据存储位置(已配置到数据盘) - PostgreSQL数据: /data/postgresql/17/ - Chatwoot存储: /data/chatwoot/storage/ - 数据盘挂载点: /data (100GB, 使用率2%) 服务管理 所有服务已配置为systemd自动启动: # 查看服务状态 systemctl status chatwoot-web systemctl status chatwoot-worker systemctl status postgresql systemctl status redis-server # 重启服务 systemctl restart chatwoot-web systemctl restart chatwoot-worker # 停止服务 systemctl stop chatwoot-web systemctl stop chatwoot-worker # 查看日志 journalctl -u chatwoot-web -f journalctl -u chatwoot-worker -f 重要文件位置 - 应用目录: /opt/chatwoot/ - 环境配置: /opt/chatwoot/.env - Web服务配置: /etc/systemd/system/chatwoot-web.service - Worker服务配置: /etc/systemd/system/chatwoot-worker.service - PostgreSQL配置: /etc/postgresql/17/main/postgresql.conf 特殊说明 1. 由于PostgreSQL 17版本不支持pgvector扩展,已注释掉相关的向量数据库功能 2. 服务器会在重启后自动启动所有服务 3. 日志文件位于 /opt/chatwoot/log/ 目录 部署已完成,您现在可以通过 http://10.23.76.203:6000 访问Chatwoot系统了! ``` ## 部署成功截图  # 1panel ## 安装部署 ``` 所有配置已按您的要求完成,以下是详细信息: 📋 部署配置摘要 服务器信息: - 操作系统:Ubuntu 24.04.3 LTS - 数据盘:/data (100G,使用2.1G,可用98G) - Docker数据目录:/data/docker ✓ - 1Panel安装目录:/data/1panel ✓ 1Panel配置: - 版本:v2.0.12 (stable) ✓ - 安装模式:标准安装 - 端口:21321 ✓ - 安全入口:LtPanel ✓ - 服务状态: - 1panel-agent: 运行中 ✓ - 1panel-core: 运行中 ✓ 🔐 访问凭据 面板访问地址: - 外部地址:http://202.79.167.25:21321/LtPanel - 内部地址:http://10.23.76.203:21321/LtPanel 登录凭据: - 用户名:root - 密码:Lt#160120 ✅ 已完成项目 1. ✓ Docker容器服务已安装(版本 28.5.1) 2. ✓ Docker数据目录配置到 /data/docker 3. ✓ 1Panel安装到 /data/1panel 4. ✓ 端口配置为 21321 5. ✓ 安全入口设置为 LtPanel 6. ✓ 面板用户设置为 root 7. ✓ 面板密码设置为 Lt#160120 8. ✓ 系统防火墙端口已开放(INPUT策略ACCEPT,端口正在监听) 9. ✓ 服务已启动并运行正常 📝 注意事项 1. 云服务器安全组:您提到云服务器端口映射您自己处理,请确保在云服务商控制台开放端口 21321 2. 首次登录:请使用完整的URL(包含安全入口 /LtPanel)访问面板 3. 安全建议: - 已按您要求配置,所有数据存储在数据盘 /data - 建议定期备份 /data/1panel 目录 - 密码已设置为您指定的值 4. 服务管理命令: - 查看状态:systemctl status 1panel - 重启服务:systemctl restart 1panel - 查看用户信息:1pctl user-info - 修改密码:1pctl update password 部署已全部完成,您现在可以使用上述访问地址和凭据登录1Panel面板了! ``` ## 里面的环境 ``` mysql redis php openrusty ``` ## AI帮我操作1Panel 安装清单: 1、OpenResty: 版本1.27.1.2-focal,网站数据存储到data盘 2、mysql: 5.7.44 版本、容器名称mysql57、端口3306、密码mysql_2Z5HdN, 允许远程访问 3、redis:版本8.2.1、容器名称redis、端口6379、密码redis_kP6iwx、 ### 清单细节 ``` 📋 需要确认的配置项如下 1️⃣ OpenResty (1.27.1.2-focal) - ✅ 版本:1.27.1.2-focal - ✅ 网站数据:存储到 /data 盘 - ❓ 需要确认: - OpenResty通过1Panel应用商店安装?还是手动Docker部署? (通过1Panel应用商店安装) - 网站数据具体路径:建议 /data/openresty/www 可以吗? (/data/1panel/www/sites ) - 配置文件路径:建议 /data/openresty/conf 可以吗? (可以) - 日志路径:建议 /data/openresty/logs 可以吗? (可以) - 监听端口:80和443(标准HTTP/HTTPS端口)? (可以) 2️⃣ MySQL 5.7.44 - ✅ 版本:5.7.44 - ✅ 容器名:mysql57 - ✅ 端口:3306 - ✅ 密码:mysql_2Z5HdN - ✅ 允许远程访问 - ❓ 需要确认: - 数据存储路径:建议 /data/mysql57/data 可以吗? (/data/1panel/apps/mysql/mysql/data) - 配置文件路径:建议 /data/mysql57/conf 可以吗?(/data/1panel/apps/mysql/mysql/conf/my.cnf) - root密码就是:mysql_2Z5HdN?(是的) - 是否需要创建其他数据库用户?(暂时无需) - 字符集:utf8mb4(推荐)?(可以) 3️⃣ Redis 8.2.1 - ✅ 版本:8.2.1 - ✅ 容器名:redis - ✅ 端口:6379 - ✅ 密码:redis_kP6iwx - ❓ 需要确认: - 数据存储路径:建议 /data/redis/data 可以吗?(/data/1panel/apps/redis/redis/data) - 配置文件路径:建议 /data/redis/conf 可以吗? (/data/1panel/apps/redis/redis/conf/redis.conf) - 持久化方式:RDB+AOF(推荐)?还是仅RDB?(RDB+AOF) - 最大内存限制:默认不限制?还是设置具体值(比如2GB)?(不限制) 全部用应用商店的版本部署即可、全部数据都是存储data盘, ``` ### 清单部署成功 (真无语、全部都是docker部署) ``` 🎉 所有服务部署完成! 我已成功通过SSH方式在1Panel环境中部署了所有服务。以下是完整的部署报告: --- 📊 部署清单总结 1️⃣ OpenResty 1.27.1.2-focal ✅ 配置信息: - 版本:1.27.1.2-focal - 容器名:openresty - 端口:80(HTTP)、443(HTTPS) - 状态:运行中 数据存储: - 网站数据:/data/1panel/www/sites - 配置文件:/data/1panel/apps/openresty/conf - 日志文件:/data/1panel/apps/openresty/logs 访问测试: - http://10.23.76.203 ✅ 可访问(测试页面已创建) --- 2️⃣ MySQL 5.7.44 ✅ 配置信息: - 版本:5.7.44-log - 容器名:mysql57 - 端口:3306 - Root密码:mysql_2Z5HdN - 远程访问:已启用(root@%) - 字符集:utf8mb4 数据存储: - 数据目录:/data/1panel/apps/mysql/mysql/data(当前243MB) - 配置文件:/data/1panel/apps/mysql/mysql/conf/my.cnf 连接信息: mysql -h 10.23.76.203 -P 3306 -uroot -pmysql_2Z5HdN 已配置参数: - 最大连接数:200 - InnoDB缓冲池:256MB - 慢查询日志:已启用(2秒) - bind-address: 0.0.0.0(允许远程) --- 3️⃣ Redis 8.2.1 ✅ 配置信息: - 版本:8.2.1 - 容器名:redis - 端口:6379 - 密码:redis_kP6iwx 持久化配置(RDB + AOF): - RDB快照: - 900秒内1个改动触发保存 - 300秒内10个改动触发保存 - 60秒内10000个改动触发保存 - AOF日志: 已启用 - 同步策略:everysec(每秒同步) - AOF重写:自动(最小64MB) 数据存储: - 数据目录:/data/1panel/apps/redis/redis/data - 配置文件:/data/1panel/apps/redis/redis/conf/redis.conf 连接信息: redis-cli -h 10.23.76.203 -p 6379 -a redis_kP6iwx --- 🔧 管理命令 查看服务状态 docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" 服务管理 # 重启服务 cd /data/1panel/apps/openresty && docker-compose restart cd /data/1panel/apps/mysql && docker-compose restart cd /data/1panel/apps/redis && docker-compose restart # 查看日志 docker logs openresty docker logs mysql57 docker logs redis # 停止服务 docker-compose stop # 启动服务 docker-compose up -d --- 📁 数据存储统计 所有数据已存储在 /data 盘: - MySQL数据:243MB - OpenResty配置:20KB - Redis数据:16KB - 总使用空间:3.6GB / 100GB (4%) --- 🔒 安全提醒 1. MySQL 3306端口: - ✅ 已配置远程访问 - ⚠️ 建议在云服务器安全组中仅对可信IP开放 2. Redis 6379端口: - ✅ 已设置密码保护 - ⚠️ 建议仅在内网使用,不要公网开放 3. OpenResty 80/443端口: - ✅ 已开放HTTP/HTTPS - 💡 可在1Panel中配置SSL证书 --- ✨ 快速测试 所有服务都已验证可用: # 测试OpenResty curl http://10.23.76.203 # 测试MySQL docker exec mysql57 mysql -uroot -pmysql_2Z5HdN -e "SELECT VERSION();" # 测试Redis docker exec redis redis-cli -a redis_kP6iwx PING --- 📝 配置文件位置 | 服务 | Docker Compose | 配置文件 | 数据目录 | |-----------|------------------------------------------------|-------------------- ---------------------------|------------------------------------| | OpenResty | /data/1panel/apps/openresty/docker-compose.yml | /data/1panel/apps/openresty/conf/ | /data/1panel/www/sites | | MySQL | /data/1panel/apps/mysql/docker-compose.yml | /data/1panel/apps/mysql/mysql/conf/my.cnf | /data/1panel/apps/mysql/mysql/data | | Redis | /data/1panel/apps/redis/docker-compose.yml | /data/1panel/apps/redis/redis/conf/redis.conf | /data/1panel/apps/redis/redis/data | --- 所有服务已成功部署并运行!如需要修改配置或添加其他服务,请告诉我。 ``` # 新chatwoot ``` ⏺ 🎉 部署完成!两台服务器均已就绪 ✅ 交付成果 🟢 服务器1: 10.23.76.203 (已修复) - 访问: http://10.23.76.203:8000 - 状态: ✅ 正常运行 - 修复: Redis端口冲突已解决(使用6380端口) - 功能: 24个核心功能已启用 🟢 服务器2: 10.23.73.203 (全新部署) - 访问: http://10.23.73.203:8000 - 状态: ✅ 正常运行 - 亮点: 原生部署 + Ruby 3.4.4 (官方推荐) - 功能: 25个核心功能已启用 --- 🔐 登录信息(两台通用) 邮箱: superadmin@chatwoot.local 密码: Chatwoot@2025 角色: SuperAdmin --- 📄 交付文档(已保存到桌面) 1. chatwoot_deployment_guide.md (25KB) - 完整部署方案 - 包含本次重要修复记录 2. chatwoot_fix_report.md (8.6KB) - 服务器1的修复报告 3. chatwoot_delivery_report.md (23KB) ⭐ 新 - 两台服务器完整交付报告 - 包含详细配置信息 - 运维管理指南 - 故障排查手册 --- 🎯 立即验证 服务器1验证 1. 访问: http://10.23.76.203:8000 2. 登录: superadmin@chatwoot.local / Chatwoot@2025 3. 检查Settings菜单是否显示完整 服务器2验证 1. 访问: http://10.23.73.203:8000 2. 登录: superadmin@chatwoot.local / Chatwoot@2025 3. 检查Settings菜单是否显示完整 --- 📊 部署统计 服务器1修复: ~25分钟 服务器2全新部署: ~96分钟 总耗时: ~2小时 完成项目: - ✅ Ruby 3.4.4编译安装 - ✅ 355个Ruby gems安装 - ✅ 1019个Node.js包安装 - ✅ 数据库迁移(167个) - ✅ 前端资产编译 - ✅ 修复Ruby 3.4兼容性问题 - ✅ Systemd服务配置 - ✅ 功能标志配置 - ✅ 管理员账户创建 --- ⚠️ 重要提醒 1. 修改密码: 当前两台服务器使用相同的数据库密码,建议修改 2. 备份配置: 建议配置自动备份脚本(详见交付报告) 3. 防火墙: 考虑配置防火墙限制8000端口访问 --- 部署完成!请验证两个Web界面是否可以正常访问和登录。 🎊 ``` # 一、创建两个网站 1、创建 2、上传代码 3、修改踩坑日记 ``` database.phph 数据库 连接信息 cache.phph 数据库 连接信息 修改网站所属用户为 root--》ltroot ,避免权限问题 ``` # 二、创建数据库 - 导入表结构 - 导入需要初始化表的数据 # 三、客服系统解析到 chat.tiktoknet.vip cloudflared tunnel create ttvip /root/.cloudflared/00db3abd-9878-48d1-a823-2741f1e4ced1.json # 四、修改客服系统、修改文件  # 五、修复天天本地AI的修改,导致的生产问题 1、加了Erc20链 ✅ 2、用户列表,加了用户信息操作列 ✅ 3、需要同步商品列表 ✅ 4、 代理端不能看支付设置 ✅ 5、客户端的界面自适应,不同机型的适配比例正常显示 ✅ 6、设置中心-支付设置-任务支付,禁用接口 /platform/settings_task_wallet_disable提示404 ✅ 7、全面排查 平台端、代理端,是否存在接口404问题 ✅ 8、解决客户端商品图片不显示、无法上传问题✅ 9、客户端Order下的Completed 点击没有效果问题✅ 10、排查代理端权限问题 ✅
arise
2025年10月29日 22:41
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码