summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO29
-rw-r--r--.gitignore4
-rw-r--r--PKGBUILD63
-rw-r--r--client.env19
-rw-r--r--frp-panel.install33
-rw-r--r--frp-panel.tmpfiles1
-rw-r--r--frp-panel@.service16
-rw-r--r--master.env12
-rw-r--r--server.env19
9 files changed, 196 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..0488a6458df0
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,29 @@
+pkgbase = frp-panel
+ pkgdesc = A multi node frp webui and for frp server and client management
+ pkgver = 0.0.10
+ pkgrel = 1
+ url = https://github.com/VaalaCat/frp-panel
+ install = frp-panel.install
+ arch = any
+ license = unkown
+ makedepends = npm
+ makedepends = go
+ depends = glibc
+ depends = systemd
+ backup = etc/frp-panel/client.env
+ backup = etc/frp-panel/master.env
+ backup = etc/frp-panel/server.env
+ source = frp-panel-0.0.10.tar.gz::https://github.com/VaalaCat/frp-panel/archive/refs/tags/v0.0.10.tar.gz
+ source = frp-panel.tmpfiles
+ source = frp-panel@.service
+ source = client.env
+ source = master.env
+ source = server.env
+ sha256sums = 2aa83c1d3236cb891d10aa551e223568b116924a8102e3c17946bd2b6daeaaa6
+ sha256sums = d909eac5b51218404824363ce35886fcd2a8065773ffecde8f64855a107369a0
+ sha256sums = a82a0d6fb9498a283137a90862a4bf65486368cfe88c25f7b901d4d914da7ca4
+ sha256sums = f2fc53b07bf23f1f4a75c6df2c4823129ed25540f9bee6984241bfa682613667
+ sha256sums = 2badfc944453e83520f4f65a74dd013127c50fcf9b47d32dd924fc0924604551
+ sha256sums = 51d40f4cf57cddea09fd888790dc16682057fc5583235e55134673bcc60915f8
+
+pkgname = frp-panel
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..9acdf966c1a9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+pkg
+src
+*.tar.gz
+*.pkg.tar.zst
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..5bd0c7b21a7b
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Evine Deng <evinedeng@hotmail.com>
+
+pkgname="frp-panel"
+pkgver=0.0.10
+pkgrel=1
+pkgdesc="A multi node frp webui and for frp server and client management"
+arch=("any")
+url="https://github.com/VaalaCat/${pkgname}"
+backup=(
+ "etc/${pkgname}/client.env"
+ "etc/${pkgname}/master.env"
+ "etc/${pkgname}/server.env"
+)
+license=("unkown")
+depends=("glibc" "systemd")
+makedepends=("npm" "go")
+install="${pkgname}.install"
+source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz"
+ "${pkgname}.tmpfiles"
+ "${pkgname}@.service"
+ "client.env"
+ "master.env"
+ "server.env")
+sha256sums=('2aa83c1d3236cb891d10aa551e223568b116924a8102e3c17946bd2b6daeaaa6'
+ 'd909eac5b51218404824363ce35886fcd2a8065773ffecde8f64855a107369a0'
+ 'a82a0d6fb9498a283137a90862a4bf65486368cfe88c25f7b901d4d914da7ca4'
+ 'f2fc53b07bf23f1f4a75c6df2c4823129ed25540f9bee6984241bfa682613667'
+ '2badfc944453e83520f4f65a74dd013127c50fcf9b47d32dd924fc0924604551'
+ '51d40f4cf57cddea09fd888790dc16682057fc5583235e55134673bcc60915f8')
+
+build() {
+ cd "${pkgname}-${pkgver}"
+
+ npm --prefix www install
+ npm --prefix www run build
+
+ go mod download
+
+ local ldflags="-s -w -extldflags '${LDFLAGS}'"
+
+ go build \
+ -trimpath \
+ -ldflags="$ldflags" \
+ -o "${pkgname}" \
+ ./cmd/*.go
+
+ ./frp-panel completion zsh > _zsh
+ ./frp-panel completion bash > _bash
+ ./frp-panel completion fish > _fish
+}
+
+package() {
+ cd "${pkgname}-${pkgver}"
+ install -Dm755 "${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
+ install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md"
+ install -Dm644 _zsh "${pkgdir}/usr/share/zsh/site-functions/_${pkgname}"
+ install -Dm644 _bash "${pkgdir}/usr/share/bash-completion/completions/${pkgname}"
+ install -Dm644 _fish "${pkgdir}/usr/share/fish/vendor_completions.d/${pkgname}.fish"
+
+ install -Dm644 "../${pkgname}.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
+ install -Dm644 "../${pkgname}@.service" "${pkgdir}/usr/lib/systemd/system/${pkgname}@.service"
+ install -Dm644 -t "${pkgdir}/etc/${pkgname}" ../*.env
+}
diff --git a/client.env b/client.env
new file mode 100644
index 000000000000..068fdf82215f
--- /dev/null
+++ b/client.env
@@ -0,0 +1,19 @@
+## For client nodes, '-s' and '-i' are mandatory settings, please set others as needed, such as:
+## START_PARAMS="-s abcdefghijklmn -i 1234567890"
+
+## 对client节点,-s和-i是必须设置的,其他请根据需要设置,形如:
+## START_PARAMS="-s abcdefghijklmn -i 1234567890"
+
+# Usage:
+# frp-panel client [-s client_secret] [-i client_id] [-a app_secret] [-r rpc_host] [-c rpc_port] [-p api_port] [flags]
+
+# Flags:
+# -p, --api-port int api port
+# -e, --api-scheme string api scheme
+# -a, --app string app secret
+# -i, --id string client id (default "pkg")
+# -r, --rpc string rpc host
+# -c, --rpc-port int rpc port
+# -s, --secret string client secret
+
+START_PARAMS=""
diff --git a/frp-panel.install b/frp-panel.install
new file mode 100644
index 000000000000..379b932d42e4
--- /dev/null
+++ b/frp-panel.install
@@ -0,0 +1,33 @@
+#/usr/bin/env bash
+
+_pkgname="frp-panel"
+all_off="$(tput sgr0)"
+bold="${all_off}$(tput bold)"
+blue="${bold}$(tput setaf 4)"
+yellow="${bold}$(tput setaf 3)"
+
+note() {
+ printf "${blue}==>${yellow} NOTE:${bold} $1${all_off}\n"
+}
+
+post_install() {
+ if [[ $LANG == "zh_CN.UTF-8" ]]; then
+ note "master 节点的环境变量文件为 '/etc/ftp-panel/master.env' ...
+ master 节点的启动命令为 'systemctl enable --now $_pkgname@master.service' ...
+ server 节点的环境变量文件为 '/etc/ftp-panel/server.env' ...
+ server 节点的启动命令为 'systemctl enable --now $_pkgname@server.service' ...
+ client 节点的环境变量文件为 '/etc/ftp-panel/vlient.env' ...
+ client 节点的启动命令为 'systemctl enable --now $_pkgname@client.service' ..."
+ else
+ note "master node environment file is '/etc/ftp-panel/master.env' ...
+ master node start with 'systemctl enable --now $_pkgname@master.service' ...
+ server node environment file is '/etc/ftp-panel/server.env' ...
+ server node start with 'systemctl enable --now $_pkgname@server.service' ...
+ client node environment file is '/etc/ftp-panel/client.env' ...
+ client node start with 'systemctl enable --now $_pkgname@client.service' ..."
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/frp-panel.tmpfiles b/frp-panel.tmpfiles
new file mode 100644
index 000000000000..03ed74f3c89f
--- /dev/null
+++ b/frp-panel.tmpfiles
@@ -0,0 +1 @@
+d /var/lib/frp-panel 0755 root root -
diff --git a/frp-panel@.service b/frp-panel@.service
new file mode 100644
index 000000000000..32f9aa1f0a64
--- /dev/null
+++ b/frp-panel@.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=frp-panel
+Documentation=https://github.com/VaalaCat/frp-panel
+After=network.target
+
+[Service]
+Type=simple
+Restart=always
+RestartSec=5
+StartLimitInterval=0
+EnvironmentFile=-/etc/frp-panel/%i.env
+WorkingDirectory=/var/lib/frp-panel
+ExecStart=/usr/bin/frp-panel %i $START_PARAMS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/master.env b/master.env
new file mode 100644
index 000000000000..57f5c6ab3ce3
--- /dev/null
+++ b/master.env
@@ -0,0 +1,12 @@
+## GIN debug or release mod
+GIN_MODE=release
+
+## Master Secret
+APP_GLOBAL_SECRET=""
+
+## Bind address
+MASTER_RPC_HOST="0.0.0.0"
+
+## for master, currently no parameters to set
+## 对master节点,暂时没有可以设置的参数
+START_PARAMS=""
diff --git a/server.env b/server.env
new file mode 100644
index 000000000000..d4ef07bfcd0b
--- /dev/null
+++ b/server.env
@@ -0,0 +1,19 @@
+## For server nodes, '-s' and '-i' are mandatory settings, please set others as needed, such as:
+## START_PARAMS="-s 'abcdefghijklmn' -i '1234567890'"
+
+## 对server节点,-s和-i是必须设置的,其他请根据需要设置,形如:
+## START_PARAMS="-s 'abcdefghijklmn' -i '1234567890'"
+
+# Usage:
+# frp-panel server [-s client_secret] [-i client_id] [-a app_secret] [-r rpc_host] [-c rpc_port] [-p api_port] [flags]
+
+# Flags:
+# -p, --api-port int api port
+# -e, --api-scheme string api scheme
+# -a, --app string app secret
+# -i, --id string client id (default "pkg")
+# -r, --rpc string rpc host
+# -c, --rpc-port int rpc port
+# -s, --secret string client secret
+
+START_PARAMS=""