Skip to content

Commit

Permalink
Merge branch 'main' into only_luci
Browse files Browse the repository at this point in the history
* main:
  luci-app-rtbwmon: fix multiple gateway
  Xunlei: fix web url (#67)
  add luci-app-runmynas
  去掉时区
  配置文件路径修改
  Update xunyou (#64)
  fix vmease for webvirtcloud
  add mtphotos
  add htreader
  add ittools
  add luci-app-feishuvpn
  typecho rm defaults
  typecho OK
  build forkapp OK
  forkapp OK
  git add forapp
  better for simple install
  vmease version to 0.5.1
  bump vmease to 0.5.0
  • Loading branch information
jjm2473 committed Jun 7, 2024
2 parents 11588ec + 0044f56 commit 6e9df16
Show file tree
Hide file tree
Showing 69 changed files with 2,910 additions and 44 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@

forkapp/forkapp
tools/forkapp
forkapp/forkapp.exe
tools/forkapp.exe
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,9 @@

3. 等待编译完成,点击任务进入详情页
4. 在详情页下载插件压缩包![image](https://user-images.githubusercontent.com/1214708/153843272-81843b45-6dc8-4945-871f-a9a467f63c33.png)

## ForkApp

1. ./forkapp forkapp -from ../applications/luci-app-plex -to ../applications/luci-app-demo
2. ./forkapp upload -ip 192.168.100.1 -pwd "password" -from ../applications/luci-app-demo -to /root/
3. ./forkapp upload -ip 192.168.100.1 -pwd "password" -from ../applications/luci-app-demo -to /root/ -script ../tools/simple-install.sh -install
18 changes: 18 additions & 0 deletions applications/luci-app-feishuvpn/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@


include $(TOPDIR)/rules.mk

PKG_VERSION:=1.0.2-20231208
PKG_RELEASE:=

LUCI_TITLE:=LuCI support for FeiShuVpn
LUCI_PKGARCH:=all
LUCI_DEPENDS:=+lsblk +docker +luci-lib-taskd +luci-lib-docker

define Package/luci-app-feishuvpn/conffiles
/etc/config/feishuvpn
endef

include $(TOPDIR)/feeds/luci/luci.mk

# call BuildPackage - OpenWrt buildroot signature
12 changes: 12 additions & 0 deletions applications/luci-app-feishuvpn/luasrc/controller/feishuvpn.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
-- 定义luci.controller.feishuvpn模块
module("luci.controller.feishuvpn", package.seeall)

-- index函数:配置FeiShuVpn的管理界面入口
function index()
-- 创建admin/services/feishuvpn目录下的入口,重定向到config页面
-- dependent = true表示该入口依赖于其他服务
entry({"admin", "services", "feishuvpn"}, alias("admin", "services", "feishuvpn", "config"), _("FeiShuVpn"), 30).dependent = true

-- 创建admin/services/feishuvpn/config页面,用于配置FeiShuVpn
entry({"admin", "services", "feishuvpn", "config"}, cbi("feishuvpn"))
end
57 changes: 57 additions & 0 deletions applications/luci-app-feishuvpn/luasrc/model/cbi/feishuvpn.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
--[[
LuCI - Lua Configuration Interface
]]--

local taskd = require "luci.model.tasks"
local docker = require "luci.docker"
local feishuvpn_model = require "luci.model.feishuvpn"
local m, s, o

m = taskd.docker_map("feishuvpn", "feishuvpn", "/usr/libexec/istorec/feishuvpn.sh",
translate("FeiShuVpn"),
translate("FeiShuVpn is p2p vpn client.")
.. translate("Official website:") .. ' <a href=\"https://wiki.feishuwg.com/\" target=\"_blank\">https://wiki.feishuwg.com/</a>')

local dk = docker.new({socket_path="/var/run/docker.sock"})
local dockerd_running = dk:_ping().code == 200
local docker_info = dockerd_running and dk:info().body or {}
local docker_aspace = 0
if docker_info.DockerRootDir then
local statvfs = nixio.fs.statvfs(docker_info.DockerRootDir)
docker_aspace = statvfs and (statvfs.bavail * statvfs.bsize) or 0
end

s = m:section(SimpleSection, translate("Service Status"), translate("FeiShuVpn status:"))
s:append(Template("feishuvpn/status"))

s = m:section(TypedSection, "main", translate("Setup"),
(docker_aspace < 2147483648 and
(translate("The free space of Docker is less than 2GB, which may cause the installation to fail.")
.. "<br>") or "") .. translate("The following parameters will only take effect during installation or upgrade:"))
s.addremove=false
s.anonymous=true

o = s:option(Value, "port", translate("Port").."<b>*</b>")
o.default = "9091"
o.datatype = "port"

o = s:option(Value, "image_name", translate("Image").."<b>*</b>")
o.rmempty = false
o.datatype = "string"
o.default = "registry.cn-qingdao.aliyuncs.com/feishuwg/p2p:v2.2"
o:value("registry.cn-qingdao.aliyuncs.com/feishuwg/p2p:v2.2", "registry.cn-qingdao.aliyuncs.com/feishuwg/p2p:v2.2")

local blocks = feishuvpn_model.blocks()
local home = feishuvpn_model.home()

o = s:option(Value, "config_path", translate("Config path").."<b>*</b>")
o.rmempty = false
o.datatype = "string"

local paths, default_path = feishuvpn_model.find_paths(blocks, home, "Configs")
for _, val in pairs(paths) do
o:value(val, val)
end
o.default = default_path

return m
55 changes: 55 additions & 0 deletions applications/luci-app-feishuvpn/luasrc/model/feishuvpn.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
local util = require "luci.util"
local jsonc = require "luci.jsonc"

local feishuvpn = {}

feishuvpn.blocks = function()
local f = io.popen("lsblk -s -f -b -o NAME,FSSIZE,MOUNTPOINT --json", "r")
local vals = {}
if f then
local ret = f:read("*all")
f:close()
local obj = jsonc.parse(ret)
for _, val in pairs(obj["blockdevices"]) do
local fsize = val["fssize"]
if fsize ~= nil and string.len(fsize) > 10 and val["mountpoint"] then
-- fsize > 1G
vals[#vals+1] = val["mountpoint"]
end
end
end
return vals
end

feishuvpn.home = function()
local uci = require "luci.model.uci".cursor()
local home_dirs = {}
home_dirs["main_dir"] = uci:get_first("quickstart", "main", "main_dir", "/root")
home_dirs["Configs"] = uci:get_first("quickstart", "main", "conf_dir", home_dirs["main_dir"].."/Configs")
home_dirs["Public"] = uci:get_first("quickstart", "main", "pub_dir", home_dirs["main_dir"].."/Public")
home_dirs["Downloads"] = uci:get_first("quickstart", "main", "dl_dir", home_dirs["Public"].."/Downloads")
home_dirs["Caches"] = uci:get_first("quickstart", "main", "tmp_dir", home_dirs["main_dir"].."/Caches")
return home_dirs
end

feishuvpn.find_paths = function(blocks, home_dirs, path_name)
local default_path = ''
local configs = {}

default_path = home_dirs[path_name] .. "/FeiShuVpn"
if #blocks == 0 then
table.insert(configs, default_path)
else
for _, val in pairs(blocks) do
table.insert(configs, val .. "/" .. path_name .. "/FeiShuVpn")
end
local without_conf_dir = "/root/" .. path_name .. "/FeiShuVpn"
if default_path == without_conf_dir then
default_path = configs[1]
end
end

return configs, default_path
end

return feishuvpn
31 changes: 31 additions & 0 deletions applications/luci-app-feishuvpn/luasrc/view/feishuvpn/status.htm
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<%
local util = require "luci.util"
local container_status = util.trim(util.exec("/usr/libexec/istorec/feishuvpn.sh status"))
local container_install = (string.len(container_status) > 0)
local container_running = container_status == "running"
-%>
<div class="cbi-value">
<label class="cbi-value-title"><%:Status%></label>
<div class="cbi-value-field">
<% if container_running then %>
<button class="cbi-button cbi-button-success" disabled="true"><%:FeiShuVpn is running%></button>
<% else %>
<button class="cbi-button cbi-button-negative" disabled="true"><%:FeiShuVpn is not running%></button>
<% end %>
</div>
</div>
<%
if container_running then
local port=util.trim(util.exec("/usr/libexec/istorec/feishuvpn.sh port"))
if port == "" then
port="9091"
end
-%>
<div class="cbi-value cbi-value-last">
<label class="cbi-value-title">&nbsp;</label>
<div class="cbi-value-field">

<input type="button" class="btn cbi-button cbi-button-apply" name="start" value="<%:Open FeiShuVpn%>" onclick="window.open('http://'+location.hostname+':<%=port%>/', '_blank')">
</div>
</div>
<% end %>
50 changes: 50 additions & 0 deletions applications/luci-app-feishuvpn/po/zh-cn/feishuvpn.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"

msgid "FeiShuVpn"
msgstr "飞鼠组网"

msgid "Official website:"
msgstr "官方网站:"

msgid "FeiShuVpn is p2p vpn client."
msgstr "飞鼠组网是一个点对点的组网工具。"

msgid "Config path"
msgstr "配置文件路径"

msgid "Port"
msgstr "端口"

msgid "Service Status"
msgstr "服务状态"

msgid "FeiShuVpn status:"
msgstr "飞鼠组网的状态信息如下:"

msgid "Setup"
msgstr "安装配置"

msgid "The following parameters will only take effect during installation or upgrade:"
msgstr "以下参数只在安装或者升级时才会生效:"

msgid "Status"
msgstr "状态"

msgid "FeiShuVpn is running"
msgstr "飞鼠组网运行中"

msgid "FeiShuVpn is not running"
msgstr "飞鼠组网未运行"

msgid "Open FeiShuVpn"
msgstr "打开飞鼠组网"

msgid "Not required, all disk will be mounted under %s"
msgstr "可不填,所有硬盘都会挂载到 %s 下"

msgid "The free space of Docker is less than 2GB, which may cause the installation to fail."
msgstr "Docker 可用空间已不足2GB,可能导致安装失败。"

msgid "Please make sure there has enough space"
msgstr "请确保有足够空间"
3 changes: 3 additions & 0 deletions applications/luci-app-feishuvpn/root/etc/config/feishuvpn
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
config main
option 'config_path' ''

Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
#!/bin/sh
# Author Xiaobao([email protected])

ACTION=${1}
shift 1

do_install() {
local image_name=`uci get feishuvpn.@main[0].image_name 2>/dev/null`
local config=`uci get feishuvpn.@main[0].config_path 2>/dev/null`

if [ -z "$config" ]; then
echo "config path is empty!"
exit 1
fi

[ -z "$image_name" ] && image_name="registry.cn-qingdao.aliyuncs.com/feishuwg/p2p:v2.2"
echo "docker pull ${image_name}"
docker pull ${image_name}
docker rm -f feishuvpn

local cmd="docker run --restart=unless-stopped -d -h FeiShuVpnServer -v \"$config:/data/conf\" "

cmd="$cmd\
--cap-add=ALL \
--privileged=true \
--device=/dev/net/tun \
--dns=127.0.0.1 \
--network=host "

# local tz="`uci get system.@system[0].zonename | sed 's/ /_/g'`"
# [ -z "$tz" ] || cmd="$cmd -e TZ=$tz"

cmd="$cmd -v /mnt:/mnt"
mountpoint -q /mnt && cmd="$cmd:rslave"
cmd="$cmd --name feishuvpn \"$image_name\""

echo "$cmd"
eval "$cmd"
}

usage() {
echo "usage: $0 sub-command"
echo "where sub-command is one of:"
echo " install Install the feishuvpn"
echo " upgrade Upgrade the feishuvpn"
echo " rm/start/stop/restart Remove/Start/Stop/Restart the feishuvpn"
echo " status FeiShuVpn status"
echo " port FeiShuVpn port"
}

case ${ACTION} in
"install")
do_install
;;
"upgrade")
do_install
;;
"rm")
docker rm -f feishuvpn
;;
"start" | "stop" | "restart")
docker ${ACTION} feishuvpn
;;
"status")
docker ps --all -f 'name=feishuvpn' --format '{{.State}}'
;;
"port")
echo 9091
;;
*)
usage
exit 1
;;
esac
18 changes: 18 additions & 0 deletions applications/luci-app-htreader/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@


include $(TOPDIR)/rules.mk

PKG_VERSION:=1.0.2-20231208
PKG_RELEASE:=

LUCI_TITLE:=LuCI support for HTReader
LUCI_PKGARCH:=all
LUCI_DEPENDS:=+lsblk +docker +luci-lib-taskd +luci-lib-docker

define Package/luci-app-htreader/conffiles
/etc/config/htreader
endef

include $(TOPDIR)/feeds/luci/luci.mk

# call BuildPackage - OpenWrt buildroot signature
7 changes: 7 additions & 0 deletions applications/luci-app-htreader/luasrc/controller/htreader.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@

module("luci.controller.htreader", package.seeall)

function index()
entry({"admin", "services", "htreader"}, alias("admin", "services", "htreader", "config"), _("HTReader"), 30).dependent = true
entry({"admin", "services", "htreader", "config"}, cbi("htreader"))
end
Loading

0 comments on commit 6e9df16

Please sign in to comment.