From 9d2d678db500084e108b78c746da4e720a8b8e51 Mon Sep 17 00:00:00 2001 From: Dobroslaw Kijowski Date: Tue, 2 Jun 2020 15:19:52 +0200 Subject: [PATCH] adguardhome: Implement initial package recipe AdGuardHome is a network-wide ads and trackers blocking DNS server. After installing it with opkg, start it like every service: /etc/init.d/adguardhome start In order to complete the installation vist http://{YOUR_ROUTERS_IP}:3000. Then you can setup dnsmasq to forward DNS traffic to AdGuardHome: uci -q delete dhcp.@dnsmasq[0].server uci add_list dhcp.@dnsmasq[0].server=127.0.0.1#{PORT_SET_DURING_INSTALL} uci set dhcp.@dnsmasq[0].noresolv=1 uci commit dhcp /etc/init.d/dnsmasq restart Signed-off-by: Dobroslaw Kijowski --- net/adguardhome/Makefile | 66 ++++++++++++++++++++++++++ net/adguardhome/files/adguardhome.init | 17 +++++++ 2 files changed, 83 insertions(+) create mode 100644 net/adguardhome/Makefile create mode 100644 net/adguardhome/files/adguardhome.init diff --git a/net/adguardhome/Makefile b/net/adguardhome/Makefile new file mode 100644 index 000000000..a43ce0818 --- /dev/null +++ b/net/adguardhome/Makefile @@ -0,0 +1,66 @@ +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=adguardhome +PKG_VERSION:=0.103.3 +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_VERSION:=v$(PKG_VERSION) +PKG_SOURCE_URL:=https://github.com/AdguardTeam/AdGuardHome +PKG_MIRROR_HASH:=edf00ede9d208b7f78574e267ad2617dd4d4f06548cb2e6369cc1ad702427d9a + +PKG_LICENSE:=GPL-3.0-only +PKG_LICENSE_FILES:=LICENSE.txt +PKG_MAINTAINER:=Dobroslaw Kijowski + +PKG_BUILD_DEPENDS:=golang/host node/host packr/host +PKG_BUILD_PARALLEL:=1 +PKG_USE_MIPS16:=0 + +GO_PKG:=github.com/AdguardTeam/AdGuardHome +GO_PKG_EXCLUDES:=dhcpd/standalone +GO_PKG_LDFLAGS_X:=main.version=$(PKG_VERSION) main.channel=release main.goarm=$(GO_ARM) + +include $(INCLUDE_DIR)/package.mk +include ../../lang/golang/golang-package.mk + +define Package/adguardhome + SECTION:=net + CATEGORY:=Network + TITLE:=Network-wide ads and trackers blocking DNS server + URL:=https://github.com/AdguardTeam/AdGuardHome + DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle +endef + +define Package/adguardhome/conffiles +/etc/adguardhome.yaml +endef + +define Package/adguardhome/description +Free and open source, powerful network-wide ads and trackers blocking DNS server. +endef + +define Build/Compile + ( \ + pushd $(PKG_BUILD_DIR) ; \ + npm --prefix client ci ; \ + npm --prefix client run build-prod ; \ + packr -z -v -i home ; \ + popd ; \ + $(call GoPackage/Build/Compile) ; \ + ) +endef + +define Package/adguardhome/install + $(call GoPackage/Package/Install/Bin,$(1)) + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/adguardhome.init $(1)/etc/init.d/adguardhome +endef + +$(eval $(call GoBinPackage,adguardhome)) +$(eval $(call BuildPackage,adguardhome)) diff --git a/net/adguardhome/files/adguardhome.init b/net/adguardhome/files/adguardhome.init new file mode 100644 index 000000000..f2c733534 --- /dev/null +++ b/net/adguardhome/files/adguardhome.init @@ -0,0 +1,17 @@ +#!/bin/sh /etc/rc.common + +PROG=/usr/bin/AdGuardHome +USE_PROCD=1 + +# starts after network starts +START=21 +# stops before networking stops +STOP=89 + +start_service() { + procd_open_instance + procd_set_param command "$PROG" -c /etc/adguardhome.yaml -w /tmp/adguardhome --no-check-update + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_close_instance +}