Browse Source

cloudflared: add new package

Contains the command-line client for Cloudflare Tunnel, a tunneling
daemon that proxies traffic from the Cloudflare network to your origins.

Docs: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
lilik-openwrt-22.03
Tianling Shen 2 years ago
committed by Rosen Penev
parent
commit
35c109c7ff
5 changed files with 128 additions and 0 deletions
  1. +65
    -0
      net/cloudflared/Makefile
  2. +9
    -0
      net/cloudflared/files/cloudflared.config
  3. +48
    -0
      net/cloudflared/files/cloudflared.init
  4. +3
    -0
      net/cloudflared/files/sample_config.yml
  5. +3
    -0
      net/cloudflared/test.sh

+ 65
- 0
net/cloudflared/Makefile View File

@ -0,0 +1,65 @@
# SPDX-License-Identifier: GPL-3.0-only
#
# Copyright (C) 2021 ImmortalWrt.org
include $(TOPDIR)/rules.mk
PKG_NAME:=cloudflared
PKG_VERSION:=2022.3.1
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/cloudflare/cloudflared/tar.gz/$(PKG_VERSION)?
PKG_HASH:=e3459bc83d9749d89d93e6ab2dcbc51872568d1fb144d7ab7d3656b29785e364
PKG_LICENSE:=Apache-2.0
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/cloudflare/cloudflared
GO_PKG_LDFLAGS_X:=main.Version=$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
include ../../lang/golang/golang-package.mk
define Package/cloudflared
SECTION:=net
CATEGORY:=Network
SUBMENU:=Web Servers/Proxies
TITLE:=Cloudflare Tunnel client
URL:=https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide
DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle
endef
define Package/cloudflared/description
Contains the command-line client for Cloudflare Tunnel, a tunneling
daemon that proxies traffic from the Cloudflare network to your origins.
This daemon sits between Cloudflare network and your origin (e.g. a
webserver). Cloudflare attracts client requests and sends them to you
via this daemon, without requiring you to poke holes on your firewall
--- your origin can remain as closed as possible.
endef
define Package/cloudflared/conffiles
/etc/config/cloudflared
/etc/cloudflared/
endef
define Package/cloudflared/install
$(call GoPackage/Package/Install/Bin,$(1))
$(INSTALL_DIR) $(1)/etc/cloudflared/
$(INSTALL_CONF) $(CURDIR)/files/sample_config.yml $(1)/etc/cloudflared/config.yml
$(INSTALL_DIR) $(1)/etc/config/
$(INSTALL_CONF) $(CURDIR)/files/cloudflared.config $(1)/etc/config/cloudflared
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) $(CURDIR)/files/cloudflared.init $(1)/etc/init.d/cloudflared
endef
$(eval $(call GoBinPackage,cloudflared))
$(eval $(call BuildPackage,cloudflared))

+ 9
- 0
net/cloudflared/files/cloudflared.config View File

@ -0,0 +1,9 @@
config cloudflared 'config'
option enabled '0'
option config '/etc/cloudflared/config.yml'
option origincert '/etc/cloudflared/cert.pem'
option region ''
option loglevel 'info'
option logfile '/var/log/cloudflared.log'

+ 48
- 0
net/cloudflared/files/cloudflared.init View File

@ -0,0 +1,48 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2021 Tianling Shen <cnsztl@immortalwrt.org>
USE_PROCD=1
START=99
CONF="cloudflared"
PROG="/usr/bin/cloudflared"
append_param_arg() {
local value
config_get value "config" "$1" $2
[ -n "$value" ] && procd_append_param command "--$1" "$value"
}
start_service() {
config_load "$CONF"
local enabled
config_get_bool enabled "config" "enabled"
[ "$enabled" -eq "1" ] || exit 1
procd_open_instance "$CONF"
procd_set_param command "$PROG" "tunnel"
procd_append_param command "--no-autoupdate"
append_param_arg "config" "/etc/cloudflared/config.yml"
append_param_arg "origincert" "/etc/cloudflared/cert.pem"
append_param_arg "region"
append_param_arg "loglevel"
append_param_arg "logfile"
procd_append_param command "run"
procd_set_param respawn
procd_set_param stderr 1
procd_close_instance
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger "$CONF"
}

+ 3
- 0
net/cloudflared/files/sample_config.yml View File

@ -0,0 +1,3 @@
url: http://localhost:8000
tunnel: <Tunnel-UUID>
credentials-file: /etc/cloudflared/<Tunnel-UUID>.json

+ 3
- 0
net/cloudflared/test.sh View File

@ -0,0 +1,3 @@
#!/bin/sh
cloudflared --version | grep "$PKG_VERSION"

Loading…
Cancel
Save