diff options
-rw-r--r-- | .SRCINFO | 29 | ||||
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | PKGBUILD | 63 | ||||
-rw-r--r-- | client.env | 19 | ||||
-rw-r--r-- | frp-panel.install | 33 | ||||
-rw-r--r-- | frp-panel.tmpfiles | 1 | ||||
-rw-r--r-- | frp-panel@.service | 16 | ||||
-rw-r--r-- | master.env | 12 | ||||
-rw-r--r-- | server.env | 19 |
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="" |