arise-browser 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -5
- package/deploy/neko/CONTEXT.md +24 -23
- package/deploy/neko/Dockerfile +14 -0
- package/deploy/neko/arise-browser.service +4 -3
- package/deploy/neko/setup.sh +34 -243
- package/deploy/neko/supervisord.conf +43 -0
- package/dist/bin/arise-browser.js +17 -3
- package/dist/bin/arise-browser.js.map +1 -1
- package/dist/src/server/routes/health.js +1 -1
- package/dist/src/types/index.d.ts +4 -4
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/virtual-display/manager.d.ts +11 -16
- package/dist/src/virtual-display/manager.d.ts.map +1 -1
- package/dist/src/virtual-display/manager.js +119 -167
- package/dist/src/virtual-display/manager.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/plugin/openclaw.plugin.json +1 -1
- package/skill/arise-browser/SKILL.md +58 -118
- package/skill/arise-browser/references/api.md +1 -1
- package/deploy/neko/neko.yaml +0 -12
- package/deploy/neko/openbox.xml +0 -763
- package/deploy/neko/pulseaudio.pa +0 -16
- package/deploy/neko/xorg.conf +0 -118
package/README.md
CHANGED
|
@@ -24,8 +24,7 @@ Most browser automation runs headless — invisible. That's fine until you need
|
|
|
24
24
|
AriseBrowser's **virtual display mode** runs a real headed Chrome on any Linux server — no physical monitor needed. Users connect via WebRTC in their browser and see exactly what the AI sees:
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
#
|
|
28
|
-
sudo bash <(curl -fsSL https://raw.githubusercontent.com/AriseOS/arise-browser/main/deploy/neko/setup.sh)
|
|
27
|
+
# Requires Docker — install if missing: curl -fsSL https://get.docker.com | sh
|
|
29
28
|
|
|
30
29
|
# Start with virtual display
|
|
31
30
|
npx arise-browser --virtual-display --host 0.0.0.0
|
|
@@ -36,7 +35,7 @@ curl -X POST http://server:9867/navigate -d '{"url":"https://example.com"}'
|
|
|
36
35
|
# Users open http://server:6090 in their browser → live view of Chrome
|
|
37
36
|
```
|
|
38
37
|
|
|
39
|
-
Behind the scenes, arise-browser
|
|
38
|
+
Behind the scenes, arise-browser manages a Docker container (`arise-neko`) running Xvfb + PulseAudio + Openbox + Chrome + Neko WebRTC server, and connects to Chrome inside the container via CDP.
|
|
40
39
|
|
|
41
40
|
**Why not just use headless?** Anti-bot systems increasingly fingerprint headless environments. A headed Chrome running on a real X11 display is indistinguishable from a human using a desktop — because it *is* a real desktop environment.
|
|
42
41
|
|
|
@@ -135,7 +134,7 @@ npm run build
|
|
|
135
134
|
# Headless (default)
|
|
136
135
|
npx arise-browser
|
|
137
136
|
|
|
138
|
-
# Headed on server (Linux, requires
|
|
137
|
+
# Headed on server (Linux, requires Docker)
|
|
139
138
|
npx arise-browser --virtual-display --host 0.0.0.0
|
|
140
139
|
|
|
141
140
|
# With auth token
|
|
@@ -205,7 +204,7 @@ await server.listen({ port: 9867 });
|
|
|
205
204
|
|
|
206
205
|
| Feature | AriseBrowser | Pinchtab |
|
|
207
206
|
|---------|-------------|----------|
|
|
208
|
-
| Headed on servers |
|
|
207
|
+
| Headed on servers | Docker Neko + WebRTC streaming | Not available |
|
|
209
208
|
| Snapshot format | YAML (~50% fewer tokens) + diff mode | JSON |
|
|
210
209
|
| Persistent refs | 3-layer (WeakMap + aria-ref + signature) | Single pass |
|
|
211
210
|
| Click strategy | Multi-strategy with state validation | Single attempt |
|
package/deploy/neko/CONTEXT.md
CHANGED
|
@@ -1,37 +1,38 @@
|
|
|
1
1
|
# deploy/neko/
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Docker-based Neko integration for running arise-browser with a visible browser on Linux servers.
|
|
4
4
|
|
|
5
5
|
## Architecture
|
|
6
6
|
|
|
7
|
-
arise-browser
|
|
8
|
-
Xvfb (virtual display) -> PulseAudio (virtual audio) -> Openbox (window manager) -> Chrome (CDP) -> Neko (WebRTC streaming)
|
|
7
|
+
arise-browser manages a single Docker container (`arise-neko`) that bundles Xvfb + PulseAudio + Openbox + Chrome + Neko WebRTC server. arise-browser connects to Chrome inside the container via CDP.
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
```
|
|
10
|
+
arise-browser (Node.js, host)
|
|
11
|
+
├── docker run arise-neko
|
|
12
|
+
│ └── supervisord: Xorg, PulseAudio, Openbox, Chrome (CDP :9222), Neko (:8080)
|
|
13
|
+
├── Playwright connectOverCDP(localhost:9222)
|
|
14
|
+
└── Fastify HTTP Server (:9867)
|
|
15
|
+
```
|
|
11
16
|
|
|
12
17
|
## Files
|
|
13
18
|
|
|
14
|
-
| File |
|
|
15
|
-
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
| `
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
21
|
-
| `arise-browser.service` | Custom | systemd unit file |
|
|
22
|
-
| `setup.sh` | Custom | One-shot dependency installer (Debian/Ubuntu + CentOS/RHEL) |
|
|
19
|
+
| File | Purpose |
|
|
20
|
+
|------|---------|
|
|
21
|
+
| `Dockerfile` | Custom image based on `ghcr.io/m1k1o/neko/google-chrome:latest`, adds CDP support |
|
|
22
|
+
| `supervisord.conf` | Chrome launch config with `--remote-debugging-port=9222` |
|
|
23
|
+
| `policies.json` | Chrome managed policies (allow CDP, popups, disable autofill) |
|
|
24
|
+
| `arise-browser.service` | systemd unit (requires docker.service) |
|
|
25
|
+
| `setup.sh` | One-shot installer: Docker + Node.js + image build |
|
|
23
26
|
|
|
24
27
|
## Port Allocation
|
|
25
28
|
|
|
26
|
-
| Service | Port | Exposure |
|
|
27
|
-
|
|
28
|
-
| Neko HTTP/WS | 6090 | Public (
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
29
|
+
| Service | Host Port | Container Port | Exposure |
|
|
30
|
+
|---------|-----------|----------------|----------|
|
|
31
|
+
| Neko HTTP/WS | 6090 | 8080 | Public (WebRTC UI) |
|
|
32
|
+
| Chrome CDP | 9222 | 9222 | localhost only |
|
|
33
|
+
| WebRTC UDP | 52000-52100 | 52000-52100 | Public |
|
|
34
|
+
| arise-browser | 9867 | — | As needed (API) |
|
|
32
35
|
|
|
33
|
-
##
|
|
36
|
+
## Persistent Profile
|
|
34
37
|
|
|
35
|
-
|
|
36
|
-
- No forced browser extensions (uBlock Origin, Dark Reader removed)
|
|
37
|
-
- `neko.yaml`: `implicit_hosting: true` (auto-assign host to first user)
|
|
38
|
+
Chrome profile is stored in a Docker named volume (`arise-neko-profile`) mounted at `/home/neko/.config/google-chrome`.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
FROM ghcr.io/m1k1o/neko/google-chrome:latest
|
|
2
|
+
|
|
3
|
+
# socat to forward CDP from 127.0.0.1:9222 to 0.0.0.0:9222
|
|
4
|
+
# (Chrome ignores --remote-debugging-address in newer versions)
|
|
5
|
+
RUN apt-get update -qq && apt-get install -y -qq --no-install-recommends socat && \
|
|
6
|
+
apt-get clean -y && rm -rf /var/lib/apt/lists/*
|
|
7
|
+
|
|
8
|
+
# Override supervisord config to enable CDP (--remote-debugging-port=9222)
|
|
9
|
+
COPY supervisord.conf /etc/neko/supervisord/google-chrome.conf
|
|
10
|
+
|
|
11
|
+
# Chrome managed policies (allow DevTools/CDP, popups, disable autofill)
|
|
12
|
+
COPY policies.json /etc/opt/chrome/policies/managed/policies.json
|
|
13
|
+
|
|
14
|
+
EXPOSE 9223
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
[Unit]
|
|
2
|
-
Description=AriseBrowser with Virtual Display
|
|
3
|
-
After=network.target
|
|
2
|
+
Description=AriseBrowser with Docker Neko Virtual Display
|
|
3
|
+
After=network.target docker.service
|
|
4
|
+
Requires=docker.service
|
|
4
5
|
|
|
5
6
|
[Service]
|
|
6
7
|
Type=simple
|
|
7
|
-
User=neko
|
|
8
8
|
ExecStart=/usr/bin/node /opt/arise-browser/dist/bin/arise-browser.js --virtual-display --port 9867 --host 0.0.0.0
|
|
9
|
+
ExecStopPost=/usr/bin/docker rm -f arise-neko
|
|
9
10
|
Restart=always
|
|
10
11
|
RestartSec=5
|
|
11
12
|
|
package/deploy/neko/setup.sh
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
#
|
|
3
|
-
# AriseBrowser + Neko
|
|
4
|
-
#
|
|
3
|
+
# AriseBrowser + Neko Docker setup
|
|
4
|
+
# Installs: Docker, Node.js, builds arise-neko image
|
|
5
5
|
#
|
|
6
6
|
# Usage: sudo bash setup.sh
|
|
7
7
|
#
|
|
8
8
|
|
|
9
9
|
set -euo pipefail
|
|
10
10
|
|
|
11
|
-
NEKO_VERSION="${NEKO_VERSION:-v3.3.0}"
|
|
12
11
|
NODE_MAJOR="${NODE_MAJOR:-20}"
|
|
13
12
|
|
|
14
13
|
# Colors
|
|
@@ -26,167 +25,15 @@ if [[ $EUID -ne 0 ]]; then
|
|
|
26
25
|
exit 1
|
|
27
26
|
fi
|
|
28
27
|
|
|
29
|
-
#
|
|
30
|
-
if command -v apt-get &>/dev/null; then
|
|
31
|
-
PKG_MGR="apt"
|
|
32
|
-
elif command -v dnf &>/dev/null; then
|
|
33
|
-
PKG_MGR="dnf"
|
|
34
|
-
elif command -v yum &>/dev/null; then
|
|
35
|
-
PKG_MGR="yum"
|
|
36
|
-
else
|
|
37
|
-
err "Unsupported package manager. Need apt, dnf, or yum."
|
|
38
|
-
exit 1
|
|
39
|
-
fi
|
|
40
|
-
|
|
41
|
-
log "Detected package manager: ${PKG_MGR}"
|
|
42
|
-
|
|
43
|
-
# ─── System packages ───────────────────────────────────────────────
|
|
44
|
-
|
|
45
|
-
install_apt() {
|
|
46
|
-
apt-get update -qq
|
|
47
|
-
|
|
48
|
-
# Xvfb + X11
|
|
49
|
-
apt-get install -y -qq \
|
|
50
|
-
xvfb \
|
|
51
|
-
xserver-xorg-video-dummy \
|
|
52
|
-
x11-xserver-utils \
|
|
53
|
-
xdotool
|
|
54
|
-
|
|
55
|
-
# PulseAudio
|
|
56
|
-
apt-get install -y -qq pulseaudio
|
|
57
|
-
|
|
58
|
-
# Openbox window manager
|
|
59
|
-
apt-get install -y -qq openbox
|
|
60
|
-
|
|
61
|
-
# GStreamer (full suite for Neko)
|
|
62
|
-
apt-get install -y -qq \
|
|
63
|
-
libgstreamer1.0-0 \
|
|
64
|
-
gstreamer1.0-plugins-base \
|
|
65
|
-
gstreamer1.0-plugins-good \
|
|
66
|
-
gstreamer1.0-plugins-bad \
|
|
67
|
-
gstreamer1.0-plugins-ugly \
|
|
68
|
-
gstreamer1.0-pulseaudio \
|
|
69
|
-
gstreamer1.0-x
|
|
70
|
-
|
|
71
|
-
# CJK + emoji fonts
|
|
72
|
-
apt-get install -y -qq \
|
|
73
|
-
fonts-noto-cjk \
|
|
74
|
-
fonts-noto-color-emoji \
|
|
75
|
-
fonts-liberation
|
|
76
|
-
|
|
77
|
-
# Misc
|
|
78
|
-
apt-get install -y -qq \
|
|
79
|
-
curl \
|
|
80
|
-
wget \
|
|
81
|
-
ca-certificates \
|
|
82
|
-
gnupg
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
install_rpm() {
|
|
86
|
-
local mgr="$1"
|
|
87
|
-
|
|
88
|
-
# Enable EPEL
|
|
89
|
-
if ! rpm -q epel-release &>/dev/null; then
|
|
90
|
-
$mgr install -y epel-release
|
|
91
|
-
fi
|
|
92
|
-
|
|
93
|
-
# Enable RPM Fusion (for GStreamer ugly plugins)
|
|
94
|
-
if ! rpm -q rpmfusion-free-release &>/dev/null; then
|
|
95
|
-
$mgr install -y \
|
|
96
|
-
"https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm" || true
|
|
97
|
-
fi
|
|
98
|
-
|
|
99
|
-
# Xvfb + X11
|
|
100
|
-
$mgr install -y \
|
|
101
|
-
xorg-x11-server-Xvfb \
|
|
102
|
-
xorg-x11-drv-dummy \
|
|
103
|
-
xorg-x11-utils \
|
|
104
|
-
xdotool
|
|
105
|
-
|
|
106
|
-
# PulseAudio
|
|
107
|
-
$mgr install -y pulseaudio pulseaudio-utils
|
|
108
|
-
|
|
109
|
-
# Openbox
|
|
110
|
-
$mgr install -y openbox
|
|
111
|
-
|
|
112
|
-
# GStreamer
|
|
113
|
-
$mgr install -y \
|
|
114
|
-
gstreamer1 \
|
|
115
|
-
gstreamer1-plugins-base \
|
|
116
|
-
gstreamer1-plugins-good \
|
|
117
|
-
gstreamer1-plugins-bad-free \
|
|
118
|
-
gstreamer1-plugins-ugly \
|
|
119
|
-
gstreamer1-plugins-good-extras
|
|
120
|
-
|
|
121
|
-
# CJK + emoji fonts
|
|
122
|
-
$mgr install -y \
|
|
123
|
-
google-noto-sans-cjk-fonts \
|
|
124
|
-
google-noto-emoji-color-fonts \
|
|
125
|
-
liberation-fonts
|
|
126
|
-
|
|
127
|
-
# Misc
|
|
128
|
-
$mgr install -y \
|
|
129
|
-
curl \
|
|
130
|
-
wget \
|
|
131
|
-
ca-certificates
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
case "$PKG_MGR" in
|
|
135
|
-
apt) install_apt ;;
|
|
136
|
-
dnf) install_rpm dnf ;;
|
|
137
|
-
yum) install_rpm yum ;;
|
|
138
|
-
esac
|
|
28
|
+
# ─── Docker ───────────────────────────────────────────────────────
|
|
139
29
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
if [[ "$NEKO_ARCH" == "arm64" ]]; then
|
|
146
|
-
# Google Chrome has no ARM64 Linux builds — install Chromium instead
|
|
147
|
-
log "Installing Chromium (ARM64, Google Chrome not available)..."
|
|
148
|
-
if [[ "$PKG_MGR" == "apt" ]]; then
|
|
149
|
-
apt-get install -y -qq chromium-browser || apt-get install -y -qq chromium
|
|
150
|
-
else
|
|
151
|
-
$PKG_MGR install -y chromium
|
|
152
|
-
fi
|
|
153
|
-
log "Chromium installed"
|
|
154
|
-
else
|
|
155
|
-
log "Installing Google Chrome..."
|
|
156
|
-
if [[ "$PKG_MGR" == "apt" ]]; then
|
|
157
|
-
wget -q -O /tmp/google-chrome.deb \
|
|
158
|
-
"https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb"
|
|
159
|
-
apt-get install -y -qq /tmp/google-chrome.deb
|
|
160
|
-
rm -f /tmp/google-chrome.deb
|
|
161
|
-
else
|
|
162
|
-
cat > /etc/yum.repos.d/google-chrome.repo <<'REPO'
|
|
163
|
-
[google-chrome]
|
|
164
|
-
name=google-chrome
|
|
165
|
-
baseurl=https://dl.google.com/linux/chrome/rpm/stable/x86_64
|
|
166
|
-
enabled=1
|
|
167
|
-
gpgcheck=1
|
|
168
|
-
gpgkey=https://dl.google.com/linux/linux_signing_key.pub
|
|
169
|
-
REPO
|
|
170
|
-
$PKG_MGR install -y google-chrome-stable
|
|
171
|
-
fi
|
|
172
|
-
log "Google Chrome installed"
|
|
173
|
-
fi
|
|
30
|
+
if ! command -v docker &>/dev/null; then
|
|
31
|
+
log "Installing Docker..."
|
|
32
|
+
curl -fsSL https://get.docker.com | sh
|
|
33
|
+
systemctl enable --now docker
|
|
34
|
+
log "Docker installed: $(docker --version)"
|
|
174
35
|
else
|
|
175
|
-
log "
|
|
176
|
-
fi
|
|
177
|
-
|
|
178
|
-
# ─── Chrome policies ──────────────────────────────────────────────
|
|
179
|
-
|
|
180
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
181
|
-
POLICIES_SRC="${SCRIPT_DIR}/policies.json"
|
|
182
|
-
POLICIES_DST="/etc/opt/chrome/policies/managed/arise-browser.json"
|
|
183
|
-
|
|
184
|
-
if [[ -f "$POLICIES_SRC" ]]; then
|
|
185
|
-
mkdir -p "$(dirname "$POLICIES_DST")"
|
|
186
|
-
cp "$POLICIES_SRC" "$POLICIES_DST"
|
|
187
|
-
log "Chrome policies installed to ${POLICIES_DST}"
|
|
188
|
-
else
|
|
189
|
-
warn "policies.json not found at ${POLICIES_SRC}, skipping"
|
|
36
|
+
log "Docker already installed: $(docker --version)"
|
|
190
37
|
fi
|
|
191
38
|
|
|
192
39
|
# ─── Node.js ──────────────────────────────────────────────────────
|
|
@@ -194,12 +41,18 @@ fi
|
|
|
194
41
|
if ! command -v node &>/dev/null; then
|
|
195
42
|
log "Installing Node.js ${NODE_MAJOR}..."
|
|
196
43
|
|
|
197
|
-
if
|
|
44
|
+
if command -v apt-get &>/dev/null; then
|
|
198
45
|
curl -fsSL https://deb.nodesource.com/setup_${NODE_MAJOR}.x | bash -
|
|
199
46
|
apt-get install -y -qq nodejs
|
|
200
|
-
|
|
47
|
+
elif command -v dnf &>/dev/null; then
|
|
48
|
+
curl -fsSL https://rpm.nodesource.com/setup_${NODE_MAJOR}.x | bash -
|
|
49
|
+
dnf install -y nodejs
|
|
50
|
+
elif command -v yum &>/dev/null; then
|
|
201
51
|
curl -fsSL https://rpm.nodesource.com/setup_${NODE_MAJOR}.x | bash -
|
|
202
|
-
|
|
52
|
+
yum install -y nodejs
|
|
53
|
+
else
|
|
54
|
+
err "No supported package manager (apt/dnf/yum) found for Node.js install"
|
|
55
|
+
exit 1
|
|
203
56
|
fi
|
|
204
57
|
|
|
205
58
|
log "Node.js installed: $(node --version)"
|
|
@@ -207,78 +60,13 @@ else
|
|
|
207
60
|
log "Node.js already installed: $(node --version)"
|
|
208
61
|
fi
|
|
209
62
|
|
|
210
|
-
# ───
|
|
211
|
-
|
|
212
|
-
NEKO_BIN="/usr/local/bin/neko"
|
|
213
|
-
NEKO_WWW="/usr/local/share/neko/www"
|
|
214
|
-
|
|
215
|
-
# Detect arch early so it's available for all sections
|
|
216
|
-
ARCH="$(uname -m)"
|
|
217
|
-
case "$ARCH" in
|
|
218
|
-
x86_64) NEKO_ARCH="amd64" ;;
|
|
219
|
-
aarch64) NEKO_ARCH="arm64" ;;
|
|
220
|
-
*) err "Unsupported architecture: $ARCH"; exit 1 ;;
|
|
221
|
-
esac
|
|
222
|
-
|
|
223
|
-
if [[ ! -f "$NEKO_BIN" ]]; then
|
|
224
|
-
log "Installing Neko server ${NEKO_VERSION}..."
|
|
225
|
-
|
|
226
|
-
NEKO_URL="https://github.com/m1k1o/neko/releases/download/${NEKO_VERSION}/server-${NEKO_ARCH}"
|
|
227
|
-
wget -q -O "$NEKO_BIN" "$NEKO_URL"
|
|
228
|
-
chmod +x "$NEKO_BIN"
|
|
229
|
-
|
|
230
|
-
log "Neko server installed to ${NEKO_BIN}"
|
|
231
|
-
else
|
|
232
|
-
log "Neko server already installed at ${NEKO_BIN}"
|
|
233
|
-
fi
|
|
234
|
-
|
|
235
|
-
# ─── Neko client static files ────────────────────────────────────
|
|
236
|
-
|
|
237
|
-
if [[ ! -d "$NEKO_WWW" ]]; then
|
|
238
|
-
log "Installing Neko client files..."
|
|
63
|
+
# ─── Build arise-neko Docker image ───────────────────────────────
|
|
239
64
|
|
|
240
|
-
|
|
241
|
-
mkdir -p "$NEKO_WWW"
|
|
242
|
-
wget -q -O /tmp/neko-client.tar.gz "$NEKO_CLIENT_URL"
|
|
243
|
-
tar -xzf /tmp/neko-client.tar.gz -C "$NEKO_WWW"
|
|
244
|
-
rm -f /tmp/neko-client.tar.gz
|
|
245
|
-
|
|
246
|
-
log "Neko client files installed to ${NEKO_WWW}"
|
|
247
|
-
else
|
|
248
|
-
log "Neko client files already at ${NEKO_WWW}"
|
|
249
|
-
fi
|
|
250
|
-
|
|
251
|
-
# ─── Neko X11 input driver (optional, build from source) ─────────
|
|
252
|
-
#
|
|
253
|
-
# neko_drv.so provides low-latency mouse input for Neko WebRTC.
|
|
254
|
-
# No prebuilt binary exists — must be compiled from source.
|
|
255
|
-
# Without it, Neko uses xdotool fallback (slightly higher latency).
|
|
256
|
-
#
|
|
257
|
-
# To build manually:
|
|
258
|
-
# apt install gcc pkgconf autoconf automake libtool make xorg-dev xutils-dev
|
|
259
|
-
# git clone https://github.com/m1k1o/neko.git /tmp/neko-src
|
|
260
|
-
# cd /tmp/neko-src/utils/xorg-deps/xf86-input-neko
|
|
261
|
-
# ./autogen.sh --prefix=/usr && ./configure && make && make install
|
|
262
|
-
#
|
|
263
|
-
warn "Neko X11 input driver (neko_drv.so) not installed — using xdotool fallback. See setup.sh comments to build from source."
|
|
264
|
-
|
|
265
|
-
# ─── Playwright browser deps ─────────────────────────────────────
|
|
266
|
-
|
|
267
|
-
if command -v npx &>/dev/null; then
|
|
268
|
-
log "Installing Playwright Chromium dependencies..."
|
|
269
|
-
npx playwright install-deps chromium 2>/dev/null || warn "playwright install-deps skipped"
|
|
270
|
-
fi
|
|
271
|
-
|
|
272
|
-
# ─── System user ──────────────────────────────────────────────────
|
|
65
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
273
66
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
usermod -aG audio,video neko
|
|
278
|
-
log "User 'neko' created"
|
|
279
|
-
else
|
|
280
|
-
log "User 'neko' already exists"
|
|
281
|
-
fi
|
|
67
|
+
log "Building arise-neko Docker image..."
|
|
68
|
+
docker build -t arise-neko "$SCRIPT_DIR"
|
|
69
|
+
log "arise-neko image built"
|
|
282
70
|
|
|
283
71
|
# ─── Summary ──────────────────────────────────────────────────────
|
|
284
72
|
|
|
@@ -286,16 +74,19 @@ echo ""
|
|
|
286
74
|
log "Setup complete!"
|
|
287
75
|
echo ""
|
|
288
76
|
echo "Next steps:"
|
|
289
|
-
echo " 1.
|
|
290
|
-
echo "
|
|
77
|
+
echo " 1. Install arise-browser:"
|
|
78
|
+
echo " npm install -g arise-browser"
|
|
79
|
+
echo ""
|
|
80
|
+
echo " 2. Run:"
|
|
81
|
+
echo " npx arise-browser --virtual-display --port 9867 --host 0.0.0.0"
|
|
82
|
+
echo ""
|
|
83
|
+
echo " Or use systemd:"
|
|
291
84
|
echo " cp deploy/neko/arise-browser.service /etc/systemd/system/"
|
|
292
85
|
echo " systemctl daemon-reload"
|
|
293
86
|
echo " systemctl enable --now arise-browser"
|
|
294
87
|
echo ""
|
|
295
|
-
echo " Or run manually:"
|
|
296
|
-
echo " node dist/bin/arise-browser.js --virtual-display --port 9867 --host 0.0.0.0"
|
|
297
|
-
echo ""
|
|
298
88
|
echo "Ports:"
|
|
299
|
-
echo " - 9867
|
|
300
|
-
echo " - 6090
|
|
301
|
-
echo " -
|
|
89
|
+
echo " - 9867 arise-browser API"
|
|
90
|
+
echo " - 6090 Neko WebRTC UI"
|
|
91
|
+
echo " - 9222 Chrome CDP (localhost only)"
|
|
92
|
+
echo " - 52000-52100 WebRTC UDP"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
[program:google-chrome]
|
|
2
|
+
environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s"
|
|
3
|
+
command=/usr/bin/google-chrome
|
|
4
|
+
--window-position=0,0
|
|
5
|
+
--display=%(ENV_DISPLAY)s
|
|
6
|
+
--user-data-dir=/home/neko/.config/arise-chrome
|
|
7
|
+
--no-first-run
|
|
8
|
+
--start-maximized
|
|
9
|
+
--force-dark-mode
|
|
10
|
+
--disable-file-system
|
|
11
|
+
--disable-gpu
|
|
12
|
+
--disable-software-rasterizer
|
|
13
|
+
--disable-dev-shm-usage
|
|
14
|
+
--no-sandbox
|
|
15
|
+
--disable-setuid-sandbox
|
|
16
|
+
--remote-debugging-port=9222
|
|
17
|
+
stopsignal=INT
|
|
18
|
+
autorestart=true
|
|
19
|
+
priority=800
|
|
20
|
+
user=%(ENV_USER)s
|
|
21
|
+
stdout_logfile=/var/log/neko/google-chrome.log
|
|
22
|
+
stdout_logfile_maxbytes=100MB
|
|
23
|
+
stdout_logfile_backups=10
|
|
24
|
+
redirect_stderr=true
|
|
25
|
+
|
|
26
|
+
[program:openbox]
|
|
27
|
+
environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s"
|
|
28
|
+
command=/usr/bin/openbox --config-file /etc/neko/openbox.xml
|
|
29
|
+
autorestart=true
|
|
30
|
+
priority=300
|
|
31
|
+
user=%(ENV_USER)s
|
|
32
|
+
stdout_logfile=/var/log/neko/openbox.log
|
|
33
|
+
stdout_logfile_maxbytes=100MB
|
|
34
|
+
stdout_logfile_backups=10
|
|
35
|
+
redirect_stderr=true
|
|
36
|
+
|
|
37
|
+
[program:cdp-forwarder]
|
|
38
|
+
command=/usr/bin/socat TCP-LISTEN:9223,fork,reuseaddr,bind=0.0.0.0 TCP:127.0.0.1:9222
|
|
39
|
+
autorestart=true
|
|
40
|
+
priority=900
|
|
41
|
+
stdout_logfile=/var/log/neko/cdp-forwarder.log
|
|
42
|
+
stdout_logfile_maxbytes=10MB
|
|
43
|
+
redirect_stderr=true
|
|
@@ -73,11 +73,13 @@ Options:
|
|
|
73
73
|
--cdp <url> CDP endpoint URL (cdp mode)
|
|
74
74
|
--help Show this help
|
|
75
75
|
|
|
76
|
-
Virtual display mode (
|
|
77
|
-
--virtual-display Enable
|
|
76
|
+
Virtual display mode (Docker Neko):
|
|
77
|
+
--virtual-display Enable Docker Neko container
|
|
78
78
|
--neko-port <port> Neko HTTP/WS port (default: 6090)
|
|
79
79
|
--neko-password <pwd> Neko user password (default: "neko")
|
|
80
80
|
--neko-admin-password <pwd> Neko admin password (default: "admin")
|
|
81
|
+
--container-name <name> Docker container name (default: "arise-neko")
|
|
82
|
+
--image-name <name> Docker image name (default: "arise-neko")
|
|
81
83
|
|
|
82
84
|
Environment variables:
|
|
83
85
|
ARISE_BROWSER_PORT / BRIDGE_PORT Default: 9867
|
|
@@ -85,10 +87,12 @@ Environment variables:
|
|
|
85
87
|
ARISE_BROWSER_TOKEN / BRIDGE_TOKEN Auth token
|
|
86
88
|
ARISE_BROWSER_HEADLESS "true" or "false"
|
|
87
89
|
ARISE_BROWSER_PROFILE Profile dir (managed mode)
|
|
88
|
-
ARISE_BROWSER_VIRTUAL_DISPLAY "true" to enable
|
|
90
|
+
ARISE_BROWSER_VIRTUAL_DISPLAY "true" to enable Docker Neko
|
|
89
91
|
ARISE_BROWSER_NEKO_PORT Neko port (default: 6090)
|
|
90
92
|
ARISE_BROWSER_NEKO_PASSWORD Neko user password
|
|
91
93
|
ARISE_BROWSER_NEKO_ADMIN_PASSWORD Neko admin password
|
|
94
|
+
ARISE_BROWSER_CONTAINER_NAME Container name (default: "arise-neko")
|
|
95
|
+
ARISE_BROWSER_IMAGE_NAME Image name (default: "arise-neko")
|
|
92
96
|
`);
|
|
93
97
|
process.exit(0);
|
|
94
98
|
}
|
|
@@ -129,6 +133,12 @@ const nekoPassword = getArg(["--neko-password"])
|
|
|
129
133
|
const nekoAdminPassword = getArg(["--neko-admin-password"])
|
|
130
134
|
|| process.env.ARISE_BROWSER_NEKO_ADMIN_PASSWORD
|
|
131
135
|
|| "admin";
|
|
136
|
+
const containerName = getArg(["--container-name"])
|
|
137
|
+
|| process.env.ARISE_BROWSER_CONTAINER_NAME
|
|
138
|
+
|| "arise-neko";
|
|
139
|
+
const imageName = getArg(["--image-name"])
|
|
140
|
+
|| process.env.ARISE_BROWSER_IMAGE_NAME
|
|
141
|
+
|| "arise-neko";
|
|
132
142
|
// Determine mode
|
|
133
143
|
let mode = "standalone";
|
|
134
144
|
let effectiveCdpUrl = cdpUrl;
|
|
@@ -155,6 +165,8 @@ const browserConfig = {
|
|
|
155
165
|
nekoPort,
|
|
156
166
|
nekoPassword,
|
|
157
167
|
nekoAdminPassword,
|
|
168
|
+
containerName,
|
|
169
|
+
imageName,
|
|
158
170
|
},
|
|
159
171
|
}),
|
|
160
172
|
};
|
|
@@ -169,6 +181,8 @@ async function main() {
|
|
|
169
181
|
nekoPort,
|
|
170
182
|
nekoPassword,
|
|
171
183
|
nekoAdminPassword,
|
|
184
|
+
containerName,
|
|
185
|
+
imageName,
|
|
172
186
|
});
|
|
173
187
|
await displayManager.start();
|
|
174
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arise-browser.js","sourceRoot":"","sources":["../../bin/arise-browser.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,SAAS,iBAAiB;IACxB,MAAM,UAAU,GAAG;QACjB,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3C,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;KAC/C,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAyB,CAAC;YACjF,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,OAAO,GAAG,CAAC,OAAO,CAAC;YACrB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yDAAyD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;AAExC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,SAAS,MAAM,CAAC,KAAe;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,OAAO,CAAC,KAAe;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"arise-browser.js","sourceRoot":"","sources":["../../bin/arise-browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,16 +23,16 @@ export interface AriseBrowserConfig {
|
|
|
23
23
|
userAgent?: string;
|
|
24
24
|
/** Apply safe stealth context options (default true) */
|
|
25
25
|
stealthHeaders?: boolean;
|
|
26
|
-
/** Virtual display mode (
|
|
26
|
+
/** Virtual display mode (Docker Neko container) */
|
|
27
27
|
virtualDisplay?: {
|
|
28
28
|
enabled: boolean;
|
|
29
|
-
display?: string;
|
|
30
|
-
screen?: string;
|
|
31
29
|
nekoPort?: number;
|
|
32
30
|
nekoPassword?: string;
|
|
33
31
|
nekoAdminPassword?: string;
|
|
34
32
|
chromeDebugPort?: number;
|
|
35
|
-
|
|
33
|
+
screen?: string;
|
|
34
|
+
containerName?: string;
|
|
35
|
+
imageName?: string;
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
export type ActionDict = Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,IAAI,EAAE,YAAY,GAAG,KAAK,GAAG,SAAS,CAAC;IAEvC,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,oBAAoB;IACpB,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAE7C,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wDAAwD;IACxD,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
|