aboutsummaryrefslogtreecommitdiff
path: root/net/frp
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2021-03-18 06:08:18 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2021-03-18 06:08:18 +0000
commitdf9a70e18fdbbd92e828ce3d16b1b609ffac2432 (patch)
treecafc35132e6a491775937cabf54648768185ef14 /net/frp
parent1e0194f6a809922aa61b1a5c570a6c443928ab2f (diff)
downloadports-df9a70e18fdbbd92e828ce3d16b1b609ffac2432.tar.gz
ports-df9a70e18fdbbd92e828ce3d16b1b609ffac2432.zip
Notes
Diffstat (limited to 'net/frp')
-rw-r--r--net/frp/Makefile80
-rw-r--r--net/frp/distinfo115
-rw-r--r--net/frp/pkg-descr8
3 files changed, 203 insertions, 0 deletions
diff --git a/net/frp/Makefile b/net/frp/Makefile
new file mode 100644
index 000000000000..0581d5121a42
--- /dev/null
+++ b/net/frp/Makefile
@@ -0,0 +1,80 @@
+# $FreeBSD$
+
+PORTNAME= frp
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.36.1
+CATEGORIES= net
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Reverse proxy to expose local server behind NAT/firewall to Internet
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= go:modules
+
+USE_GITHUB= yes
+GH_ACCOUNT= fatedier
+GH_TUPLE= \
+ Azure:go-ntlmssp:66371956d46c:azure_go_ntlmssp/vendor/github.com/Azure/go-ntlmssp \
+ armon:go-socks5:e75332964ef5:armon_go_socks5/vendor/github.com/armon/go-socks5 \
+ beorn7:perks:v1.0.1:beorn7_perks/vendor/github.com/beorn7/perks \
+ cespare:xxhash:v2.1.1:cespare_xxhash_v2/vendor/github.com/cespare/xxhash/v2 \
+ coreos:go-oidc:v2.2.1:coreos_go_oidc/vendor/github.com/coreos/go-oidc \
+ davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \
+ fatedier:beego:6c6a4f5bd5eb:fatedier_beego/vendor/github.com/fatedier/beego \
+ fatedier:golib:1f870741e185:fatedier_golib/vendor/github.com/fatedier/golib \
+ fatedier:kcp-go:fe8645b0a904:fatedier_kcp_go/vendor/github.com/fatedier/kcp-go \
+ fsnotify:fsnotify:v1.4.9:fsnotify_fsnotify/vendor/github.com/fsnotify/fsnotify \
+ go-ini:ini:v1.62.0:go_ini_ini/vendor/gopkg.in/ini.v1 \
+ go-tomb:tomb:dd632973f1e7:go_tomb_tomb/vendor/gopkg.in/tomb.v1 \
+ go-yaml:yaml:v2.3.0:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \
+ golang:appengine:v1.4.0:golang_appengine/vendor/google.golang.org/appengine \
+ golang:crypto:c2843e01d9a2:golang_crypto/vendor/golang.org/x/crypto \
+ golang:net:59133d7f0dd7:golang_net/vendor/golang.org/x/net \
+ golang:oauth2:bf48bf16ab8d:golang_oauth2/vendor/golang.org/x/oauth2 \
+ golang:protobuf:v1.4.2:golang_protobuf/vendor/github.com/golang/protobuf \
+ golang:snappy:v0.0.1:golang_snappy/vendor/github.com/golang/snappy \
+ golang:sys:6fdc65e7d980:golang_sys/vendor/golang.org/x/sys \
+ golang:text:v0.3.2:golang_text/vendor/golang.org/x/text \
+ golang:time:555d28b269f0:golang_time/vendor/golang.org/x/time \
+ golang:xerrors:9bdfabe68543:golang_xerrors/vendor/golang.org/x/xerrors \
+ google:uuid:v1.1.1:google_uuid/vendor/github.com/google/uuid \
+ gorilla:mux:v1.7.3:gorilla_mux/vendor/github.com/gorilla/mux \
+ gorilla:websocket:v1.4.0:gorilla_websocket/vendor/github.com/gorilla/websocket \
+ hashicorp:yamux:2f1d1f20f75d:hashicorp_yamux/vendor/github.com/hashicorp/yamux \
+ inconshreveable:mousetrap:v1.0.0:inconshreveable_mousetrap/vendor/github.com/inconshreveable/mousetrap \
+ klauspost:cpuid:v1.2.0:klauspost_cpuid/vendor/github.com/klauspost/cpuid \
+ klauspost:reedsolomon:v1.9.1:klauspost_reedsolomon/vendor/github.com/klauspost/reedsolomon \
+ kubernetes:apimachinery:v0.18.3:kubernetes_apimachinery/vendor/k8s.io/apimachinery \
+ mattn:go-runewidth:v0.0.4:mattn_go_runewidth/vendor/github.com/mattn/go-runewidth \
+ matttproud:golang_protobuf_extensions:v1.0.1:matttproud_golang_protobuf_extensions/vendor/github.com/matttproud/golang_protobuf_extensions \
+ nxadm:tail:v1.4.4:nxadm_tail/vendor/github.com/nxadm/tail \
+ onsi:ginkgo:v1.12.3:onsi_ginkgo/vendor/github.com/onsi/ginkgo \
+ onsi:gomega:v1.10.1:onsi_gomega/vendor/github.com/onsi/gomega \
+ pires:go-proxyproto:4d51b51e3bfc:pires_go_proxyproto/vendor/github.com/pires/go-proxyproto \
+ pkg:errors:v0.8.1:pkg_errors/vendor/github.com/pkg/errors \
+ pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \
+ pquerna:cachecontrol:1555304b9b35:pquerna_cachecontrol/vendor/github.com/pquerna/cachecontrol \
+ prometheus:client_golang:v1.4.1:prometheus_client_golang/vendor/github.com/prometheus/client_golang \
+ prometheus:client_model:v0.2.0:prometheus_client_model/vendor/github.com/prometheus/client_model \
+ prometheus:common:v0.9.1:prometheus_common/vendor/github.com/prometheus/common \
+ prometheus:procfs:v0.0.8:prometheus_procfs/vendor/github.com/prometheus/procfs \
+ protocolbuffers:protobuf-go:v1.23.0:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \
+ rakyll:statik:v0.1.1:rakyll_statik/vendor/github.com/rakyll/statik \
+ rodaine:table:v1.0.0:rodaine_table/vendor/github.com/rodaine/table \
+ smartystreets:goconvey:v1.6.4:smartystreets_goconvey/vendor/github.com/smartystreets/goconvey \
+ spf13:cobra:v0.0.3:spf13_cobra/vendor/github.com/spf13/cobra \
+ spf13:pflag:v1.0.5:spf13_pflag/vendor/github.com/spf13/pflag \
+ square:go-jose:v2.4.1:square_go_jose/vendor/gopkg.in/square/go-jose.v2 \
+ stretchr:testify:v1.4.0:stretchr_testify/vendor/github.com/stretchr/testify \
+ templexxx:cpufeat:3794dfbfb047:templexxx_cpufeat/vendor/github.com/templexxx/cpufeat \
+ templexxx:xor:0af8e873c554:templexxx_xor/vendor/github.com/templexxx/xor \
+ tjfoc:gmsm:98aa888b79d8:tjfoc_gmsm/vendor/github.com/tjfoc/gmsm \
+ xtaci:lossyconn:8df528c0c9ae:xtaci_lossyconn/vendor/github.com/xtaci/lossyconn
+GO_TARGET= ./cmd/frpc ./cmd/frps
+
+PLIST_FILES= bin/frpc \
+ bin/frps
+
+.include <bsd.port.mk>
diff --git a/net/frp/distinfo b/net/frp/distinfo
new file mode 100644
index 000000000000..a514939e8fd4
--- /dev/null
+++ b/net/frp/distinfo
@@ -0,0 +1,115 @@
+TIMESTAMP = 1616047274
+SHA256 (fatedier-frp-v0.36.1_GH0.tar.gz) = b49f3d3a0f67dde4bde6dde0617947d0bd1a669f949dd956866ad0727abf0c35
+SIZE (fatedier-frp-v0.36.1_GH0.tar.gz) = 1898513
+SHA256 (Azure-go-ntlmssp-66371956d46c_GH0.tar.gz) = 24b46602ef1adae845ec6938550d14ce9a93b4f2171201af0a29da421b611139
+SIZE (Azure-go-ntlmssp-66371956d46c_GH0.tar.gz) = 8131
+SHA256 (armon-go-socks5-e75332964ef5_GH0.tar.gz) = 37f9cad3e321c452ea54824021ecd5b6ef4222c68b25f9c8a66a0c6d8411437e
+SIZE (armon-go-socks5-e75332964ef5_GH0.tar.gz) = 8586
+SHA256 (beorn7-perks-v1.0.1_GH0.tar.gz) = 98db84bb0224a26094e6adba91b7ee7a1a7ace28cb648d818f8e779e6a19f825
+SIZE (beorn7-perks-v1.0.1_GH0.tar.gz) = 10867
+SHA256 (cespare-xxhash-v2.1.1_GH0.tar.gz) = 0ee31178d2c5a1249be4e26294a2f428008dc4e1ecbbfbe47f74e41026df1148
+SIZE (cespare-xxhash-v2.1.1_GH0.tar.gz) = 9292
+SHA256 (coreos-go-oidc-v2.2.1_GH0.tar.gz) = e9a5b72b34e4657f526bb85d11b9afc05e84418a430713844a6aa3365b4373d0
+SIZE (coreos-go-oidc-v2.2.1_GH0.tar.gz) = 24136
+SHA256 (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e
+SIZE (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 42152
+SHA256 (fatedier-beego-6c6a4f5bd5eb_GH0.tar.gz) = eb20eb3691a2e3f0bee9efb2373c09a5ee5338402ef40bfcd9d758d54a901ed1
+SIZE (fatedier-beego-6c6a4f5bd5eb_GH0.tar.gz) = 266428
+SHA256 (fatedier-golib-1f870741e185_GH0.tar.gz) = e5bcb8b5722d4a577c47b24bfb29e3cba063fa59b271811871c5e58e83607bb0
+SIZE (fatedier-golib-1f870741e185_GH0.tar.gz) = 16230
+SHA256 (fatedier-kcp-go-fe8645b0a904_GH0.tar.gz) = e4d065e49917c0f4d9c69e0620fed440bab86454aafb5e5cb5863403c14562cf
+SIZE (fatedier-kcp-go-fe8645b0a904_GH0.tar.gz) = 135805
+SHA256 (fsnotify-fsnotify-v1.4.9_GH0.tar.gz) = 4f888b1cb132026227826751d156c0a2958e7d492e5e38386cde8848ef494dcb
+SIZE (fsnotify-fsnotify-v1.4.9_GH0.tar.gz) = 31900
+SHA256 (go-ini-ini-v1.62.0_GH0.tar.gz) = 926ca2ff49018dc5c0991f3a790bc2083a3c52c470167d42f0f0bcd6642ff64e
+SIZE (go-ini-ini-v1.62.0_GH0.tar.gz) = 50314
+SHA256 (go-tomb-tomb-dd632973f1e7_GH0.tar.gz) = b67f4ee9324a78176bc3196fe262388696aeb3f31d9879d498200219f9c4c554
+SIZE (go-tomb-tomb-dd632973f1e7_GH0.tar.gz) = 3631
+SHA256 (go-yaml-yaml-v2.3.0_GH0.tar.gz) = 42027002bf258009d498600b04b8c9cbb29d2193185ea7bfa8fefe194fe72a07
+SIZE (go-yaml-yaml-v2.3.0_GH0.tar.gz) = 72816
+SHA256 (golang-appengine-v1.4.0_GH0.tar.gz) = 88b39d4ea8c910849238fea21a52b7fbb53ed63bce64c2496959ebdb8ab36dad
+SIZE (golang-appengine-v1.4.0_GH0.tar.gz) = 325752
+SHA256 (golang-crypto-c2843e01d9a2_GH0.tar.gz) = a4d91350f176b2ef99084cd71f990ecee5f549efed72ef59a5b9e425a00d454a
+SIZE (golang-crypto-c2843e01d9a2_GH0.tar.gz) = 1650817
+SHA256 (golang-net-59133d7f0dd7_GH0.tar.gz) = ea0a358ca3f8e31ba20c4f20177c4fb8a081ad5119543ea454cabfd8707b5b16
+SIZE (golang-net-59133d7f0dd7_GH0.tar.gz) = 1174691
+SHA256 (golang-oauth2-bf48bf16ab8d_GH0.tar.gz) = 28b3a51a8bd90beb5952d1080218ea238127edfe9455ad48921989619ff918a8
+SIZE (golang-oauth2-bf48bf16ab8d_GH0.tar.gz) = 47016
+SHA256 (golang-protobuf-v1.4.2_GH0.tar.gz) = a1e486b3ed6f502c43e10cb28bde4e8f020a420ef9958d3fbe61801492c07c87
+SIZE (golang-protobuf-v1.4.2_GH0.tar.gz) = 171778
+SHA256 (golang-snappy-v0.0.1_GH0.tar.gz) = b1d97f47fcb61cb0cdd54bc424eda980c47838effb0ec9e322506514a50fee85
+SIZE (golang-snappy-v0.0.1_GH0.tar.gz) = 62605
+SHA256 (golang-sys-6fdc65e7d980_GH0.tar.gz) = 5c36375f2b9646fecf7a7f146be0780fe7ae1b030e10fb1a0ff75794569d07b7
+SIZE (golang-sys-6fdc65e7d980_GH0.tar.gz) = 1054144
+SHA256 (golang-text-v0.3.2_GH0.tar.gz) = 0b9309698f5708531c5377ab1e29b423a6d9e20c55a8d386c3b8283428212f22
+SIZE (golang-text-v0.3.2_GH0.tar.gz) = 7168069
+SHA256 (golang-time-555d28b269f0_GH0.tar.gz) = 8ce368da65025dad4e4ed302a5835e2b3579f3a111721f9b275803519a5d10b3
+SIZE (golang-time-555d28b269f0_GH0.tar.gz) = 9577
+SHA256 (golang-xerrors-9bdfabe68543_GH0.tar.gz) = 54bb4d99e6cba2e3e5331d064f46640cc01a0e630ee6a684ae810bd94a7e4eb7
+SIZE (golang-xerrors-9bdfabe68543_GH0.tar.gz) = 13657
+SHA256 (google-uuid-v1.1.1_GH0.tar.gz) = bebd4b0b4ea152a9793615ef23c83f688876d8c284a2092264d20a4bf4ffc423
+SIZE (google-uuid-v1.1.1_GH0.tar.gz) = 13543
+SHA256 (gorilla-mux-v1.7.3_GH0.tar.gz) = 92adb9aea022f8b35686b75be50ba1206c4457c2f8a0e2a9d10d8721f35b3f11
+SIZE (gorilla-mux-v1.7.3_GH0.tar.gz) = 42495
+SHA256 (gorilla-websocket-v1.4.0_GH0.tar.gz) = 2b5743c72bd0930c5a80e49c0138b5b7d27fa7c085efd0c86805cccfa7220c9d
+SIZE (gorilla-websocket-v1.4.0_GH0.tar.gz) = 50228
+SHA256 (hashicorp-yamux-2f1d1f20f75d_GH0.tar.gz) = 9481b16c104ebac8dc992358826db2ddadab0993131627a689dbf1f7c572f755
+SIZE (hashicorp-yamux-2f1d1f20f75d_GH0.tar.gz) = 23277
+SHA256 (inconshreveable-mousetrap-v1.0.0_GH0.tar.gz) = 5edc7731c819c305623568e317aa253d342be3447def97f1fa9e10eb5ad819f6
+SIZE (inconshreveable-mousetrap-v1.0.0_GH0.tar.gz) = 2290
+SHA256 (klauspost-cpuid-v1.2.0_GH0.tar.gz) = aa29ebcf12669eef96c7c54b551617b90b65c55d126ef0ff9fbacd605e738a67
+SIZE (klauspost-cpuid-v1.2.0_GH0.tar.gz) = 278872
+SHA256 (klauspost-reedsolomon-v1.9.1_GH0.tar.gz) = 3e67fb70380ae949a50159b7347eb24ab9160258b768de9ab32fa7df4d351bea
+SIZE (klauspost-reedsolomon-v1.9.1_GH0.tar.gz) = 159389
+SHA256 (kubernetes-apimachinery-v0.18.3_GH0.tar.gz) = eb5fe41699643bf2b265ba23e89151cf9e0a8bc02c276abf996c013edcf3e9f8
+SIZE (kubernetes-apimachinery-v0.18.3_GH0.tar.gz) = 523694
+SHA256 (mattn-go-runewidth-v0.0.4_GH0.tar.gz) = 1973c2de25bc69c3786a00e8118f4d22aa0d040bdfe46c8c8c30419b23e53dfe
+SIZE (mattn-go-runewidth-v0.0.4_GH0.tar.gz) = 19827
+SHA256 (matttproud-golang_protobuf_extensions-v1.0.1_GH0.tar.gz) = 2def0ee6f6b12b1efc0e3007d89f598608a072610e805c3655ea9d13c3ead49b
+SIZE (matttproud-golang_protobuf_extensions-v1.0.1_GH0.tar.gz) = 37184
+SHA256 (nxadm-tail-v1.4.4_GH0.tar.gz) = 08a132336f9043bdb364f2c50552f3105263108b97319f3b69fbcccfacbef76b
+SIZE (nxadm-tail-v1.4.4_GH0.tar.gz) = 1238275
+SHA256 (onsi-ginkgo-v1.12.3_GH0.tar.gz) = 5942b56eeb8f598a72f1871ad13e0f0e78f1eb62ec9b3c819eea6184cb6ec076
+SIZE (onsi-ginkgo-v1.12.3_GH0.tar.gz) = 142563
+SHA256 (onsi-gomega-v1.10.1_GH0.tar.gz) = c54eb65efc0e4b226dac7798b962135ce6e749ffab056611c04337e2c4367dc8
+SIZE (onsi-gomega-v1.10.1_GH0.tar.gz) = 97294
+SHA256 (pires-go-proxyproto-4d51b51e3bfc_GH0.tar.gz) = 40d9acc695b9a2ed50cf73613dabd6ea87deae2b3cbdfad9cf9f8d66cff2a424
+SIZE (pires-go-proxyproto-4d51b51e3bfc_GH0.tar.gz) = 11610
+SHA256 (pkg-errors-v0.8.1_GH0.tar.gz) = 7a428967c6fc2e80cd84a0d9469ab6bd4dbe6b13493ba6294322a933a5a7e356
+SIZE (pkg-errors-v0.8.1_GH0.tar.gz) = 11009
+SHA256 (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda
+SIZE (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398
+SHA256 (pquerna-cachecontrol-1555304b9b35_GH0.tar.gz) = 3611cc14c2de3c0f2df51d98d440673b32f6a906de213098abbdb0bb5eed6919
+SIZE (pquerna-cachecontrol-1555304b9b35_GH0.tar.gz) = 18998
+SHA256 (prometheus-client_golang-v1.4.1_GH0.tar.gz) = 98a59a22033b87f160e882e6bf30b20715bf78d27964e5d1b8a99889412fefdf
+SIZE (prometheus-client_golang-v1.4.1_GH0.tar.gz) = 148394
+SHA256 (prometheus-client_model-v0.2.0_GH0.tar.gz) = 4ab1be9cdfa702d7f49beeb09a256bcc6a2aad55e8a0a37e7732a46934264e12
+SIZE (prometheus-client_model-v0.2.0_GH0.tar.gz) = 10986
+SHA256 (prometheus-common-v0.9.1_GH0.tar.gz) = a36c6c9ad9da26e20fe7b0a3b0ffe6d3b6d30695289a2caf4d4bdad11620c91c
+SIZE (prometheus-common-v0.9.1_GH0.tar.gz) = 107014
+SHA256 (prometheus-procfs-v0.0.8_GH0.tar.gz) = 1c26c8b86a9b1902684f860f94d0bf4b94abcc570e456bf9a74d1c9d83643872
+SIZE (prometheus-procfs-v0.0.8_GH0.tar.gz) = 126299
+SHA256 (protocolbuffers-protobuf-go-v1.23.0_GH0.tar.gz) = e7266bedaa4f110216fce52ae533dc5eba475d3829bb0592e8876684e202ae1f
+SIZE (protocolbuffers-protobuf-go-v1.23.0_GH0.tar.gz) = 1214648
+SHA256 (rakyll-statik-v0.1.1_GH0.tar.gz) = c68ef3120a22bcf5bd5e8391db3507baeefc7047aa6539053229885287d0beb3
+SIZE (rakyll-statik-v0.1.1_GH0.tar.gz) = 78276
+SHA256 (rodaine-table-v1.0.0_GH0.tar.gz) = d74e827a083ae52d76c386a856065db14811630f939c2ed4b59bc486291a00f9
+SIZE (rodaine-table-v1.0.0_GH0.tar.gz) = 5550
+SHA256 (smartystreets-goconvey-v1.6.4_GH0.tar.gz) = 88714f84d0a989c4ba60e1f2b65e426dc7e23058ca0b9f06cb77613cb22b010b
+SIZE (smartystreets-goconvey-v1.6.4_GH0.tar.gz) = 1478622
+SHA256 (spf13-cobra-v0.0.3_GH0.tar.gz) = 7eafb953b58fdd738c4db5202d94a0b6ac0de4f07718fc85a80450c2347c2f9c
+SIZE (spf13-cobra-v0.0.3_GH0.tar.gz) = 101526
+SHA256 (spf13-pflag-v1.0.5_GH0.tar.gz) = 9a2cae1f8e8ab0d2cc8ebe468e871af28d9ac0962cf0520999e3ba85f0c7b808
+SIZE (spf13-pflag-v1.0.5_GH0.tar.gz) = 50796
+SHA256 (square-go-jose-v2.4.1_GH0.tar.gz) = b675a128c23f9181f9779f74631a442bbe93f24e18aef5b161788019c4445dac
+SIZE (square-go-jose-v2.4.1_GH0.tar.gz) = 304063
+SHA256 (stretchr-testify-v1.4.0_GH0.tar.gz) = 3ae072321569a8cd6d77de8f3be774165e136198ce808df0a31589237ba59698
+SIZE (stretchr-testify-v1.4.0_GH0.tar.gz) = 110085
+SHA256 (templexxx-cpufeat-3794dfbfb047_GH0.tar.gz) = 2b8fa227849664aa0816beb7ecf87d341e46b549f52d5486de6cb230bc2703ef
+SIZE (templexxx-cpufeat-3794dfbfb047_GH0.tar.gz) = 2833
+SHA256 (templexxx-xor-0af8e873c554_GH0.tar.gz) = 7d96c3c370c160f46c0e091629f19f3f1b24fd6fde2ec1b1b24ef5d9751dfb16
+SIZE (templexxx-xor-0af8e873c554_GH0.tar.gz) = 6426
+SHA256 (tjfoc-gmsm-98aa888b79d8_GH0.tar.gz) = 1a08a9eb73d0f65e3391c1570e1ba04b840124ff80c564c79511a46042c111f0
+SIZE (tjfoc-gmsm-98aa888b79d8_GH0.tar.gz) = 59384
+SHA256 (xtaci-lossyconn-8df528c0c9ae_GH0.tar.gz) = 73c12a93e5a51834890a2308238d72f42742d61159ffbdb58fe728e9a6796b10
+SIZE (xtaci-lossyconn-8df528c0c9ae_GH0.tar.gz) = 5320
diff --git a/net/frp/pkg-descr b/net/frp/pkg-descr
new file mode 100644
index 000000000000..c9ee1a5f8372
--- /dev/null
+++ b/net/frp/pkg-descr
@@ -0,0 +1,8 @@
+frp is a fast reverse proxy to help you expose a local server behind a NAT or
+firewall to the Internet. As of now, it supports TCP and UDP, as well as HTTP
+and HTTPS protocols, where requests can be forwarded to internal services by
+domain name.
+
+frp also has a P2P connect mode.
+
+WWW: https://github.com/fatedier/frp