's'
This commit is contained in:
1
d2ypp2/services/neko/.gitignore
vendored
Normal file
1
d2ypp2/services/neko/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
data/
|
||||
85
d2ypp2/services/neko/browser-launch.sh
Normal file
85
d2ypp2/services/neko/browser-launch.sh
Normal file
@@ -0,0 +1,85 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
family="${1:-chromium}"
|
||||
start_url="${NEKO_START_URL:-about:blank}"
|
||||
arch="$(uname -m 2>/dev/null || echo unknown)"
|
||||
|
||||
prune_path() {
|
||||
target="${1:-}"
|
||||
[ -n "$target" ] || return 0
|
||||
[ -e "$target" ] || return 0
|
||||
rm -rf "$target"
|
||||
}
|
||||
|
||||
find_bin() {
|
||||
if [ "$family" = "google-chrome" ]; then
|
||||
command -v google-chrome 2>/dev/null || command -v google-chrome-stable 2>/dev/null || true
|
||||
else
|
||||
command -v chromium 2>/dev/null || command -v chromium-browser 2>/dev/null || true
|
||||
fi
|
||||
}
|
||||
|
||||
browser_bin="$(find_bin)"
|
||||
if [ -z "$browser_bin" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
profile_dir="/home/neko/.config/chromium"
|
||||
if [ "$family" = "google-chrome" ]; then
|
||||
profile_dir="/home/neko/.config/google-chrome"
|
||||
fi
|
||||
|
||||
render_mode="${NEKO_BROWSER_RENDER_MODE:-auto}"
|
||||
render_flags="--disable-gpu --use-gl=swiftshader --enable-unsafe-swiftshader"
|
||||
session_flags=""
|
||||
case "$render_mode" in
|
||||
auto)
|
||||
case "$arch:$family" in
|
||||
x86_64:google-chrome|amd64:google-chrome)
|
||||
render_flags="--disable-gpu --disable-software-rasterizer"
|
||||
session_flags="--bwsi"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
gpu)
|
||||
render_flags=""
|
||||
;;
|
||||
legacy|x11|disable-gpu)
|
||||
render_flags="--disable-gpu --disable-software-rasterizer"
|
||||
;;
|
||||
software|swiftshader)
|
||||
render_flags="--disable-gpu --use-gl=swiftshader --enable-unsafe-swiftshader"
|
||||
;;
|
||||
esac
|
||||
|
||||
mkdir -p "$profile_dir"
|
||||
prune_path "$profile_dir/SingletonCookie"
|
||||
prune_path "$profile_dir/SingletonLock"
|
||||
prune_path "$profile_dir/SingletonSocket"
|
||||
prune_path "$profile_dir/SingletonStartupLock"
|
||||
prune_path "$profile_dir/BrowserMetrics"
|
||||
prune_path "$profile_dir/Crash Reports"
|
||||
prune_path "$profile_dir/Crashpad"
|
||||
prune_path "$profile_dir/ShaderCache"
|
||||
prune_path "$profile_dir/GrShaderCache"
|
||||
prune_path "$profile_dir/GraphiteDawnCache"
|
||||
prune_path "$profile_dir/Default/Cache"
|
||||
prune_path "$profile_dir/Default/Code Cache"
|
||||
prune_path "$profile_dir/Default/GPUCache"
|
||||
prune_path "$profile_dir/Default/DawnGraphiteCache"
|
||||
prune_path "$profile_dir/Default/DawnWebGPUCache"
|
||||
|
||||
exec "$browser_bin" \
|
||||
${render_flags} \
|
||||
--window-position=0,0 \
|
||||
--display="${DISPLAY:?DISPLAY is required}" \
|
||||
--user-data-dir="$profile_dir" \
|
||||
--password-store=basic \
|
||||
--no-first-run \
|
||||
${session_flags} \
|
||||
--start-maximized \
|
||||
--force-dark-mode \
|
||||
--disable-file-system \
|
||||
--disable-dev-shm-usage \
|
||||
"$start_url"
|
||||
33
d2ypp2/services/neko/chromium.conf
Normal file
33
d2ypp2/services/neko/chromium.conf
Normal file
@@ -0,0 +1,33 @@
|
||||
[program:chromium]
|
||||
environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s"
|
||||
command=/usr/bin/chromium
|
||||
--window-position=0,0
|
||||
--display=%(ENV_DISPLAY)s
|
||||
--user-data-dir=/home/neko/.config/chromium
|
||||
--no-first-run
|
||||
--start-maximized
|
||||
--bwsi
|
||||
--force-dark-mode
|
||||
--disable-file-system
|
||||
--disable-gpu
|
||||
--disable-software-rasterizer
|
||||
--disable-dev-shm-usage
|
||||
stopsignal=INT
|
||||
autorestart=true
|
||||
priority=800
|
||||
user=%(ENV_USER)s
|
||||
stdout_logfile=/var/log/neko/chromium.log
|
||||
stdout_logfile_maxbytes=100MB
|
||||
stdout_logfile_backups=10
|
||||
redirect_stderr=true
|
||||
|
||||
[program:openbox]
|
||||
environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s"
|
||||
command=/usr/bin/openbox --config-file /etc/neko/openbox.xml
|
||||
autorestart=true
|
||||
priority=300
|
||||
user=%(ENV_USER)s
|
||||
stdout_logfile=/var/log/neko/openbox.log
|
||||
stdout_logfile_maxbytes=100MB
|
||||
stdout_logfile_backups=10
|
||||
redirect_stderr=true
|
||||
80
d2ypp2/services/neko/docker-compose.yml
Normal file
80
d2ypp2/services/neko/docker-compose.yml
Normal file
@@ -0,0 +1,80 @@
|
||||
x-neko-common: &neko-common
|
||||
image: "${NEKO_IMAGE:-ghcr.io/m1k1o/neko/chromium:3.0.0}"
|
||||
restart: unless-stopped
|
||||
shm_size: "${NEKO_SHM_SIZE:-2gb}"
|
||||
cap_add:
|
||||
- SYS_ADMIN
|
||||
|
||||
x-neko-env: &neko-env
|
||||
DISPLAY: ":99.0"
|
||||
NEKO_DESKTOP_SCREEN: "${NEKO_DESKTOP_SCREEN}"
|
||||
NEKO_SERVER_BIND: ":8080"
|
||||
NEKO_MEMBER_PROVIDER: "multiuser"
|
||||
NEKO_MEMBER_MULTIUSER_USER_PASSWORD: "${NEKO_USER_PASS}"
|
||||
NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: "${NEKO_ADMIN_PASS}"
|
||||
NEKO_WEBRTC_ICELITE: "${NEKO_WEBRTC_ICELITE}"
|
||||
NEKO_WEBRTC_NAT1TO1: "${NEKO_WEBRTC_NAT1TO1}"
|
||||
NEKO_PLUGINS_ENABLED: "${NEKO_PLUGINS_ENABLED}"
|
||||
NEKO_PLUGINS_DIR: "/etc/neko/plugins/"
|
||||
NEKO_START_URL: "${NEKO_START_URL}"
|
||||
|
||||
services:
|
||||
neko1:
|
||||
<<: *neko-common
|
||||
container_name: live-neko-1
|
||||
environment:
|
||||
<<: *neko-env
|
||||
NEKO_WEBRTC_EPR: "${NEKO_WEBRTC_EPR_1}"
|
||||
NEKO_WEBRTC_TCPMUX: "${NEKO_WEBRTC_TCPMUX_1}"
|
||||
NEKO_WEBRTC_UDPMUX: "${NEKO_WEBRTC_UDPMUX_1}"
|
||||
ports:
|
||||
- "${NEKO_HTTP_PORT_1}:8080"
|
||||
- "${NEKO_WEBRTC_TCPMUX_1}:${NEKO_WEBRTC_TCPMUX_1}/tcp"
|
||||
- "${NEKO_WEBRTC_UDPMUX_1}:${NEKO_WEBRTC_UDPMUX_1}/udp"
|
||||
- "${NEKO_WEBRTC_UDP_RANGE_1}:${NEKO_WEBRTC_UDP_RANGE_1}/udp"
|
||||
volumes:
|
||||
- "${NEKO_PROFILE_HOST_DIR_1}:/home/neko/.config/chromium"
|
||||
- "${NEKO_PROFILE_HOST_DIR_1}:/home/neko/.config/google-chrome"
|
||||
- "./policies:/etc/chromium/policies/managed:ro"
|
||||
- "./policies:/etc/opt/chrome/policies/managed:ro"
|
||||
- "./${NEKO_BROWSER_SUPERVISOR_CONF}:/etc/neko/supervisord/browser.conf:ro"
|
||||
|
||||
neko2:
|
||||
<<: *neko-common
|
||||
container_name: live-neko-2
|
||||
environment:
|
||||
<<: *neko-env
|
||||
NEKO_WEBRTC_EPR: "${NEKO_WEBRTC_EPR_2}"
|
||||
NEKO_WEBRTC_TCPMUX: "${NEKO_WEBRTC_TCPMUX_2}"
|
||||
NEKO_WEBRTC_UDPMUX: "${NEKO_WEBRTC_UDPMUX_2}"
|
||||
ports:
|
||||
- "${NEKO_HTTP_PORT_2}:8080"
|
||||
- "${NEKO_WEBRTC_TCPMUX_2}:${NEKO_WEBRTC_TCPMUX_2}/tcp"
|
||||
- "${NEKO_WEBRTC_UDPMUX_2}:${NEKO_WEBRTC_UDPMUX_2}/udp"
|
||||
- "${NEKO_WEBRTC_UDP_RANGE_2}:${NEKO_WEBRTC_UDP_RANGE_2}/udp"
|
||||
volumes:
|
||||
- "${NEKO_PROFILE_HOST_DIR_2}:/home/neko/.config/chromium"
|
||||
- "${NEKO_PROFILE_HOST_DIR_2}:/home/neko/.config/google-chrome"
|
||||
- "./policies:/etc/chromium/policies/managed:ro"
|
||||
- "./policies:/etc/opt/chrome/policies/managed:ro"
|
||||
- "./${NEKO_BROWSER_SUPERVISOR_CONF}:/etc/neko/supervisord/browser.conf:ro"
|
||||
|
||||
neko3:
|
||||
<<: *neko-common
|
||||
container_name: live-neko-3
|
||||
environment:
|
||||
<<: *neko-env
|
||||
NEKO_WEBRTC_EPR: "${NEKO_WEBRTC_EPR_3}"
|
||||
NEKO_WEBRTC_TCPMUX: "${NEKO_WEBRTC_TCPMUX_3}"
|
||||
NEKO_WEBRTC_UDPMUX: "${NEKO_WEBRTC_UDPMUX_3}"
|
||||
ports:
|
||||
- "${NEKO_HTTP_PORT_3}:8080"
|
||||
- "${NEKO_WEBRTC_TCPMUX_3}:${NEKO_WEBRTC_TCPMUX_3}/tcp"
|
||||
- "${NEKO_WEBRTC_UDPMUX_3}:${NEKO_WEBRTC_UDPMUX_3}/udp"
|
||||
- "${NEKO_WEBRTC_UDP_RANGE_3}:${NEKO_WEBRTC_UDP_RANGE_3}/udp"
|
||||
volumes:
|
||||
- "${NEKO_PROFILE_HOST_DIR_3}:/home/neko/.config/chromium"
|
||||
- "${NEKO_PROFILE_HOST_DIR_3}:/home/neko/.config/google-chrome"
|
||||
- "./policies:/etc/chromium/policies/managed:ro"
|
||||
- "./policies:/etc/opt/chrome/policies/managed:ro"
|
||||
- "./${NEKO_BROWSER_SUPERVISOR_CONF}:/etc/neko/supervisord/browser.conf:ro"
|
||||
33
d2ypp2/services/neko/google-chrome.conf
Normal file
33
d2ypp2/services/neko/google-chrome.conf
Normal file
@@ -0,0 +1,33 @@
|
||||
[program:google-chrome]
|
||||
environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s"
|
||||
command=/usr/bin/google-chrome
|
||||
--window-position=0,0
|
||||
--display=%(ENV_DISPLAY)s
|
||||
--user-data-dir=/home/neko/.config/google-chrome
|
||||
--no-first-run
|
||||
--start-maximized
|
||||
--bwsi
|
||||
--force-dark-mode
|
||||
--disable-file-system
|
||||
--disable-gpu
|
||||
--disable-software-rasterizer
|
||||
--disable-dev-shm-usage
|
||||
stopsignal=INT
|
||||
autorestart=true
|
||||
priority=800
|
||||
user=%(ENV_USER)s
|
||||
stdout_logfile=/var/log/neko/google-chrome.log
|
||||
stdout_logfile_maxbytes=100MB
|
||||
stdout_logfile_backups=10
|
||||
redirect_stderr=true
|
||||
|
||||
[program:openbox]
|
||||
environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s"
|
||||
command=/usr/bin/openbox --config-file /etc/neko/openbox.xml
|
||||
autorestart=true
|
||||
priority=300
|
||||
user=%(ENV_USER)s
|
||||
stdout_logfile=/var/log/neko/openbox.log
|
||||
stdout_logfile_maxbytes=100MB
|
||||
stdout_logfile_backups=10
|
||||
redirect_stderr=true
|
||||
21
d2ypp2/services/neko/policies/policies.json
Normal file
21
d2ypp2/services/neko/policies/policies.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"ExtensionInstallForcelist": [
|
||||
"dhdgffkkebhmkfjojejmpbldmpobfkfo;https://clients2.google.com/service/update2/crx"
|
||||
],
|
||||
"ExtensionInstallAllowlist": ["*"],
|
||||
"ExtensionInstallBlocklist": [],
|
||||
"DownloadRestrictions": 0,
|
||||
"AllowFileSelectionDialogs": true,
|
||||
"URLAllowlist": ["file:///home/neko/Downloads/*"],
|
||||
"DefaultCookiesSetting": 1,
|
||||
"RestoreOnStartup": 1,
|
||||
"AutoplayAllowed": true,
|
||||
"DefaultPopupsSetting": 1,
|
||||
"DefaultNotificationsSetting": 1,
|
||||
"VideoCaptureAllowed": true,
|
||||
"AudioCaptureAllowed": true,
|
||||
"VideoCaptureAllowedUrls": ["https://*.google.com/*", "https://*.youtube.com/*"],
|
||||
"AudioCaptureAllowedUrls": ["https://*.google.com/*", "https://*.youtube.com/*"],
|
||||
"DeveloperToolsAvailability": 2,
|
||||
"DefaultGeolocationSetting": 1
|
||||
}
|
||||
Reference in New Issue
Block a user