112 lines
3.6 KiB
Markdown
112 lines
3.6 KiB
Markdown
# 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 直播环境的建议
|
||
|
||
脚本已经尽量把容器环境往“真实长期使用的浏览器”方向收:
|
||
|
||
- 使用真 Chrome(x86)而不是无头浏览器。
|
||
- 不使用 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`
|