diff --git a/试验用脚本 b/试验用脚本 index 49480e3..3d8dc39 100644 --- a/试验用脚本 +++ b/试验用脚本 @@ -1,103 +1,76 @@ -# 完全重新配置 -systemctl stop syncthing -rm -rf /var/lib/syncthing/config/* +#!/bin/bash +echo "🐱 欢迎使用 Syncthing 萌化一键安装脚本!" +echo "✨ 开始安装 Syncthing..." -# 重新生成配置并指定监听地址 -sudo -u syncthing /usr/local/bin/syncthing -generate="/var/lib/syncthing/config" +# 检测系统 +if [ -f /etc/debian_version ]; then + echo "🍥 检测到 Debian/Ubuntu 系统" + # 安装 Syncthing + curl -s -o /usr/share/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg + echo "deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | tee /etc/apt/sources.list.d/syncthing.list + apt update && apt install -y syncthing + +elif [ -f /etc/redhat-release ]; then + echo "🎀 检测到 CentOS/RHEL 系统" + dnf install -y syncthing || yum install -y epel-release && yum install -y syncthing +else + echo "❌ 不支持的系统" + exit 1 +fi -# 手动修改配置 -cat > /var/lib/syncthing/config/config.xml << 'EOF' - - - basic - - 1 - - 0 - 0 - 0 - random - false - 0 - 0 - 0 - false - false - false - 25 - .stfolder - false - false - false - false - false - - false - standard - standard - 0 - - -
dynamic
-
- -
0.0.0.0:8384
- $(cat /var/lib/syncthing/config/config.xml | grep apikey | sed -n 's/.*\(.*\)<\/apikey>.*/\1/p') - default -
- - - default - default - true - true - 0 - 0 - 60 - true - 10 - false - true - 60 - 30 - 10 - 0 - 3 - $(cat /var/lib/syncthing/config/config.xml | grep urUniqueID | sed -n 's/.*\(.*\)<\/urUniqueID>.*/\1/p') - https://data.syncthing.net/ - false - 1800 - true - 12 - false - 24 - false - 5 - false - 1 - https://upgrades.syncthing.net/meta.json - false - 10 - authenticationUserAndPassword - 0 - /var/lib/syncthing/sync - true - 1 - false - 0 - 0 - default - auto - 0 - true - false - - 0 - 0 - false - -
+echo "🎯 配置 Syncthing 服务..." +# 创建服务配置 +cat > /etc/systemd/system/syncthing@root.service << 'EOF' +[Unit] +Description=Syncthing - Open Source Continuous File Synchronization for %i +Documentation=man:syncthing(1) +After=network.target + +[Service] +User=%i +ExecStart=/usr/bin/syncthing serve --no-browser --no-restart --logflags=0 --gui-address="0.0.0.0:8384" +Restart=on-failure +SuccessExitStatus=3 4 +RestartForceExitStatus=3 4 + +[Install] +WantedBy=multi-user.target EOF -chown -R syncthing:syncthing /var/lib/syncthing/config -systemctl start syncthing +echo "🔧 设置防火墙..." +# 开放端口(如果防火墙开启的话) +if command -v ufw >/dev/null; then + ufw allow 8384/tcp comment "Syncthing GUI" + ufw allow 22000/tcp comment "Syncthing Transfer" + ufw allow 21027/udp comment "Syncthing Discovery" +elif command -v firewall-cmd >/dev/null; then + firewall-cmd --permanent --add-port=8384/tcp + firewall-cmd --permanent --add-port=22000/tcp + firewall-cmd --permanent --add-port=21027/udp + firewall-cmd --reload +fi + +echo "📁 创建备份目录..." +mkdir -p /syncthing_backup +echo "💾 备份目录已创建: /syncthing_backup" + +echo "🚀 启动服务..." +systemctl daemon-reload +systemctl enable syncthing@root +systemctl start syncthing@root + +# 等待服务启动 +sleep 5 + +echo "🎉 安装完成!" +echo "" +echo "========================================" +echo "🐾 Syncthing 管理界面访问信息:" +echo "🌐 地址: http://$(curl -s ifconfig.me):8384/" +echo "💻 本地访问: http://localhost:8384/" +echo "📁 备份目录: /syncthing_backup" +echo "🔧 服务管理: systemctl status/start/stop syncthing@root" +echo "========================================" +echo "" +echo "💕 首次访问请通过网页设置设备名称和密码~" +echo "🐱 祝你使用愉快!"