# 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