Files
gitlab-instance-0a899031_sh/neko/README.md
2026-04-09 21:01:21 -05:00

3.6 KiB
Raw Blame History

Neko 一键部署脚本

当前目录包含两个文件:

  • deploy-neko.sh: 运行在 Linux 服务器上的交互式部署脚本。
  • run_remote_deploy.py: 在本机 Windows 上通过 SSH 上传并启动 deploy-neko.sh

已实现的目标

  1. x86_64 默认部署 ghcr.io/m1k1o/neko/google-chrome:latestarm64 自动切换 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)。

服务端直接使用

chmod +x ./deploy-neko.sh
./deploy-neko.sh

常用命令:

./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

如果想先生成配置、不真正启动容器:

./deploy-neko.sh create --name smoke-test --yes --dry-run

Windows 本地一键上传并运行

本机已经有 pythonparamiko 时,直接执行:

python .\run_remote_deploy.py

也可以显式指定:

python .\run_remote_deploy.py --host 192.168.2.179 --user eric

密码可用环境变量传入:

$env:NEKO_REMOTE_PASSWORD="你的SSH密码"
python .\run_remote_deploy.py

目录结构

默认所有实例都落在:

~/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: trueseccomp=unconfined。功能上最省事,但安全边界最弱,只建议在你自己可控的服务器上使用。
  • 如果后续你要继续极限优化,我建议下一步增加:
    • 反向代理 + HTTPS
    • 住宅代理 / 固定出口 IP
    • 按实例自动生成二级域名
    • GPU 加速镜像切换逻辑
    • 自动备份 profile/members.json