v2rayA is a Linux web GUI client of Project V which supports V2Ray, Xray, Shadowsocks, ShadowsocksR, Trojan and Pingtunnel. Wiki: https://github.com/v2rayA/v2rayA/wiki Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>lilik-openwrt-22.03
@ -0,0 +1,75 @@ | |||
# SPDX-License-Identifier: GPL-3.0-only | |||
# | |||
# Copyright (C) 2021 ImmortalWrt.org | |||
include $(TOPDIR)/rules.mk | |||
PKG_NAME:=v2rayA | |||
PKG_VERSION:=1.5.1 | |||
PKG_RELEASE:=$(AUTORELEASE) | |||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | |||
PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? | |||
PKG_HASH:=232e61b76a03f28ab48cddc314ddf445ea3c625d7983679428a1328e8e84858e | |||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service | |||
PKG_LICENSE:=GPL-3.0-only | |||
PKG_LICENSE_FILES:=LICENSE | |||
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org> | |||
PKG_BUILD_DEPENDS:=golang/host node/host node-yarn/host | |||
PKG_BUILD_PARALLEL:=1 | |||
PKG_USE_MIPS16:=0 | |||
GO_PKG:=github.com/v2rayA/v2rayA | |||
GO_PKG_LDFLAGS:=-s -w | |||
GO_PKG_LDFLAGS_X:=$(GO_PKG)/global.Version=$(PKG_VERSION) | |||
include $(INCLUDE_DIR)/package.mk | |||
include ../../lang/golang/golang-package.mk | |||
TAR_OPTIONS+= --strip-components 1 | |||
TAR_CMD=$(HOST_TAR) -C $(1)/.. $(TAR_OPTIONS) | |||
define Package/v2rayA | |||
TITLE:=A Linux web GUI client of Project V | |||
SECTION:=net | |||
CATEGORY:=Network | |||
SUBMENU:=Web Servers/Proxies | |||
DEPENDS:=$(GO_ARCH_DEPENDS) \ | |||
+ca-bundle \ | |||
+iptables-mod-filter \ | |||
+iptables-mod-tproxy \ | |||
+kmod-ipt-nat6 \ | |||
+xray-core | |||
URL:=https://v2raya.org | |||
endef | |||
define Package/v2rayA/description | |||
v2rayA is a V2Ray Linux client supporting global transparent proxy, | |||
compatible with SS, SSR, Trojan(trojan-go), PingTunnel protocols. | |||
endef | |||
define Build/Compile | |||
( \ | |||
pushd $(PKG_BUILD_DIR)/../gui ; \ | |||
yarn ; \ | |||
OUTPUT_DIR=../service/server/router/web yarn build ; \ | |||
popd ; \ | |||
$(call GoPackage/Build/Compile) ; \ | |||
) | |||
endef | |||
define Package/v2rayA/install | |||
$(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) | |||
$(INSTALL_DIR) $(1)/usr/bin/ | |||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/v2rayA $(1)/usr/bin/v2raya | |||
$(INSTALL_DIR) $(1)/etc/config/ | |||
$(INSTALL_CONF) $(CURDIR)/files/v2raya.config $(1)/etc/config/v2raya | |||
$(INSTALL_DIR) $(1)/etc/init.d/ | |||
$(INSTALL_BIN) $(CURDIR)/files/v2raya.init $(1)/etc/init.d/v2raya | |||
endef | |||
$(eval $(call GoBinPackage,v2rayA)) | |||
$(eval $(call BuildPackage,v2rayA)) |
@ -0,0 +1,25 @@ | |||
config v2raya 'config' | |||
option enabled '0' | |||
# Listening address | |||
option address '0.0.0.0:2017' | |||
# v2rayA configuration directory | |||
option config '/etc/v2raya' | |||
# force open ipv6 | |||
option force_ipv6_on '0' | |||
# ssr, pingTunnel, etc. | |||
option plugin_listen_port '32346' | |||
# Executable v2ray binary path. Auto-detect if put it empty | |||
option v2ray_bin '' | |||
# Additional v2ray config directory, files in it will be combined with config generated by v2rayA | |||
option v2ray_config '' | |||
# Print detailed v2ray-core log to stdout | |||
option verbose '0' | |||
@ -0,0 +1,59 @@ | |||
#!/bin/sh /etc/rc.common | |||
# Copyright (C) 2021 Tianling Shen <cnsztl@immortalwrt.org> | |||
USE_PROCD=1 | |||
START=99 | |||
CONF="v2raya" | |||
PROG="/usr/bin/v2raya" | |||
is_enabled() { | |||
local enabled | |||
config_get enabled "$1" "$2" "${3:-0}" | |||
if [ "$enabled" -eq "1" ]; then | |||
return 0 | |||
else | |||
return 1 | |||
fi | |||
} | |||
append_param() { | |||
procd_append_param command "$1" $2 | |||
} | |||
append_param_arg() { | |||
local value | |||
config_get value "$1" "$2" $4 | |||
[ -n "$value" ] && append_param "$3" "$value" | |||
} | |||
start_service() { | |||
config_load "$CONF" | |||
is_enabled "config" "enabled" || exit 1 | |||
procd_open_instance "$CONF" | |||
procd_set_param command "$PROG" | |||
append_param_arg "config" "address" "--address" "0.0.0.0:2017" | |||
append_param_arg "config" "config" "--config" "/etc/v2raya" | |||
append_param_arg "config" "plugin_listen_port" "--pluginlistenport" "32346" | |||
append_param_arg "config" "v2ray_bin" "--v2ray-bin" | |||
append_param_arg "config" "v2ray_config" "--v2ray-config" | |||
is_enabled "config" "force_ipv6_on" && append_param "--force_ipv6_on" | |||
is_enabled "config" "verbose" && append_param "--verbose" | |||
procd_set_param limits core="unlimited" | |||
procd_set_param respawn | |||
procd_close_instance | |||
} | |||
reload_service() { | |||
stop | |||
start | |||
} | |||
service_triggers() { | |||
procd_add_reload_trigger "$CONF" | |||
} |
@ -0,0 +1,3 @@ | |||
#!/bin/sh | |||
v2raya --version | grep "$PKG_VERSION" |