Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions net/v2raya/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# SPDX-License-Identifier: GPL-3.0-only
#
# Copyright (C) 2021 ImmortalWrt.org

include $(TOPDIR)/rules.mk

PKG_NAME:=v2rayA
PKG_VERSION:=1.5.9.1698.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:=247a357230c616bf48309c61d119686e4ad56939c05afef584c45051e9dc6220
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service

PKG_LICENSE:=AGPL-3.0-only
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>

PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0

GO_PKG:=github.com/v2rayA/v2rayA
GO_PKG_LDFLAGS_X:=$(GO_PKG)/conf.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-conntrack-extra \
+iptables-mod-extra \
+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 Package/v2raya/conffiles
/etc/v2raya/
/etc/config/v2raya
endef

WEB_FILE:=$(PKG_NAME)-web-$(PKG_VERSION).tar.gz
define Download/v2raya-web
URL:=https://codeload.github.com/v2rayA/v2raya-web/tar.gz/v$(PKG_VERSION)?
URL_FILE:=$(WEB_FILE)
FILE:=$(WEB_FILE)
HASH:=149097a42c3e5fa6f5c3cd46d1bf7ec4546e79ad37c1446b759539e700bd75e2
endef

define Build/Prepare
$(call Build/Prepare/Default)

( \
mkdir -p $(PKG_BUILD_DIR)/server/router/web ; \
gzip -dc $(DL_DIR)/$(WEB_FILE) | $(HOST_TAR) -C $(PKG_BUILD_DIR)/server/router/web $(TAR_OPTIONS) ; \
)
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 Download,v2raya-web))
$(eval $(call GoBinPackage,v2raya))
$(eval $(call BuildPackage,v2raya))
37 changes: 37 additions & 0 deletions net/v2raya/files/v2raya.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@

config v2raya 'config'
option enabled '0'

# Listening address
option address '0.0.0.0:2017'

# v2rayA configuration directory
option config '/etc/v2raya'

# Make sure your IPv6 network works fine before you turn it on.
# Optional values: auto, on, off.
option ipv6_support 'auto'

# Optional values: trace, debug, info, warn or error
option log_level 'info'

# The path of log file
option log_file '/var/log/v2raya/v2raya.log'

# Maximum number of days to keep log files
option log_max_days '3'

option log_disable_color '1'

option log_disable_timestamp '0'

# 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_confdir ''

# Specify the certification path instead of automatically generating a self-signed certificate.
# Example: /etc/v2raya/grpc_certificate.crt,/etc/v2raya/grpc_private.key
option vless_grpc_inbound_cert_key ''

71 changes: 71 additions & 0 deletions net/v2raya/files/v2raya.init
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
#!/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_bool enabled "$1" "$2" "${3:-0}"
if [ "$enabled" -eq "1" ]; then
return 0
else
return 1
fi
}

append_env() {
procd_append_param env "V2RAYA_$(echo "$1" | tr "[a-z]" "[A-Z]")"="$2"
}

append_env_arg() {
local value
config_get value "$1" "$2" $3
[ -n "$value" ] && append_env "$2" "$value"
}

append_env_bool() {
is_enabled "$1" "$2" && append_env "$2" "true"
}

start_service() {
config_load "$CONF"

is_enabled "config" "enabled" || return 1

procd_open_instance "$CONF"
procd_set_param command "$PROG"
procd_set_param env XDG_DATA_HOME="/usr/share"

append_env_arg "config" "address" "0.0.0.0:2017"
append_env_arg "config" "config" "/etc/v2raya"
append_env_arg "config" "ipv6_support" "auto"
append_env_arg "config" "log_level" "info"
append_env_arg "config" "log_file" "/var/log/v2raya/v2raya.log"
append_env_arg "config" "log_max_days" "3"
append_env_arg "config" "v2ray_bin"
append_env_arg "config" "v2ray_confdir"
append_env_arg "config" "vless_grpc_inbound_cert_key"
append_env_bool "config" "log_disable_color"
append_env_bool "config" "log_disable_timestamp"

procd_set_param limits core="unlimited"
procd_set_param limits nofile="1000000 1000000"
procd_set_param respawn
procd_set_param stdout 1
procd_set_param stderr 1

procd_close_instance
}

reload_service() {
stop
start
}

service_triggers() {
procd_add_reload_trigger "$CONF"
}
3 changes: 3 additions & 0 deletions net/v2raya/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh

v2raya --version | grep "$PKG_VERSION"
4 changes: 2 additions & 2 deletions net/xray-core/files/xray.init
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ start_service() {
config_load "$CONF"

local enabled
config_get enabled "enabled" "enabled" "0"
[ "$enabled" -eq "0" ] && exit 1
config_get_bool enabled "enabled" "enabled" "0"
[ "$enabled" -eq "1" ] || return 1

local confdir
local conffiles
Expand Down