This commit is contained in:
eric
2026-04-09 21:01:21 -05:00
parent f8b84d84c9
commit 232d80b0ae
9 changed files with 2011 additions and 92 deletions

111
neko/README.md Normal file
View File

@@ -0,0 +1,111 @@
# Neko 一键部署脚本
当前目录包含两个文件:
- `deploy-neko.sh`: 运行在 Linux 服务器上的交互式部署脚本。
- `run_remote_deploy.py`: 在本机 Windows 上通过 SSH 上传并启动 `deploy-neko.sh`
## 已实现的目标
1. `x86_64` 默认部署 `ghcr.io/m1k1o/neko/google-chrome:latest``arm64` 自动切换 `ghcr.io/m1k1o/neko/chromium:latest`
2. 自动覆盖 Neko 镜像自带的 Chromium/Chrome policy 为 `{}`,去掉默认企业管控。
3. 首次启动通过 `initial_preferences/master_preferences` 预装 Tampermonkey并打开扩展开发者模式。
4. 默认账号固定为:
- 普通用户: `live / 12345678`
- 管理员: `admin / 12345678`
5. 每个实例独立目录、独立 profile、独立下载目录、独立用户文件、独立会话文件。
6. 自动探测下一个可用 HTTP 端口、Display 编号、WebRTC UDP 端口段。
7. 交互菜单内置实例 `创建 / 列表 / 启动 / 停止 / 重启 / 删除`,以及可选 `Portainer` Web 控制面板。
8. 默认尝试放行服务器本机防火墙端口(`ufw` / `firewalld`)。
## 服务端直接使用
```bash
chmod +x ./deploy-neko.sh
./deploy-neko.sh
```
常用命令:
```bash
./deploy-neko.sh list
./deploy-neko.sh create
./deploy-neko.sh start --name neko-1
./deploy-neko.sh stop --name neko-1
./deploy-neko.sh restart --name neko-1
./deploy-neko.sh remove --name neko-1
./deploy-neko.sh portainer
```
如果想先生成配置、不真正启动容器:
```bash
./deploy-neko.sh create --name smoke-test --yes --dry-run
```
## Windows 本地一键上传并运行
本机已经有 `python``paramiko` 时,直接执行:
```powershell
python .\run_remote_deploy.py
```
也可以显式指定:
```powershell
python .\run_remote_deploy.py --host 192.168.2.179 --user eric
```
密码可用环境变量传入:
```powershell
$env:NEKO_REMOTE_PASSWORD="你的SSH密码"
python .\run_remote_deploy.py
```
## 目录结构
默认所有实例都落在:
```text
~/neko-instances/<实例名>/
```
每个实例至少包含:
- `docker-compose.yml`
- `browser.conf`
- `browser-prefs.json`
- `policies.json`
- `members.json`
- `sessions.json`
- `profile/`
- `downloads/`
## 我对 YouTube 直播环境的建议
脚本已经尽量把容器环境往“真实长期使用的浏览器”方向收:
- 使用真 Chromex86而不是无头浏览器。
- 不使用 Selenium、Puppeteer、`--enable-automation``--remote-debugging-port` 这类明显自动化痕迹。
- 关闭 Neko 默认浏览器管控,保留独立持久化 profile让 Cookie、登录态、浏览历史长期稳定。
- 保持固定实例、固定账号、固定 profile不要频繁删容器和清 profile。
- 让服务器 `TZ`、语言、登录地区、出口 IP 长期稳定。
但要直接说明: `Google/YouTube 是否降权` 不能靠容器脚本“保证”。最关键的还是:
- 出口 IP 质量,优先住宅/稳定商宽,尽量避免脏数据中心 IP。
- 账号历史和行为稳定性不频繁换设备特征、IP、语言、时区。
- 不要频繁重新登录、清 Cookie、重建 profile。
- 如果有反向代理,尽量上 HTTPS避免纯 HTTP 下的会话和风控问题。
## 额外说明
- 现在脚本为了满足“权限尽量放开”的要求,容器使用了 `privileged: true``seccomp=unconfined`。功能上最省事,但安全边界最弱,只建议在你自己可控的服务器上使用。
- 如果后续你要继续极限优化,我建议下一步增加:
- 反向代理 + HTTPS
- 住宅代理 / 固定出口 IP
- 按实例自动生成二级域名
- GPU 加速镜像切换逻辑
- 自动备份 `profile/``members.json`