mirror of
https://github.com/okxlin/appstore.git
synced 2025-07-14 05:12:19 +08:00
feat:添加neko到列表
This commit is contained in:
parent
f5e9c0ae58
commit
7f7310b2e6
33
apps/neko/README.md
Normal file
33
apps/neko/README.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<div align="center">
|
||||||
|
<a href="https://github.com/m1k1o/neko" title="Neko's Github repository.">
|
||||||
|
<img src="https://raw.githubusercontent.com/m1k1o/neko/master/docs/_media/logo.png" width="400" height="auto"/>
|
||||||
|
</a>
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/m1k1o/neko/releases">
|
||||||
|
<img src="https://img.shields.io/github/v/release/m1k1o/neko" alt="release">
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/m1k1o/neko/blob/master/LICENSE">
|
||||||
|
<img src="https://img.shields.io/github/license/m1k1o/neko" alt="license">
|
||||||
|
</a>
|
||||||
|
<a href="https://hub.docker.com/u/m1k1o/neko">
|
||||||
|
<img src="https://img.shields.io/docker/pulls/m1k1o/neko" alt="pulls">
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/m1k1o/neko/issues">
|
||||||
|
<img src="https://img.shields.io/github/issues/m1k1o/neko" alt="issues">
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/sponsors/m1k1o">
|
||||||
|
<img src="https://img.shields.io/badge/-sponsor-red" alt="issues">
|
||||||
|
</a>
|
||||||
|
<a href="https://discord.gg/3U6hWpC">
|
||||||
|
<img src="https://discordapp.com/api/guilds/665851821906067466/widget.png" alt="Chat on discord">
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/m1k1o/neko/actions">
|
||||||
|
<img src="https://github.com/m1k1o/neko/actions/workflows/ghcr-amd.yml/badge.svg" alt="build">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<img src="https://raw.githubusercontent.com/m1k1o/neko/master/docs/_media/intro.gif" width="650" height="auto"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
# n.eko
|
||||||
|
|
||||||
|
欢迎使用 Neko,这是一个在 Docker 中运行并使用 WebRTC 技术的自托管虚拟浏览器。
|
19
apps/neko/data.yml
Normal file
19
apps/neko/data.yml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
name: Neko
|
||||||
|
tags:
|
||||||
|
- 实用工具
|
||||||
|
title: 自托管虚拟浏览器
|
||||||
|
description: 自托管虚拟浏览器
|
||||||
|
additionalProperties:
|
||||||
|
key: neko
|
||||||
|
name: Neko
|
||||||
|
tags:
|
||||||
|
- Tool
|
||||||
|
shortDescZh: 自托管虚拟浏览器
|
||||||
|
shortDescEn: A self-hosted virtual browser
|
||||||
|
type: tool
|
||||||
|
crossVersionUpdate: true
|
||||||
|
limit: 0
|
||||||
|
recommend: 0
|
||||||
|
website: https://neko.m1k1o.net
|
||||||
|
github: https://github.com/m1k1o/neko
|
||||||
|
document: https://neko.m1k1o.net
|
37
apps/neko/latest/.env.sample
Normal file
37
apps/neko/latest/.env.sample
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
CONTAINER_NAME="neko"
|
||||||
|
DOWNLOAD_PATH="./data/Downloads"
|
||||||
|
IMAGE_NAME="m1k1o/neko:firefox"
|
||||||
|
MEM_USE="2048m"
|
||||||
|
NEKO_AUDIO_BITRATE=196
|
||||||
|
NEKO_AUDIO_CODEC="opus"
|
||||||
|
NEKO_BIND=8080
|
||||||
|
NEKO_BROADCAST_AUTOSTART="false"
|
||||||
|
NEKO_BROADCAST_PIPELINE=""
|
||||||
|
NEKO_BROADCAST_URL=""
|
||||||
|
NEKO_CERT=""
|
||||||
|
NEKO_CONTROL_PROTECTION="false"
|
||||||
|
NEKO_CORS=""
|
||||||
|
NEKO_DEVICE=""
|
||||||
|
NEKO_DISPLAY=""
|
||||||
|
NEKO_EPR="52000-52100"
|
||||||
|
NEKO_FILE_TRANSFER_ENABLED="true"
|
||||||
|
NEKO_FILE_TRANSFER_PATH="/home/neko/Downloads"
|
||||||
|
NEKO_HWENC="none"
|
||||||
|
NEKO_ICELITE=1
|
||||||
|
NEKO_ICESERVER=""
|
||||||
|
NEKO_ICESERVERS=""
|
||||||
|
NEKO_IMPLICIT_CONTROL="false"
|
||||||
|
NEKO_IPFETCH=""
|
||||||
|
NEKO_KEY=""
|
||||||
|
NEKO_LOCKS=""
|
||||||
|
NEKO_MAX_FPS=0
|
||||||
|
NEKO_NAT1TO1=""
|
||||||
|
NEKO_PASSWORD="neko"
|
||||||
|
NEKO_PASSWORD_ADMIN="admin"
|
||||||
|
NEKO_PATH_PREFIX=""
|
||||||
|
NEKO_PROXY="false"
|
||||||
|
NEKO_SCREEN="1920x1080@30"
|
||||||
|
NEKO_STATIC=""
|
||||||
|
NEKO_VIDEO_BITRATE=3500
|
||||||
|
NEKO_VIDEO_CODEC="vp8"
|
||||||
|
PANEL_APP_PORT_HTTP=40277
|
316
apps/neko/latest/data.yml
Normal file
316
apps/neko/latest/data.yml
Normal file
@ -0,0 +1,316 @@
|
|||||||
|
additionalProperties:
|
||||||
|
formFields:
|
||||||
|
- default: "m1k1o/neko:firefox"
|
||||||
|
edit: true
|
||||||
|
envKey: IMAGE_NAME
|
||||||
|
labelEn: Image Name
|
||||||
|
labelZh: 镜像名称
|
||||||
|
required: true
|
||||||
|
type: select
|
||||||
|
values:
|
||||||
|
- label: "m1k1o/neko:kde"
|
||||||
|
value: "m1k1o/neko:kde"
|
||||||
|
- label: "m1k1o/neko:chromium"
|
||||||
|
value: "m1k1o/neko:chromium"
|
||||||
|
- label: "m1k1o/neko:vivaldi"
|
||||||
|
value: "m1k1o/neko:vivaldi"
|
||||||
|
- label: "m1k1o/neko:microsoft-edge"
|
||||||
|
value: "m1k1o/neko:microsoft-edge"
|
||||||
|
- label: "m1k1o/neko:brave"
|
||||||
|
value: "m1k1o/neko:brave"
|
||||||
|
- label: "m1k1o/neko:tor-browser"
|
||||||
|
value: "m1k1o/neko:tor-browser"
|
||||||
|
- label: "m1k1o/neko:ungoogled-chromium"
|
||||||
|
value: "m1k1o/neko:ungoogled-chromium"
|
||||||
|
- label: "m1k1o/neko:google-chrome"
|
||||||
|
value: "m1k1o/neko:google-chrome"
|
||||||
|
- label: "m1k1o/neko:firefox"
|
||||||
|
value: "m1k1o/neko:firefox"
|
||||||
|
- label: "m1k1o/neko:vlc"
|
||||||
|
value: "m1k1o/neko:vlc"
|
||||||
|
- label: "m1k1o/neko:xfce"
|
||||||
|
value: "m1k1o/neko:xfce"
|
||||||
|
- label: "m1k1o/neko:base"
|
||||||
|
value: "m1k1o/neko:base"
|
||||||
|
- label: "m1k1o/neko:opera"
|
||||||
|
value: "m1k1o/neko:opera"
|
||||||
|
- label: "m1k1o/neko:vncviewer"
|
||||||
|
value: "m1k1o/neko:vncviewer"
|
||||||
|
- label: "m1k1o/neko:arm-firefox"
|
||||||
|
value: "m1k1o/neko:arm-firefox"
|
||||||
|
- label: "m1k1o/neko:arm-chromium"
|
||||||
|
value: "m1k1o/neko:arm-chromium"
|
||||||
|
- label: "m1k1o/neko:arm-base"
|
||||||
|
value: "m1k1o/neko:arm-base"
|
||||||
|
- default: "40277"
|
||||||
|
edit: true
|
||||||
|
envKey: PANEL_APP_PORT_HTTP
|
||||||
|
labelEn: Port
|
||||||
|
labelZh: 端口
|
||||||
|
required: true
|
||||||
|
rule: paramPort
|
||||||
|
type: number
|
||||||
|
- default: "1920x1080@30"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_SCREEN
|
||||||
|
labelEn: Screen Resolution
|
||||||
|
labelZh: 屏幕分辨率
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "neko"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_PASSWORD
|
||||||
|
labelEn: User Password
|
||||||
|
labelZh: 用户密码
|
||||||
|
required: true
|
||||||
|
type: password
|
||||||
|
- default: "admin"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_PASSWORD_ADMIN
|
||||||
|
labelEn: Admin Password
|
||||||
|
labelZh: 管理员密码
|
||||||
|
required: true
|
||||||
|
type: password
|
||||||
|
- default: "52000-52100"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_EPR
|
||||||
|
labelEn: WebRTC UDP Port Range
|
||||||
|
labelZh: WebRTC UDP 端口范围
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "1"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_ICELITE
|
||||||
|
labelEn: ICELite Mode
|
||||||
|
labelZh: ICELite 模式
|
||||||
|
required: true
|
||||||
|
type: number
|
||||||
|
- default: "2048m"
|
||||||
|
edit: true
|
||||||
|
envKey: MEM_USE
|
||||||
|
labelEn: Shared memory footprint (1gb)
|
||||||
|
labelZh: 共享内存占用 (1gb)
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "./data/Downloads"
|
||||||
|
edit: true
|
||||||
|
envKey: DOWNLOAD_PATH
|
||||||
|
labelEn: Download Path (Pay attention to folder permissions)
|
||||||
|
labelZh: 下载文件路径 (注意文件夹权限)
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "false"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_CONTROL_PROTECTION
|
||||||
|
labelEn: Control Protection
|
||||||
|
labelZh: 控制保护
|
||||||
|
required: true
|
||||||
|
type: select
|
||||||
|
values:
|
||||||
|
- label: "False"
|
||||||
|
value: "false"
|
||||||
|
- label: "True"
|
||||||
|
value: "true"
|
||||||
|
- default: "false"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_IMPLICIT_CONTROL
|
||||||
|
labelEn: Implicit Control
|
||||||
|
labelZh: 隐式控制
|
||||||
|
required: true
|
||||||
|
type: select
|
||||||
|
values:
|
||||||
|
- label: "False"
|
||||||
|
value: "false"
|
||||||
|
- label: "True"
|
||||||
|
value: "true"
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_LOCKS
|
||||||
|
labelEn: Locks
|
||||||
|
labelZh: 锁定
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_NAT1TO1
|
||||||
|
labelEn: NAT1to1 IP
|
||||||
|
labelZh: NAT1to1 IP
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_IPFETCH
|
||||||
|
labelEn: IP Fetch URL
|
||||||
|
labelZh: IP 获取URL
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_ICESERVER
|
||||||
|
labelEn: ICE Server
|
||||||
|
labelZh: ICE 服务器
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_ICESERVERS
|
||||||
|
labelEn: ICE Servers
|
||||||
|
labelZh: ICE 服务器组
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: "vp8"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_VIDEO_CODEC
|
||||||
|
labelEn: Video Codec
|
||||||
|
labelZh: 视频编解码器
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: "3500"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_VIDEO_BITRATE
|
||||||
|
labelEn: Video Bitrate
|
||||||
|
labelZh: 视频比特率
|
||||||
|
required: false
|
||||||
|
type: number
|
||||||
|
- default: "0"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_MAX_FPS
|
||||||
|
labelEn: Max FPS
|
||||||
|
labelZh: 最大FPS
|
||||||
|
required: false
|
||||||
|
type: number
|
||||||
|
- default: "none"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_HWENC
|
||||||
|
labelEn: Hardware Encoder
|
||||||
|
labelZh: 硬件编码器
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: "opus"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_AUDIO_CODEC
|
||||||
|
labelEn: Audio Codec
|
||||||
|
labelZh: 音频编解码器
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: 196
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_AUDIO_BITRATE
|
||||||
|
labelEn: Audio Bitrate
|
||||||
|
labelZh: 音频比特率
|
||||||
|
required: false
|
||||||
|
type: number
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_BROADCAST_PIPELINE
|
||||||
|
labelEn: Broadcast Pipeline
|
||||||
|
labelZh: 广播管道
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_BROADCAST_URL
|
||||||
|
labelEn: Broadcast URL
|
||||||
|
labelZh: 广播URL
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: "false"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_BROADCAST_AUTOSTART
|
||||||
|
labelEn: Broadcast Autostart
|
||||||
|
labelZh: 广播自动启动
|
||||||
|
required: true
|
||||||
|
type: select
|
||||||
|
values:
|
||||||
|
- label: "False"
|
||||||
|
value: "false"
|
||||||
|
- label: "True"
|
||||||
|
value: "true"
|
||||||
|
- default: "8080"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_BIND
|
||||||
|
labelEn: Bind Address
|
||||||
|
labelZh: 绑定地址
|
||||||
|
required: true
|
||||||
|
rule: paramPort
|
||||||
|
type: number
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_CERT
|
||||||
|
labelEn: SSL Certificate Path
|
||||||
|
labelZh: SSL证书路径
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_KEY
|
||||||
|
labelEn: SSL Key Path
|
||||||
|
labelZh: SSL 密钥路径
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: "false"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_PROXY
|
||||||
|
labelEn: Proxy Mode
|
||||||
|
labelZh: 代理模式
|
||||||
|
required: true
|
||||||
|
type: select
|
||||||
|
values:
|
||||||
|
- label: "False"
|
||||||
|
value: "false"
|
||||||
|
- label: "True"
|
||||||
|
value: "true"
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_PATH_PREFIX
|
||||||
|
labelEn: Path Prefix
|
||||||
|
labelZh: 路径前缀
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_CORS
|
||||||
|
labelEn: CORS
|
||||||
|
labelZh: 跨域资源共享
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: "true"
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_FILE_TRANSFER_ENABLED
|
||||||
|
labelEn: File Transfer Enabled
|
||||||
|
labelZh: 文件传输已启用
|
||||||
|
required: true
|
||||||
|
type: select
|
||||||
|
values:
|
||||||
|
- label: "True"
|
||||||
|
value: "true"
|
||||||
|
- label: "False"
|
||||||
|
value: "false"
|
||||||
|
- default: "/home/neko/Downloads"
|
||||||
|
disabled: true
|
||||||
|
envKey: NEKO_FILE_TRANSFER_PATH
|
||||||
|
labelEn: File Transfer Path
|
||||||
|
labelZh: 文件传输路径
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_DISPLAY
|
||||||
|
labelEn: Display
|
||||||
|
labelZh: 显示
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_DEVICE
|
||||||
|
labelEn: Device
|
||||||
|
labelZh: 设备
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: NEKO_STATIC
|
||||||
|
labelEn: Static Files Path
|
||||||
|
labelZh: 静态文件路径
|
||||||
|
required: false
|
||||||
|
type: text
|
0
apps/neko/latest/data/Downloads/.gitkeep
Normal file
0
apps/neko/latest/data/Downloads/.gitkeep
Normal file
52
apps/neko/latest/docker-compose.yml
Normal file
52
apps/neko/latest/docker-compose.yml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
services:
|
||||||
|
neko:
|
||||||
|
image: ${IMAGE_NAME}
|
||||||
|
container_name: ${CONTAINER_NAME}
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- 1panel-network
|
||||||
|
shm_size: "${MEM_USE}"
|
||||||
|
ports:
|
||||||
|
- "${PANEL_APP_PORT_HTTP}:${NEKO_BIND}"
|
||||||
|
- "${NEKO_EPR}:${NEKO_EPR}/udp"
|
||||||
|
volumes:
|
||||||
|
- "${DOWNLOAD_PATH}:${NEKO_FILE_TRANSFER_PATH}"
|
||||||
|
environment:
|
||||||
|
- NEKO_SCREEN=${NEKO_SCREEN}
|
||||||
|
- NEKO_PASSWORD=${NEKO_PASSWORD}
|
||||||
|
- NEKO_PASSWORD_ADMIN=${NEKO_PASSWORD_ADMIN}
|
||||||
|
- NEKO_EPR=${NEKO_EPR}
|
||||||
|
- NEKO_ICELITE=${NEKO_ICELITE}
|
||||||
|
- NEKO_CONTROL_PROTECTION=${NEKO_CONTROL_PROTECTION}
|
||||||
|
- NEKO_IMPLICIT_CONTROL=${NEKO_IMPLICIT_CONTROL}
|
||||||
|
- NEKO_LOCKS=${NEKO_LOCKS}
|
||||||
|
- NEKO_NAT1TO1=${NEKO_NAT1TO1}
|
||||||
|
- NEKO_IPFETCH=${NEKO_IPFETCH}
|
||||||
|
- NEKO_ICESERVER=${NEKO_ICESERVER}
|
||||||
|
- NEKO_ICESERVERS=${NEKO_ICESERVERS}
|
||||||
|
- NEKO_VIDEO_CODEC=${NEKO_VIDEO_CODEC}
|
||||||
|
- NEKO_VIDEO_BITRATE=${NEKO_VIDEO_BITRATE}
|
||||||
|
- NEKO_MAX_FPS=${NEKO_MAX_FPS}
|
||||||
|
- NEKO_HWENC=${NEKO_HWENC}
|
||||||
|
- NEKO_AUDIO_CODEC=${NEKO_AUDIO_CODEC}
|
||||||
|
- NEKO_AUDIO_BITRATE=${NEKO_AUDIO_BITRATE}
|
||||||
|
- NEKO_BROADCAST_PIPELINE=${NEKO_BROADCAST_PIPELINE}
|
||||||
|
- NEKO_BROADCAST_URL=${NEKO_BROADCAST_URL}
|
||||||
|
- NEKO_BROADCAST_AUTOSTART=${NEKO_BROADCAST_AUTOSTART}
|
||||||
|
- NEKO_BIND=:${NEKO_BIND}
|
||||||
|
- NEKO_CERT=${NEKO_CERT}
|
||||||
|
- NEKO_KEY=${NEKO_KEY}
|
||||||
|
- NEKO_PROXY=${NEKO_PROXY}
|
||||||
|
- NEKO_PATH_PREFIX=${NEKO_PATH_PREFIX}
|
||||||
|
- NEKO_CORS=${NEKO_CORS}
|
||||||
|
- NEKO_FILE_TRANSFER_ENABLED=${NEKO_FILE_TRANSFER_ENABLED}
|
||||||
|
- NEKO_FILE_TRANSFER_PATH=${NEKO_FILE_TRANSFER_PATH}
|
||||||
|
- NEKO_DISPLAY=${NEKO_DISPLAY}
|
||||||
|
- NEKO_DEVICE=${NEKO_DEVICE}
|
||||||
|
- NEKO_STATIC=${NEKO_STATIC}
|
||||||
|
labels:
|
||||||
|
createdBy: "Apps"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
1panel-network:
|
||||||
|
external: true
|
3
apps/neko/latest/scripts/init.sh
Normal file
3
apps/neko/latest/scripts/init.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
chown -R 1000:1000 data
|
BIN
apps/neko/logo.png
Normal file
BIN
apps/neko/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
Loading…
Reference in New Issue
Block a user