🍓 Sync 2026-06-28 08:44:52

This commit is contained in:
github-actions[bot] committed 2026-06-28 08:44:52 +08:00
1 parent 137c18b95a
commit 31880da43f
11 files changed
+291

No files matched your search

+62
View File
@@ -0,0 +1,62 @@
#
# Copyright (C) 2026
#
# This is free software, licensed under the GNU General Public License v3.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=virtualdog
PKG_VERSION:=0.0.1
PKG_RELEASE:=1
# Point this at the released binary tarball when you publish builds.
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/Carseason/openwrt-packages/releases/download/prebuilt/
PKG_HASH:=skip
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-binary-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
include $(INCLUDE_DIR)/package.mk
PKG_ARCH_virtualdog:=$(ARCH)
ifeq ($(ARCH),x86_64)
VIRTUALDOG_QEMU_PKG:=qemu-x86_64-softmmu
else ifeq ($(ARCH),aarch64)
VIRTUALDOG_QEMU_PKG:=qemu-aarch64-softmmu
endif
define Package/$(PKG_NAME)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Web Servers/Proxies
TITLE:=VirtualDog
DEPENDS:=@(x86_64||aarch64) +$(VIRTUALDOG_QEMU_PKG) +qemu-img +qemu-bridge-helper +kmod-tun
URL:=https://example.invalid/virtualdog
endef
define Package/$(PKG_NAME)/description
VirtualDog provides a web UI and API for managing QEMU/KVM virtual machines on OpenWrt.
endef
define Package/$(PKG_NAME)/conffiles
/etc/config/virtualdog
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/uci-defaults $(1)/etc/config
$(INSTALL_BIN) $(PKG_BUILD_DIR)/virtualdogd.$(PKG_ARCH_virtualdog) $(1)/usr/sbin/virtualdogd
$(INSTALL_BIN) ./files/virtualdog.init $(1)/etc/init.d/virtualdog
$(INSTALL_BIN) ./files/virtualdog.uci-default $(1)/etc/uci-defaults/09-virtualdog
$(INSTALL_CONF) ./files/virtualdog.config $(1)/etc/config/virtualdog
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
+5
View File
@@ -0,0 +1,5 @@
config virtualdog
option 'enabled' '0'
option 'data_dir' ''
option 'port' '8080'
option 'access_token' ''
+39
View File
@@ -0,0 +1,39 @@
#!/bin/sh /etc/rc.common
START=93
USE_PROCD=1
get_config() {
config_get_bool enabled "$1" enabled 1
config_get data_dir "$1" data_dir ""
config_get port "$1" port "8080"
config_get access_token "$1" access_token ""
}
start_service() {
config_load virtualdog
config_foreach get_config virtualdog
if [ "$enabled" != 1 ]; then
return 1
fi
if [ -z "$data_dir" ]; then
logger -t virtualdog "data_dir is empty; please set option data_dir in /etc/config/virtualdog"
return 1
fi
mkdir -p "$data_dir" || return 1
logger -t virtualdog "Starting VirtualDog Service"
procd_open_instance virtualdog
procd_set_param command /usr/sbin/virtualdogd --port "$port" --data "$data_dir"
if [ -n "$access_token" ]; then
procd_append_param command --access-token "$access_token"
fi
procd_set_param stderr 1
procd_set_param respawn
procd_close_instance
}
service_triggers() {
procd_add_reload_trigger "virtualdog"
}
+21
View File
@@ -0,0 +1,21 @@
#!/bin/sh
[ ! -f "/usr/share/ucitrack/luci-app-virtualdog.json" ] && {
cat > /usr/share/ucitrack/luci-app-virtualdog.json << EEOF
{
"config": "virtualdog",
"init": "virtualdog"
}
EEOF
}
uci -q batch <<-EOF >/dev/null
delete ucitrack.@virtualdog[-1]
add ucitrack virtualdog
set ucitrack.@virtualdog[-1].init=virtualdog
commit ucitrack
EOF
/etc/init.d/virtualdog enable
/etc/init.d/virtualdog start
exit 0