# script
**Repository Path**: jun-wan/script
## Basic Information
- **Project Name**: script
- **Description**: 一些可能能够用到的脚本
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://tvemixy.fun/
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-10-28
- **Last Updated**: 2026-02-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Bash, Powershell
## README
# 脚本集合
本仓库包含多个实用脚本,帮助简化 Linux 系统管理和配置工作。
## 目录
| 序号 | 名称 | 简介作用 | 在线执行 |
|------|------|----------|----------|
| 1 | [KWRT 软件源配置脚本](#1-kwrt-软件源配置脚本) | 自动配置 KWRT OpenWrt 官方软件源 | [执行](#在线直接执行) |
| 2 | [Wi-Fi 限速管理脚本](#2-wi-fi-限速管理脚本) | 管理 Wi-Fi 设备的限速规则 | [执行](#脚本菜单说明) |
| 3 | [Swap 分区自动配置脚本](#3-swap-分区自动配置脚本) | 一键创建512MB swap 分区 | [执行](#在线直接执行-1) |
| 4 | [虚拟内存交互管理脚本](#4-虚拟内存交互管理脚本) | 交互式虚拟内存管理工具,支持自定义位置和大小 | [执行](#4-虚拟内存交互管理脚本) |
| 5 | [Docker 完全清理脚本](#5-docker-完全清理脚本) | 清空所有 Docker 数据恢复初始状态 | [执行](#在线直接执行推荐) |
| 6 | [AstrBot 一键部署脚本](#6-astrbot-一键部署脚本) | 跨平台一键部署 AstrBot Docker 容器 | [执行](#在线直接执行推荐-2) |
| 7 | [玩客云 Armbian 初始化脚本](#7-玩客云-armbian-初始化脚本) | 一键初始化玩客云 Armbian 系统 | [执行](#在线直接执行-2) |
| 8 | [RK3566 FnOS ARM 一键管理工具](#8-rk3566-fnos-arm-一键管理工具) | 三系统切换、系统升级、LED 控制 | [执行](#在线直接执行-3) |
| 9 | [Docker 端口冲突修复脚本](#9-docker-端口冲突修复脚本) | 修复 Windows Docker 端口绑定失败 | [执行](#在线直接执行-4) |
| 10 | [Docker Engine 安装脚本](#10-docker-engine-安装脚本) | 一键安装 Docker Engine 及相关组件 | [执行](#在线直接执行-5) |
| 11 | [斐讯 N1 飞牛 NAS WIFI 固件安装脚本](#11-斐讯-n1-飞牛-nas-wifi-固件安装脚本) | 为斐讯 N1 安装的飞牛 NAS 安装 WIFI 驱动固件 | [执行](#在线直接执行-6) |
| 12 | [Miloco 获取设备ID脚本](#12-miloco-获取设备id脚本) | 小米摄像头控制中心一键部署,获取设备 ID | [执行](#快速部署) |
| 13 | [Micam 一键部署脚本](#13-micam-一键部署脚本) | 小米摄像头 RTSP 桥接服务一键部署到 NAS | [执行](#快速部署) |
| 14 | [Chatwoot Docker 一键部署脚本](#14-chatwoot-docker-一键部署脚本) | 开源客服系统 Chatwoot 一键部署到服务器 | [执行](#在线直接执行-7) |
| 15 | [SSH Known Hosts 清理脚本](#15-ssh-known-hosts-清理脚本) | 快捷清除 Windows SSH 的 known_hosts 记录 | [执行](#在线直接执行-8) |
| 16 | [Bolo 博客一键部署脚本](#bolo-blog-deploy) | 一键部署 Bolo 博客系统和 MySQL 数据库 | [执行](#bolo-blog-deploy) |
| 17 | [TDuck 表单系统一键部署脚本](#17-tduck-表单系统一键部署脚本) | 一键部署 TDuck 表单系统和 MySQL 数据库 | [执行](#17-tduck-表单系统一键部署脚本) |
---
## 1. KWRT 软件源配置脚本
自动配置 KWRT OpenWrt 官方软件源,适用于 24.10 版本(MediaTek Filogic / aarch64_cortex-a53)。
### 在线直接执行
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/kwrt/update_opkg_feeds.sh | bash
```
脚本会自动执行以下操作:
1. 自动备份现有的 `/etc/opkg/distfeeds.conf` 配置文件(带时间戳)
2. 将软件源更新为 KWRT 官方镜像源 (dl.openwrt.ai)
3. 配置以下软件源:
- kwrt_core (核心系统包)
- kwrt_base (基础软件包)
- kwrt_packages (扩展软件包)
- kwrt_luci (LuCI 界面)
- kwrt_routing (路由相关)
- kwrt_kiddin9 (第三方软件包)
4. 可选择是否立即更新软件包列表
### 注意事项
- 需要使用 root 权限运行
- 原配置文件会自动备份到 `/etc/opkg/distfeeds.conf.bak.时间戳`
- 执行后可使用 `opkg update` 更新软件包列表
---
## 2. Wi-Fi 限速管理脚本
先下载脚本再执行,避免管道执行导致的交互问题:
```bash
wget -O wifi_ip_limit.sh https://gitee.com/jun-wan/script/raw/master/ip-limit/wifi_ip_limit.sh
```
授权执行权限:
```shell
chmod +x wifi_ip_limit.sh
```
执行脚本:
```
./wifi_ip_limit.sh
```
脚本会自动检查:
- `ip` 命令是否存在,如果没有,会提示安装 `ip-full`。
- `tc` 命令是否存在,如果没有,会提示是否安装 `tc-full` 并自动安装。
### 脚本菜单说明
执行脚本后,会看到菜单:
```
-----------------------------
KWRT Wi-Fi 限速管理
1) 添加限速
2) 删除所有限速
3) 查看限速规则
4) 退出
-----------------------------
```
---
## 3. Swap 分区自动配置脚本
一键创建 512MB swap,开机自动启用,并配置 swappiness 参数为 10。
### 在线直接执行
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/swap/auto_setup_swap.sh | sudo bash
```
执行脚本后,您将看到如下输出:
```
root@4G-wifi:/# curl -fsSL https://gitee.com/jun-wan/script/raw/master/swap/auto_setup_swap.sh | sudo bash
[1/10] 停用已有 swap(如果有)
[2/10] 删除已有 swap 文件(如果存在)
[3/10] 创建 512M swap 文件
[4/10] 设置权限
[5/10] 格式化 swap
Setting up swapspace version 1, size = 512 MiB (536866816 bytes)
no label, UUID=8a600c4b-e9e6-4cc4-bb14-389761db33d0
[6/10] 启用 swap
[7/10] 配置开机自动挂载
[8/10] 设置 swappiness 为 10
vm.swappiness = 10
[9/10] 查看当前 swap 状态
total used free shared buff/cache available
内存: 371Mi 145Mi 5.7Mi 1.3Mi 230Mi 225Mi
交换: 511Mi 0B 511Mi
Filename Type Size Used Priority
/swapfile file 524284 0 -2
[10/10] 验证 swappiness 设置是否生效
10
[10/10] 完成!系统已配置 512MB swap,开机自动启用,并设置 swappiness=10。
root@4G-wifi:/#
```
---
## 4. 虚拟内存交互管理脚本
交互式虚拟内存管理工具,支持启用、删除虚拟内存,可以选择创建位置和设置大小(单位G),自动配置持久化并提供安全的启用/禁用机制。
### 快速部署
#### 一键在线部署(推荐)
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/swap-manager/virtual_memory_manager.sh -o /tmp/virtual_memory_manager.sh && chmod +x /tmp/virtual_memory_manager.sh && sudo /tmp/virtual_memory_manager.sh
```
### 部署前置要求
在运行脚本前,请确保满足以下条件:
1. **系统要求**:Linux 系统(Ubuntu/Debian/CentOS 等)
2. **权限要求**:需要 root 权限运行
3. **存储空间**:确保目标位置有足够的磁盘空间
### 脚本功能
脚本会自动执行以下操作:
1. **显示 Banner** - 显示脚本版本信息和作者
2. **权限检查** - 自动检查是否以 root 权限运行
3. **交互式菜单** - 提供启用、删除、查看状态等选项
4. **选择创建位置** - 允许用户选择虚拟内存文件创建位置
5. **设置虚拟内存大小** - 以 GB 为单位设置虚拟内存大小
6. **创建虚拟内存** - 按照标准流程创建虚拟内存文件
7. **启用虚拟内存** - 启用并配置持久化
8. **显示状态** - 显示当前虚拟内存使用情况
### 脚本特点
- ✨ **交互式界面** - 友好的中文交互界面,逐步引导配置
- ✨ **位置选择** - 支持自定义虚拟内存文件创建位置
- ✨ **大小设置** - 以 GB 为单位灵活设置虚拟内存大小
- ✨ **安全创建** - 按照标准流程创建(touch → chattr → dd → chmod → mkswap → swapon)
- ✨ **持久化配置** - 自动添加到 /etc/fstab 确保重启后仍然有效
- ✨ **彩色输出** - 清晰的步骤提示和状态显示
- ✨ **安全机制** - 提供启用/禁用的安全机制
- ✨ **状态监控** - 实时显示虚拟内存使用情况
### 访问虚拟内存管理
部署完成后,可以使用以下命令管理虚拟内存:
```bash
# 运行虚拟内存管理脚本
sudo /path/to/virtual_memory_manager.sh
# 查看当前虚拟内存状态
free -h | grep -i swap
# 手动查看虚拟内存配置
swapon --show
```
### 常用管理命令
```bash
# 查看虚拟内存使用情况
free -h
# 查看当前激活的虚拟内存
swapon --show
# 手动启用虚拟内存文件
sudo swapon /path/to/swapfile
# 手动禁用虚拟内存文件
sudo swapoff /path/to/swapfile
```
### 注意事项
- ⚠️ **需要 root 权限** - 脚本需要使用 root 权限运行
- 🔒 **存储空间** - 确保目标位置有足够的磁盘空间
- 💾 **数据安全** - 创建虚拟内存会占用磁盘空间,请合理设置大小
- 🌐 **持久化配置** - 脚本会自动配置 /etc/fstab 以确保重启后仍然有效
- 🔐 **权限安全** - 虚拟内存文件会被设置为 600 权限以确保安全
### 卸载虚拟内存
如需删除虚拟内存:
1. 运行虚拟内存管理脚本并选择删除选项
2. 或手动执行:`sudo swapoff /path/to/swapfile` 停用虚拟内存
3. 手动删除虚拟内存文件:`sudo rm /path/to/swapfile`
4. 从 /etc/fstab 中删除对应配置行
---
## 5. Docker 完全清理脚本
一键清空所有 Docker 数据,将 Docker 恢复到初始状态。包括删除所有容器、镜像、网络和卷。
### Linux 版本
#### 在线直接执行(推荐)
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/linux-docker-clean/docker_clean_all.sh | bash -s -- -y
```
> **注意**:通过管道执行时必须加 `-y` 参数跳过交互式确认。
#### 本地执行
下载脚本:
```bash
wget https://gitee.com/jun-wan/script/raw/master/linux-docker-clean/docker_clean_all.sh
chmod +x docker_clean_all.sh
```
交互式执行(会要求输入 yes 确认):
```bash
./docker_clean_all.sh
```
或跳过确认直接执行:
```bash
./docker_clean_all.sh -y
```
### Windows 版本
#### 在线直接执行(推荐)
在 PowerShell 中执行:
```powershell
irm https://gitee.com/jun-wan/script/raw/master/windows-docker-clean/docker_clean_all.ps1 | iex
```
#### 本地执行
下载脚本:
```powershell
Invoke-WebRequest -Uri https://gitee.com/jun-wan/script/raw/master/windows-docker-clean/docker_clean_all.ps1 -OutFile docker_clean_all.ps1
```
执行脚本:
```powershell
.\docker_clean_all.ps1
```
查看帮助信息:
```powershell
.\docker_clean_all.ps1 -Help
```
### 脚本功能
脚本会按顺序执行以下操作:
1. **停止并删除所有容器** - 包括运行中和已停止的容器
2. **删除所有镜像** - 清空所有已下载的 Docker 镜像
3. **清理未使用的网络** - 删除自定义网络,保留默认网络
4. **删除所有卷** - 清空所有数据卷
5. **执行系统级清理** - 清理 Docker 系统缓存
### 脚本特点
- ✨ **中文界面** - 所有提示和日志均为中文
- ✨ **安全确认** - 交互模式需要输入 `yes` 确认
- ✨ **彩色输出** - 清晰区分不同类型的信息
- ✨ **详细统计** - 显示清理前后的资源数量和磁盘使用情况
- ✨ **管道支持** - 支持通过 curl 管道直接执行(需加 `-y` 参数)
### 执行示例
```bash
root@server:~# curl -fsSL https://gitee.com/jun-wan/script/raw/master/linux-docker-clean/docker_clean_all.sh | bash -s -- -y
╔════════════════════════════════════════════════════════╗
║ ║
║ Docker 完全清理脚本 v1.0 ║
║ ║
║ 本脚本将执行以下操作: ║
║ [1] 停止并删除所有容器(运行中 + 停止的) ║
║ [2] 删除所有镜像 ║
║ [3] 清理未使用的网络 ║
║ [4] 删除所有卷 ║
║ ║
║ ⚠️ 警告:此操作不可逆,将清空所有 Docker 数据! ║
║ ║
╚════════════════════════════════════════════════════════╝
✓ Docker 已安装
检测到 -y 参数,跳过确认直接执行
开始清理 Docker...
[步骤 1/4] 正在处理容器...
→ 发现 5 个容器
→ 正在停止所有运行中的容器...
→ 正在删除所有容器...
✓ 已删除 5 个容器
[步骤 2/4] 正在处理镜像...
→ 发现 10 个镜像
→ 正在删除所有镜像...
✓ 已删除 10 个镜像
[步骤 3/4] 正在清理网络...
→ 正在清理未使用的网络...
✓ 网络清理完成
[步骤 4/4] 正在处理卷...
→ 发现 3 个卷
→ 正在删除所有卷...
✓ 已删除 3 个卷
[额外清理] 正在执行系统级清理...
✓ 系统清理完成
╔════════════════════════════════════════╗
║ ║
║ 🎉 Docker 清理完成! ║
║ ║
║ Docker 已恢复到初始状态 ║
║ ║
╚════════════════════════════════════════╝
```
### 注意事项
- ⚠️ **警告**:此脚本会删除所有 Docker 数据,执行前请确保已备份重要数据
- 🔒 建议使用 root 权限或 sudo 执行
- 🌐 通过管道执行时必须添加 `-y` 参数
- 📊 清理后可以查看磁盘空间释放情况
### 使用参数
**Linux 版本:**
```bash
./docker_clean_all.sh -h # 显示帮助信息
./docker_clean_all.sh -y # 跳过确认直接执行
```
**Windows 版本:**
```powershell
.\docker_clean_all.ps1 -Help # 显示帮助信息
```
---
## 6. AstrBot 一键部署脚本
跨平台的 AstrBot Docker 容器一键部署脚本,自动完成目录创建、配置文件下载和容器启动。
### Windows 版本
#### 在线直接执行(推荐)
在 PowerShell 中执行:
```powershell
irm https://gitee.com/jun-wan/script/raw/master/astrbot/deploy_astrbot.ps1 | iex
```
#### 本地执行
下载脚本:
```powershell
Invoke-WebRequest -Uri https://gitee.com/jun-wan/script/raw/master/astrbot/deploy_astrbot.ps1 -OutFile deploy_astrbot.ps1
```
执行脚本:
```powershell
.\deploy_astrbot.ps1
```
### Linux/macOS 版本
#### 在线直接执行(推荐)
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/astrbot/deploy_astrbot.sh | bash
```
#### 本地执行
下载脚本:
```bash
wget https://gitee.com/jun-wan/script/raw/master/astrbot/deploy_astrbot.sh
chmod +x deploy_astrbot.sh
```
执行脚本:
```bash
./deploy_astrbot.sh
```
### 脚本功能
脚本会自动执行以下操作:
1. **检查依赖工具** - 自动检测 Docker 和下载工具(wget/curl)
2. **创建部署目录** - 自动创建 `astrbot` 目录
3. **下载配置文件** - 从 GitHub 下载 `astrbot.yml` 配置文件
4. **权限检测** - Linux 版本自动判断是否需要 sudo 权限
5. **启动容器** - 使用 Docker Compose 启动 AstrBot 服务
6. **操作提示** - 完成后提供查看状态、日志、停止服务等命令提示
### 脚本特点
- ✨ **跨平台支持** - 同时支持 Windows、Linux 和 macOS
- ✨ **自动检测** - 智能检测操作系统和所需工具
- ✨ **中文界面** - 所有提示信息均为中文
- ✨ **彩色输出** - 清晰的步骤提示和状态显示
- ✨ **完整错误处理** - 每个步骤都有错误检测和提示
- ✨ **智能权限** - Linux 版本自动判断是否需要 sudo
---
## 7. 玩客云 Armbian 初始化脚本
一键初始化玩客云 Armbian 系统,自动配置时区、国内镜像源并更新系统。
适用于 [armbian-onecloud](https://github.com/hzyitc/armbian-onecloud) 项目刷入的 Armbian Bookworm 系统。
### 在线直接执行
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/onecloud/armbian_init.sh | bash
```
脚本会自动执行以下操作:
1. 显示当前系统信息(主机名、CPU架构、内存、磁盘、IP等)
2. 设置时区为 `Asia/Shanghai`
3. 自动备份原有镜像源配置(带时间戳)
4. 配置国内镜像源(清华大学源)
5. 更新系统软件包
### 注意事项
- 需要使用 root 权限运行
- 默认登录信息:用户名 `root`,密码 `1234`
- 原配置文件会自动备份到 `/etc/apt/sources.list.bak.时间戳`
---
## 8. RK3566 FnOS ARM 一键管理工具
OEC/OECT RK3566 ARM 飞牛设备的一键脚本工具,提供三系统切换、系统升级、LED 控制、MAC 修改和热克隆功能。
### 在线直接执行
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/rk3566-fnos-arm-tools/xxfn-tool.sh -o /usr/local/bin/xxfn-tool && chmod +x /usr/local/bin/xxfn-tool && xxfn-tool
```
### 脚本功能
脚本提供以下核心功能:
1. **三系统切换管理** - 在 SATA 硬盘、USB 硬盘、eMMC 内置系统之间切换引导
2. **系统升级** - 从 .img 镜像文件刷入新系统到不同分区
3. **系统热克隆** - 将当前运行系统克隆到其他分区(支持 Btrfs 压缩)
4. **磁盘初始化** - 自动分区和格式化(GPT分区表,Btrfs + ext4)
5. **LED 灯控制** - 控制红绿蓝三色LED,支持持久化配置
6. **MAC 地址修改** - 修改网卡 MAC 地址
7. **Web 上传服务** - 提供 Python HTTP 文件上传服务(默认端口 5680)
### 脚本特点
- ✨ **三系统支持** - 支持 SATA、USB、eMMC 三种启动方式
- ✨ **热克隆技术** - 无需关机即可克隆系统到其他分区
- ✨ **智能分区** - 自动创建 GPT 分区表,支持自定义系统区大小
- ✨ **LED 持久化** - LED 灯效配置自动保存,重启后保持
- ✨ **Web 上传** - 内置 HTTP 文件上传服务,方便镜像文件上传
- ✨ **中文界面** - 所有提示信息均为中文
- ✨ **彩色输出** - 清晰的状态提示和操作反馈
- ✨ **安全检查** - 多重安全检查,防止误操作
### 使用示例
执行脚本后会看到交互式菜单:
```
================================================
xxfn-tool v2601021615 |
适用设备:FnOS ARM (OEC / OECT 等设备)
核心功能:三系统切换、系统升级、LED灯、MAC修改
脚本工具无任何依赖,干净纯净,可放心使用
================================================
当前运行: SATA 硬盘系统
下次启动: eMMC 内置系统
镜像目录: /vol1/1000/down
------------------------------------------------
飞牛固件最新版本: 258
```
### 注意事项
- ⚠️ **警告**:系统克隆和升级操作会覆盖目标分区数据,请提前备份
- 🔒 需要使用 root 权限运行
- 💾 镜像文件默认目录:`/vol1/1000/down`
- 🌐 Web 上传服务默认端口:5680
- 📂 支持自动挂载数据分区查找镜像文件
### 适用设备
- OEC (RK3566)
- OECT (RK3566)
- 其他 FnOS ARM 设备
---
## 9. Docker 端口冲突修复脚本
一键修复 Windows 上 Docker 端口绑定失败问题,通过修改 Hyper-V 动态端口范围解决端口冲突。
### 在线直接执行
在 PowerShell 中执行:
```powershell
irm https://gitee.com/jun-wan/script/raw/master/fix-docker-ports/fix_docker_ports.ps1 | iex
```
### 脚本功能
脚本会自动执行以下操作:
1. **检查管理员权限** - 验证脚本是否以管理员身份运行
2. **显示当前端口设置** - 查看当前的动态端口范围和排除范围
3. **修改动态端口范围** - 将动态端口范围设置为 49152-65535(标准临时端口范围)
4. **重启 HNS 服务** - 重启 Hyper-V 网络服务使配置生效
5. **停止所有 Docker 容器** - 停止所有运行中的容器以释放端口
6. **显示修改后设置** - 显示修改后的端口配置供验证
### 脚本特点
- ✨ **一键修复** - 自动完成所有端口配置修改
- ✨ **权限检测** - 自动检测管理员权限,提供清晰提示
- ✨ **详细输出** - 显示修改前后的端口配置对比
- ✨ **安全操作** - 修改前显示当前配置,修改后显示结果
- ✨ **中文界面** - 所有提示信息均为中文
- ✨ **彩色输出** - 清晰的步骤提示和状态显示
- ✨ **完整错误处理** - 每个步骤都有错误检测和提示
### 使用场景
此脚本适用于以下情况:
- Docker 容器启动时出现端口绑定失败错误
- 提示端口已被占用或被 Hyper-V 保留
- 容器无法绑定到指定端口(如 6185、8080 等)
- 需要释放被系统保留的端口范围
### 注意事项
- ⚠️ **必须以管理员身份运行** - 脚本需要管理员权限修改系统网络配置
- 🔧 **需要重启 Docker Desktop** - 脚本执行完成后需要手动重启 Docker Desktop
- 📊 **修改系统级配置** - 此脚本会修改 Windows 网络配置,影响所有容器
- 💡 **可反复使用** - 以后遇到端口冲突问题可以再次运行此脚本
- 🔄 **停止容器** - 脚本会停止所有运行中的容器,请确保数据已保存
---
## 10. Docker Engine 安装脚本
Docker Engine 官方安装脚本,支持一键安装 Docker Engine、Docker CLI、Docker Buildx、Docker Compose、containerd 和 runc 等组件。
### 在线直接执行
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/docker-install/install_docker.sh | bash
```
### 脚本功能
脚本会自动执行以下操作:
1. **检测 Linux 发行版** - 自动识别系统类型和版本
2. **配置软件源** - 添加 Docker 官方软件仓库
3. **安装依赖包** - 安装所需的依赖项
4. **安装 Docker 组件** - 安装最新稳定版本的 Docker Engine 及相关组件:
- Docker CLI(命令行工具)
- Docker Engine(核心引擎)
- Docker Buildx(多平台构建工具)
- Docker Compose(容器编排工具)
- containerd(容器运行时)
- runc(容器运行时接口)
5. **启动 Docker 服务** - 自动启动并启用 Docker 服务
6. **验证安装** - 运行 hello-world 容器验证安装是否成功
### 支持的发行版
脚本支持以下 Linux 发行版:
- **Debian**: 12 (bookworm), 11 (bullseye), 10 (buster)
- **Ubuntu**: 24.04 (noble), 22.04 (jammy), 20.04 (focal), 18.04 (bionic)
- **Fedora**: 41, 40, 39
- **CentOS/RHEL**: 9, 8
- **Rocky Linux**: 9, 8
- **AlmaLinux**: 9, 8
### 脚本特点
- ✨ **官方脚本** - Docker 官方提供的安装脚本
- ✨ **自动检测** - 自动识别系统类型和版本
- ✨ **一键安装** - 无需手动配置,自动完成所有安装步骤
- ✨ **完整组件** - 一次性安装所有 Docker 相关组件
- ✨ **中文界面** - 所有提示信息均为中文
- ✨ **版本检测** - 自动检测并提示已过期的发行版
### 命令行参数
脚本支持以下参数:
```bash
install_docker.sh [选项]
```
选项:
- `--mirror <镜像源>` - 使用指定的镜像源加速下载
- `--dry-run` - 模拟运行,不实际安装
- `--version` - 显示脚本版本信息
- `--help` - 显示帮助信息
### 注意事项
- ⚠️ **需要 root 权限** - 脚本需要使用 root 或 sudo 权限运行
- 🔧 **生产环境慎用** - 不建议在生产环境中使用此脚本,请参考官方文档手动安装
- 📦 **自动升级** - 可能会导致 Docker 组件出现意外的主要版本升级
- 🔄 **不适合升级** - 此脚本不适合用于升级现有的 Docker 安装
- 📋 **测试环境** - 建议先在测试环境中测试升级后再部署到生产系统
- 🌐 **网络要求** - 需要能够访问 Docker 官方软件源或指定的镜像源
### 使用示例
基本安装:
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/docker-install/install_docker.sh | bash
```
使用国内镜像源加速:
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/docker-install/install_docker.sh | bash -s -- --mirror https://mirrors.aliyun.com/docker-ce/linux/
```
模拟运行(不实际安装):
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/docker-install/install_docker.sh | bash -s -- --dry-run
```
### 验证安装
安装完成后,运行以下命令验证安装:
```bash
docker --version
docker run hello-world
```
如果看到 "Hello from Docker!" 的输出,说明安装成功。
### 参考文档
- Docker 官方安装文档:https://docs.docker.com/engine/install/
- 脚本源代码:https://github.com/docker/docker-install/
---
## 11. 斐讯 N1 飞牛 NAS WIFI 固件安装脚本
为斐讯 N1 安装的飞牛 NAS (FnOS) 一键安装 WIFI 驱动固件,自动从 Gitee 下载固件包并安装到系统固件目录。
### 适用设备
- 斐讯 N1 (Phicomm N1)
- 安装的系统:飞牛 NAS (FnOS)
### 在线直接执行
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/fnos-wifi-firmware/install_wifi_firmware.sh | bash
```
### 本地执行
下载脚本:
```bash
wget https://gitee.com/jun-wan/script/raw/master/fnos-wifi-firmware/install_wifi_firmware.sh
chmod +x install_wifi_firmware.sh
```
执行脚本:
```bash
./install_wifi_firmware.sh
```
### 脚本功能
脚本会自动执行以下操作:
1. **检查 root 权限** - 验证是否以 root 用户运行
2. **检查依赖工具** - 检测 wget 和 unzip 命令是否存在
3. **创建临时目录** - 在 `/tmp/firmware_update` 创建临时工作目录
4. **下载固件包** - 从 Gitee Release 下载 firmware.zip(带重试机制)
5. **解压固件包** - 解压下载的固件压缩包
6. **复制固件文件** - 将解压后的文件复制到 `/usr/lib/firmware`
7. **清理临时文件** - 删除临时目录和下载的文件
8. **完成提示** - 提示固件更新完成,建议重启 NAS 生效
### 脚本特点
- ✨ **一键安装** - 无需手动操作,自动完成所有步骤
- ✨ **重试机制** - 下载失败自动重试 3 次,每次间隔 3 秒
- ✨ **User-Agent 伪装** - 模拟浏览器请求,避免被 Gitee 限制
- ✨ **中文界面** - 所有提示信息均为中文
- ✨ **彩色输出** - 清晰的步骤提示和状态显示
- ✨ **完整错误处理** - 每个步骤都有错误检测和提示
- ✨ **自动清理** - 完成后自动清理临时文件
- ✨ **进度显示** - 显示 [1/10] 到 [10/10] 的详细进度
### 执行示例
```bash
root@N1:~# curl -fsSL https://gitee.com/jun-wan/script/raw/master/fnos-wifi-firmware/install_wifi_firmware.sh | bash
========================================
飞牛 NAS WIFI 固件安装脚本 v1.0
适用设备:斐讯 N1 安装的飞牛 NAS
作者: Jun Wan
========================================
[1/10] 检查 root 权限
[2/10] 检查依赖工具
[3/10] 创建临时目录
[4/10] 下载固件包
下载地址: https://gitee.com/jun-wan/script/releases/download/v0.1/firmware.zip
[5/10] 解压固件包
[6/10] 复制固件文件到 /usr/lib/firmware
[7/10] 设置固件文件权限
[8/10] 验证固件文件
[9/10] 清理临时文件
[10/10] 完成!
固件更新完成,请重启 NAS 生效
root@N1:~#
```
### 配置变量
脚本支持通过修改以下变量来自定义配置:
```bash
# Gitee 固件压缩包 URL(Release 下载地址)
FIRMWARE_URL="https://gitee.com/jun-wan/script/releases/download/v0.1/firmware.zip"
# 临时目录路径
TEMP_DIR="/tmp/firmware_update"
# 固件压缩包文件名
FIRMWARE_ZIP="firmware.zip"
# 目标固件目录
FIRMWARE_TARGET_DIR="/usr/lib/firmware"
```
### 注意事项
- ⚠️ **需要 root 权限** - 脚本必须以 root 用户运行
- 🔄 **需要重启** - 安装完成后需要重启 NAS 才能使固件生效
- 📦 **Gitee Release** - 固件文件托管在 Gitee Release 中,确保 Release 已创建
- 🌐 **网络要求** - 需要能够访问 Gitee 下载固件包
- 💾 **备份建议** - 建议在执行前备份 `/usr/lib/firmware` 目录
- 📋 **版本兼容** - 确保固件版本与您的飞牛 NAS 系统版本兼容
### 故障排除
**下载失败:**
- 检查网络连接是否正常
- 确认 Gitee Release 地址是否正确
- 脚本会自动重试 3 次,如果仍然失败请稍后重试
**解压失败:**
- 确认下载的文件是否完整
- 检查 unzip 命令是否已安装
**权限不足:**
- 确保使用 root 用户运行脚本
- 检查 `/usr/lib/firmware` 目录的写入权限
**固件不生效:**
- 重启 NAS 使固件生效
- 检查固件版本是否与系统兼容
- 查看系统日志:`dmesg | grep firmware`
### 参考文档
- 飞牛 NAS 官方文档
- 斐讯 N1 相关教程
---
## 12. Miloco 获取设备ID脚本
Miloco 小米摄像头控制中心一键部署脚本,用于部署 Miloco 服务并获取小米摄像头的设备 ID(DID)。
### 适用场景
- 需要获取小米摄像头的设备 ID(DID)
- 管理小米摄像头设备
- 在 NAS 或 ARM 设备上部署摄像头管理服务
### 快速部署
#### 方法一:在线直接执行(推荐)
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/micam-deploy/miloco-get-did.sh -o /tmp/miloco-get-did.sh && chmod +x /tmp/miloco-get-did.sh && /tmp/miloco-get-did.sh
```
#### 方法二:本地执行
```bash
# 下载脚本
wget https://gitee.com/jun-wan/script/raw/master/micam-deploy/miloco-get-did.sh
chmod +x miloco-get-did.sh
# 执行脚本
./miloco-get-did.sh
```
### 部署前置要求
在运行脚本前,请确保满足以下条件:
1. **系统要求**:Linux 系统(Ubuntu/Debian/NAS),支持 ARM64/X86_64
2. **网络模式**:使用 Docker host 网络模式(Windows 不支持)
3. **必需软件**:Docker、Docker Compose
4. **端口要求**:8000(Miloco WebUI)
5. **防火墙**:确保 8000 端口已放行,Miloco 需要与小米云服务通信
6. **网络环境**:NAS 与摄像头在同一局域网,可互相访问
### 脚本功能
脚本会自动执行以下操作:
1. **系统环境检查** - 检测 Docker、Docker Compose 等
2. **自动配置** - 自动生成 docker-compose.yml 配置文件
3. **镜像拉取** - 从南京大学镜像源拉取 Miloco 镜像
4. **容器启动** - 自动启动 Miloco 容器
5. **状态显示** - 显示服务状态和访问地址
6. **设备 ID 获取指南** - 提供详细的设备 ID 获取步骤
### 脚本菜单
执行脚本后会看到交互式菜单:
```
请选择操作:
1) 部署 Miloco
2) 清理 Miloco 相关所有容器、镜像、网络
3) 清理整个 Docker 容器
0) 退出
请输入选项 [0-3]:
```
### 获取设备 ID 步骤
部署完成后,按照以下步骤获取摄像头设备 ID:
1. 访问 Miloco WebUI:`https://<服务器IP>:8000`
2. 设置 6 位密码并登录
3. 授权小米账号
4. 授权成功后跳回 Miloco 页面
5. 点击进入设备管理
6. 浏览器页面鼠标右键 -> 检查(或按 F12)
7. 刷新页面
8. 在开发者工具的 Network(网络)标签页中
9. 找到名为 `device_list` 的接口
10. 点击该接口,查看响应内容
11. 在响应中找到对应的摄像头,`did` 字段就是设备 ID
### 脚本特点
- ✨ **一键部署** - 自动完成所有配置和部署步骤
- ✨ **国内镜像** - 使用南京大学镜像源,无需登录认证
- ✨ **交互式菜单** - 提供部署、清理等多种操作选项
- ✨ **中文界面** - 所有提示信息均为中文
- ✨ **彩色输出** - 清晰的步骤提示和状态显示
- ✨ **详细指南** - 提供完整的设备 ID 获取步骤
### 注意事项
- ⚠️ **Windows 不支持** - 脚本使用 Docker host 网络模式,Windows Docker 不支持
- 🔒 需要使用 root 权限运行
- 🌐 Miloco 使用自签证书,访问时需要忽略证书错误
- 📱 首次访问需要绑定小米账号
- 🔑 设备 ID 是后续配置 RTSP 转发的必需参数
### 常用命令
部署完成后,可以使用以下命令管理服务:
```bash
cd /opt/micam
# 查看服务状态
docker compose ps
# 查看日志
docker compose logs -f
# 停止服务
docker compose down
# 启动服务
docker compose up -d
# 重启服务
docker compose restart
```
---
## 13. Micam 一键部署脚本
小米摄像头 RTSP 桥接服务一键部署脚本,自动安装并配置 Micam、Miloco、Go2rtc 服务,将小米摄像头桥接为标准 RTSP 流。
### 适用场景
- 将小米摄像头接入 HomeAssistant、frigate、Scrypted 等智能家居系统
- 需要标准 RTSP 协议访问小米摄像头
- 在 NAS 或 ARM 设备上部署摄像头服务
### 快速部署
#### 方法一:在线直接执行(推荐)
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/micam-deploy/deploy-micam.sh -o /tmp/deploy-micam.sh && chmod +x /tmp/deploy-micam.sh && /tmp/deploy-micam.sh
```
#### 方法二:本地执行
```bash
# 下载脚本
wget https://gitee.com/jun-wan/script/raw/master/micam-deploy/deploy-micam.sh
chmod +x deploy-micam.sh
# 执行脚本
./deploy-micam.sh
```
### 部署前置要求
在运行脚本前,请确保满足以下条件:
1. **系统要求**:Linux 系统(Ubuntu/Debian/NAS),支持 ARM64/X86_64
2. **网络模式**:使用 Docker host 网络模式(Windows 不支持)
3. **必需软件**:Docker、Docker Compose、md5sum
4. **端口要求**:8000(Miloco)、1984(Go2rtc)、8554(RTSP)
5. **防火墙**:确保上述相关端口已放行,miloco 需要与小米云服务通信
6. **网络环境**:NAS 与摄像头在同一局域网,可互相访问
### 脚本功能
脚本会自动执行以下操作:
1. **系统环境检查** - 检测操作系统、架构、Docker、Docker Compose 等
2. **依赖安装** - 可选自动安装 md5sum 等必需工具
3. **交互式配置** - 引导配置主机 IP、端口、时区、Miloco 密码等
4. **多摄像头支持** - 支持配置多个摄像头,每个摄像头独立容器
5. **自动生成配置文件** - 生成 `.env`、`docker-compose.yml`、`go2rtc.yaml`
6. **创建目录结构** - 自动创建安装目录和数据目录
7. **拉取镜像** - 下载 Miloco、Go2rtc、Micam 镜像
8. **启动服务** - 启动所有容器服务
9. **服务状态检测** - 自动检测 Micam 容器连接状态,确保部署成功
10. **提供管理命令** - 显示常用的 Docker Compose 管理命令
### 脚本特点
- ✨ **一键部署** - 全自动化安装,无需手动配置
- ✨ **前置检查** - 完整的系统环境检查和依赖检测
- ✨ **智能安装** - 自动检测并安装缺失的依赖(md5sum)
- ✨ **交互友好** - 彩色输出、进度提示、默认值建议
- ✨ **多摄像头** - 支持循环添加多个摄像头
- ✨ **6 位密码验证** - 强制验证 Miloco 密码长度,符合 WebUI 限制
- ✨ **MD5 可见** - 明文密码和 MD5 加密值同时显示,便于核对
- ✨ **自动检测 IP** - 智能检测主机 IP 作为默认值
- ✨ **配置分离** - 使用 `.env` 文件管理配置,符合官方推荐
- ✨ **状态监控** - 实时监控容器启动状态,自动识别连接成功/失败
- ✨ **错误提示** - 详细的错误提示和故障排查建议
- ✨ **中文界面** - 所有提示信息均为中文
### 部署流程
执行脚本后会看到以下流程:
#### 1. 显示欢迎界面
```
╔════════════════════════════════════════════════════════╗
║ ║
║ 🎉 Micam 一键部署脚本 v1.0 🎉 ║
║ ║
║ 小米摄像头 RTSP 桥接服务部署工具 ║
║ 支持多摄像头、自动配置、交互式安装 ║
║ ║
╚════════════════════════════════════════════════════════╝
```
#### 2. 前置要求检查
显示部署前置要求并进行系统环境检查:
- 操作系统类型检测
- 系统架构检测(ARM64/X86_64)
- Docker 安装和服务状态
- Docker Compose 版本
- md5sum 工具(可选自动安装)
#### 3. 服务配置
引导用户配置以下信息:
- 主机 IP 地址(自动检测)
- Miloco WebUI 端口(默认 8000)
- Go2rtc WebUI 端口(默认 1984)
- 时区设置(默认 Asia/Shanghai)
- Miloco 登录密码(强制 6 位,显示 MD5)
- 摄像头配置(设备 ID、RTSP 流名称、视频编码、码流通道)
#### 4. 生成配置文件
自动生成以下配置文件:
- `.env` - 环境变量配置
- `docker-compose.yml` - Docker Compose 编排文件
- `go2rtc.yaml` - Go2rtc 配置文件
#### 5. 部署服务
- 创建目录结构
- 拉取 Docker 镜像
- 启动 Miloco 和 Go2rtc 服务
- 可选启动 Micam 服务(建议先配置 Miloco)
#### 6. 服务状态检测
自动监控 Micam 容器连接状态:
- 检测容器是否运行
- 检测登录是否成功
- 检测 WebSocket 连接
- 识别常见错误(密码错误、未注册等)
### 配置示例
**主机配置:**
```
主机 IP: 192.168.50.99
Miloco 端口: 8000
Go2rtc 端口: 1984
时区: Asia/Shanghai
```
**密码配置:**
```
明文密码: 123456
MD5 加密: e10adc3949ba59abbe56e057f20f883e
```
**摄像头配置:**
```
设备 ID: 1179042408
RTSP 流名称: camera1
视频编码: hevc (H.265)
码流通道: 0 (主码流)
```
### 访问服务
部署完成后,可以通过以下地址访问:
**Miloco WebUI:**
```
https://192.168.50.99:8000
密码: 123456(明文)
```
**Go2rtc WebUI:**
```
http://192.168.50.99:1984
```
**RTSP 流地址:**
```
rtsp://192.168.50.99:8554/camera1
```
### 常用管理命令
```bash
# 查看所有容器状态
docker compose ps
# 查看 Micam 容器日志
docker compose logs -f micam1
# 重启所有服务
docker compose restart
# 停止所有服务
docker compose down
# 启动所有服务
docker compose up -d
```
### 故障排查
**摄像头显示离线:**
1. 检查防火墙是否放行 8000/1984/8554 端口
- 宝塔面板:安全 → 防火墙 → 放行端口
- UFW:`sudo ufw allow 8000,1984,8554/tcp`
- Firewalld:`sudo firewall-cmd --add-port={8000,1984,8554}/tcp --permanent`
2. 确认 NAS 和摄像头在同一局域网
3. 检查 Miloco 是否已配置密码和授权
**Micam 容器不断重启:**
1. 查看容器日志:`docker compose logs micam1`
2. 检查是否显示 "Invalid password" - 需重新配置 `.env` 中的密码
3. 检查是否显示 "Admin not registered" - 需先访问 Miloco WebUI 完成配置
**无法访问 Miloco WebUI:**
1. 检查容器是否运行:`docker compose ps`
2. 检查端口是否被占用:`sudo netstat -tulpn | grep 8000`
3. 检查防火墙设置
**RTSP 流无画面:**
1. 在 Go2rtc WebUI 中检查流状态
2. 确认摄像头设备 ID 正确
3. 确认视频编码和码流通道设置正确
4. 检查 Micam 容器日志是否有错误
### 注意事项
- ⚠️ **首次使用** - 建议先启动 Miloco 和 Go2rtc,配置完成后再启动 Micam
- 🔒 **密码限制** - Miloco 密码必须是 6 位(WebUI 限制)
- 🌐 **网络环境** - 必须确保 NAS 和摄像头在同一局域网
- 📦 **数据持久化** - 配置和数据保存在安装目录(默认 `/opt/micam`)
- 🔧 **防火墙** - 部分 NAS 系统(如安装了宝塔)需要手动放行端口
- 🔄 **密码同步** - `.env` 文件中的密码修改后需重启容器生效
### 卸载服务
如需完全卸载 Micam 服务:
```bash
# 进入安装目录
cd /opt/micam
# 停止并删除所有容器
docker compose down -v
# 删除安装目录(可选)
cd ..
rm -rf /opt/micam
```
### 参考资源
- Micam 项目:https://github.com/miiot/micam
- Miloco 项目:https://github.com/miiot/miloco
- Go2rtc 项目:https://github.com/AlexxIT/go2rtc
- HomeAssistant 集成:https://www.home-assistant.io/integrations/rtsp/
---
## 14. Chatwoot Docker 一键部署脚本
开源客服系统 Chatwoot 的 Docker Compose 一键部署脚本,自动配置数据库、Redis、邮件服务等,快速搭建企业级客服平台。
### 适用场景
- 搭建企业客服系统,支持多渠道接入(网站、邮件、社交媒体等)
- 需要自托管的开源客服解决方案
- 在 Linux 服务器或 NAS 上部署客服平台
### 在线直接执行
#### 方法一:局域网快速部署(推荐)
```bash
curl -fsSL http://192.168.50.222:8080/chatwoot_docker/deploy.sh -o /tmp/chatwoot-deploy.sh && chmod +x /tmp/chatwoot-deploy.sh && /tmp/chatwoot-deploy.sh
```
#### 方法二:Gitee 在线部署
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/chatwoot_docker/deploy.sh -o /tmp/chatwoot-deploy.sh && chmod +x /tmp/chatwoot-deploy.sh && /tmp/chatwoot-deploy.sh
```
### 部署前置要求
在运行脚本前,请确保满足以下条件:
1. **系统要求**:Linux 系统(Ubuntu/Debian/CentOS 等)
2. **必需软件**:Docker、Docker Compose
3. **端口要求**:3000(Chatwoot Web)、5432(PostgreSQL)、6379(Redis)
4. **磁盘空间**:建议至少 10GB 可用空间
5. **内存要求**:建议至少 2GB RAM
### 脚本功能
脚本会自动执行以下操作:
1. **环境检查** - 检测 Docker 和 Docker Compose 是否已安装
2. **工作目录配置** - 设置安装目录(默认 `/opt/chatwoot`),支持自定义
3. **安全密钥生成** - 自动生成数据库密码、Redis 密码和应用密钥
4. **端口配置** - 配置服务端口(支持自定义)
5. **前端 URL 配置** - 支持 localhost、IP 地址或域名访问
6. **邮件服务配置** - 可选配置 SMTP 邮件服务(支持 Gmail、QQ、163 等)
7. **创建配置文件** - 生成 `.env` 和 `docker-compose.yml` 文件
8. **数据库初始化** - 自动初始化 PostgreSQL 数据库和 pgvector 扩展
9. **服务启动** - 启动所有 Chatwoot 服务容器
10. **安装信息保存** - 保存配置信息到 `INSTALL_INFO.txt`
### 脚本特点
- ✨ **交互式配置** - 友好的中文交互界面,逐步引导配置
- ✨ **安全密钥** - 自动生成强随机密钥,保障系统安全
- ✨ **邮件服务** - 内置多个邮箱服务商预设(Gmail、QQ、163、企业邮箱等)
- ✨ **灵活部署** - 支持自定义端口、域名、工作目录
- ✨ **配置管理** - 使用 `.env` 文件管理配置,便于后续修改
- ✨ **备份保护** - 检测到已有配置时提供备份选项
- ✨ **彩色输出** - 清晰的步骤提示和状态显示
- ✨ **完整文档** - 自动生成安装信息和常用命令说明
### 支持的邮箱服务商
脚本内置以下邮箱服务商的 SMTP 配置:
1. **Gmail** - smtp.gmail.com:587
2. **QQ邮箱** - smtp.qq.com:587
3. **163邮箱** - smtp.163.com:465
4. **腾讯企业邮箱** - smtp.exmail.qq.com:465
5. **阿里云邮箱** - smtp.aliyun.com:465
6. **自定义 SMTP** - 支持自定义 SMTP 服务器配置
### 部署后管理
安装完成后,可以使用以下命令管理 Chatwoot:
```bash
# 进入工作目录(默认 /opt/chatwoot)
cd /opt/chatwoot
# 查看服务状态
docker compose ps
# 查看日志
docker compose logs -f
# 重启服务
docker compose restart
# 停止服务
docker compose stop
# 启动服务
docker compose start
# 删除服务
docker compose down
```
### 修改配置
如需修改配置(如端口、邮件设置等):
1. 编辑 `.env` 文件
2. 运行 `docker compose restart` 重启服务
### 备份数据库
```bash
# 进入工作目录
cd /opt/chatwoot
# 备份数据库
docker compose exec postgres pg_dump -U postgres chatwoot > backup.sql
# 恢复数据库
docker compose exec -T postgres psql -U postgres chatwoot < backup.sql
```
### 卸载 Chatwoot
```bash
# 进入安装目录
cd /opt/chatwoot
# 停止并删除所有容器和卷
docker compose down -v
# 删除安装目录(可选)
cd ..
rm -rf /opt/chatwoot
```
### 注意事项
- ⚠️ **需要 root 权限** - 脚本需要使用 root 或 sudo 权限运行
- 🔒 **保护配置文件** - `.env` 文件包含敏感信息,请妥善保管
- 📧 **邮件配置** - QQ/163 邮箱需要使用授权码,Gmail 需要应用专用密码
- 🌐 **域名访问** - 使用域名访问需要配置 DNS 和反向代理(如 Nginx)
- 🔐 **HTTPS 配置** - 生产环境建议配置 HTTPS,可使用 Nginx + Let's Encrypt
- 💾 **数据持久化** - 所有数据保存在 Docker 卷中,删除容器不会丢失数据
- 🔄 **首次访问** - 部署完成后首次访问需要创建管理员账户
### 访问 Chatwoot
部署完成后,通过浏览器访问配置的前端 URL:
- **本地访问**:http://localhost:3000
- **IP 访问**:http://your-server-ip:3000
- **域名访问**:http://your-domain.com 或 https://your-domain.com
首次访问时会引导您创建管理员账户。
### 参考资源
- Chatwoot 官网:https://www.chatwoot.com/
- Chatwoot GitHub:https://github.com/chatwoot/chatwoot
- Chatwoot 文档:https://www.chatwoot.com/docs/
- Docker Hub:https://hub.docker.com/r/chatwoot/chatwoot
---
## 15. SSH Known Hosts 清理脚本
Windows 下快捷清除 SSH `known_hosts` 中旧主机指纹记录的工具,解决 "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!" 问题。
### 在线直接执行
**PowerShell (推荐):**
```powershell
irm https://gitee.com/jun-wan/script/raw/master/ssh_cleaner/clean_ssh.ps1 | iex
```
### 本地执行
1. 下载脚本:
- Batch 版本 (CMD): [clean_ssh.bat](ssh_cleaner/clean_ssh.bat)
- PowerShell 版本: [clean_ssh.ps1](ssh_cleaner/clean_ssh.ps1)
2. 双击运行或在终端中执行。
### 脚本说明
- **交互模式**:直接运行脚本,输入 IP 或主机名清理。
- **参数模式**:`clean_ssh.bat 192.168.1.1` 或 `.\clean_ssh.ps1 192.168.1.1`
- **特点**:
- 自动处理 `known_hosts` 文件路径
- 支持中文显示
- 循环操作模式
---
## 16. Bolo 博客一键部署脚本
一键部署 Bolo 博客系统和 MySQL 数据库,自动完成 Docker 环境检查、容器配置和服务启动。
### Windows 版本
#### 在线直接执行(推荐)
在 PowerShell 中执行:
```powershell
irm https://gitee.com/jun-wan/script/raw/master/bolo_blog_deploy/deploy.ps1 | iex
```
#### 本地执行
下载脚本:
```powershell
Invoke-WebRequest -Uri https://gitee.com/jun-wan/script/raw/master/bolo_blog_deploy/deploy.ps1 -OutFile deploy.ps1
```
执行脚本:
```powershell
.\deploy.ps1
```
### Linux/macOS 版本
#### 在线直接执行(推荐)
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/bolo_blog_deploy/deploy.sh | bash
```
#### 本地执行
下载脚本:
```bash
wget https://gitee.com/jun-wan/script/raw/master/bolo_blog_deploy/deploy.sh
chmod +x deploy.sh
```
执行脚本:
```bash
./deploy.sh
```
### 脚本功能
脚本会自动执行以下操作:
1. **显示 Banner** - 显示脚本版本信息和作者
2. **检查 Docker 环境** - 自动检测 Docker 和 Docker Compose 是否已安装
3. **停止现有容器** - 检查并停止已存在的 Bolo 相关容器
4. **创建目录** - 自动创建 `mysql-data` 和 `data` 数据目录
5. **生成配置文件** - 自动生成 `docker-compose.yml` 配置文件
6. **拉取镜像** - 从 Docker Hub 拉取 Bolo 博客镜像
7. **启动容器** - 使用 Docker Compose 启动所有服务
8. **显示状态** - 显示容器状态和访问信息
### 脚本特点
- ✨ **跨平台支持** - 同时支持 Windows (PowerShell) 和 Linux/macOS (Shell)
- ✨ **自动检测** - 智能检测 Docker 环境和依赖工具
- ✨ **中文界面** - 所有提示信息均为中文
- ✨ **彩色输出** - 清晰的步骤提示和状态显示(成功/错误/警告)
- ✨ **完整错误处理** - 每个步骤都有错误检测和提示
- ✨ **健康检查** - 配置 MySQL 和 Bolo 的健康检查机制
- ✨ **数据持久化** - 自动配置数据卷,数据不会丢失
### 默认配置
脚本使用以下默认配置(可在脚本中修改):
- **镜像名称**:`tannic666/bolo:latest`
- **Web 端口**:`8080`
- **MySQL 端口**:`3307`
- **MySQL 密码**:`123456`
- **数据库名**:`solo`
### 访问 Bolo 博客
部署完成后,通过浏览器访问:
- **本地访问**:http://localhost:8080
- **IP 访问**:http://your-server-ip:8080
### 常用命令
```bash
# 查看容器状态
docker compose ps
# 查看日志
docker compose logs -f
# 停止服务
docker compose stop
# 启动服务
docker compose start
# 重启服务
docker compose restart
# 停止并删除所有容器
docker compose down
```
### 修改配置
如需修改配置(如端口、密码等):
1. 编辑 `docker-compose.yml` 文件
2. 运行 `docker compose down` 停止服务
3. 运行 `docker compose up -d` 重新启动服务
### 数据备份
```bash
# 备份 MySQL 数据库
docker compose exec mysql mysqldump -uroot -p123456 solo > backup.sql
# 恢复 MySQL 数据库
docker compose exec -T mysql mysql -uroot -p123456 solo < backup.sql
# 备份数据目录
tar -czf bolo-data-backup.tar.gz data/
```
### 注意事项
- ⚠️ **需要 Docker 环境** - 脚本需要 Docker 和 Docker Compose 已安装
- 🔒 **端口冲突** - 确保 8080 和 3307 端口未被占用
- 💾 **数据持久化** - 数据保存在 `mysql-data` 和 `data` 目录中
- 🔐 **生产环境** - 生产环境建议修改默认密码
- 🌐 **防火墙设置** - 如需外部访问,请开放防火墙端口
- 📊 **健康检查** - MySQL 健康检查通过后才会启动 Bolo 服务
### 参考资源
- Bolo 博客官网:https://bolo.solo3.io/
- Bolo GitHub:https://github.com/adlered/bolo
- Docker Hub:https://hub.docker.com/r/tannic666/bolo
---
## 17. TDuck 表单系统一键部署脚本
一键部署 TDuck 表单系统和 MySQL 数据库,自动完成 Docker 环境检查、容器配置和服务启动。
### 在线直接执行
```bash
curl -fsSL https://gitee.com/jun-wan/script/raw/master/tduck_deploy/deploy-tduck.sh -o /tmp/deploy-tduck.sh && chmod +x /tmp/deploy-tduck.sh && /tmp/deploy-tduck.sh
```
### 脚本功能
脚本会自动执行以下操作:
1. **显示 Banner** - 显示脚本版本信息和作者
2. **选择镜像源** - 支持国内毫秒镜像、Docker Hub 官方源或自定义镜像前缀
3. **检查 Docker 环境** - 自动检测 Docker 和 Docker Compose 是否已安装
4. **创建目录结构** - 自动创建 `tduck` 目录及其子目录
5. **下载 SQL 初始化脚本** - 从 TDuck 官方仓库下载数据库结构
6. **生成配置文件** - 自动生成 `docker-compose.yaml` 配置文件
7. **拉取镜像** - 从配置的镜像源拉取 TDuck 和 MySQL 镜像
8. **启动容器** - 使用 Docker Compose 启动所有服务
9. **显示状态** - 显示容器状态和访问信息
### 脚本特点
- ✨ **中文界面** - 所有提示信息均为中文
- ✨ **镜像源选择** - 提供国内镜像加速选项,提升拉取速度
- ✨ **自动配置** - 自动配置 MySQL 数据库和 TDuck 平台
- ✨ **健康检查** - 配置 MySQL 和 TDuck 的健康检查机制
- ✨ **数据持久化** - 自动配置数据卷,数据不会丢失
- ✨ **端口映射** - 配置 MySQL 端口 3310 和 TDuck Web 端口 8999
### 默认配置
脚本使用以下默认配置(可在脚本中修改):
- **TDuck 端口**:`8999`
- **MySQL 端口**:`3310`
- **MySQL 密码**:`tduck@mysql`
- **数据库名**:`tduck`
- **默认账号**:`admin@tduckcloud.com`
- **默认密码**:`123456`
### 访问 TDuck 表单系统
部署完成后,通过浏览器访问:
- **本地访问**:http://localhost:8999
- **IP 访问**:http://your-server-ip:8999
### 常用命令
```bash
# 进入部署目录
cd tduck
# 查看容器状态
docker compose ps
# 查看日志
docker compose logs -f
# 停止服务
docker compose stop
# 启动服务
docker compose start
# 重启服务
docker compose restart
# 停止并删除所有容器
docker compose down
```
### 数据备份
```bash
# 进入部署目录
cd tduck
# 备份 MySQL 数据库
docker compose exec tduck-mysql mysqldump -uroot -ptduck@mysql tduck > backup.sql
# 恢复 MySQL 数据库
docker compose exec -T tduck-mysql mysql -uroot -ptduck@mysql tduck < backup.sql
```
### 注意事项
- ⚠️ **需要 Docker 环境** - 脚本需要 Docker 和 Docker Compose 已安装
- 🔒 **端口冲突** - 确保 8999 和 3310 端口未被占用
- 💾 **数据持久化** - 数据保存在 `mysql-data` 和 `upload` 目录中
- 🔐 **生产环境** - 生产环境建议修改默认密码
- 🌐 **防火墙设置** - 如需外部访问,请开放防火墙端口
- 📊 **健康检查** - MySQL 健康检查通过后才会启动 TDuck 服务
### 参考资源
- TDuck 官网:https://www.tduck.cloud/
- TDuck GitHub:https://github.com/TDuckApp/tduck-platform
- Docker Hub:https://hub.docker.com/r/tduckcloud/tduck-platform