diff --git a/cross/adguardhome/Makefile b/cross/adguardhome/Makefile
new file mode 100644
index 00000000000..3aefc6c0c61
--- /dev/null
+++ b/cross/adguardhome/Makefile
@@ -0,0 +1,28 @@
+PKG_NAME = adguardhome
+PKG_VERS = 0.107.48
+PKG_EXT = tar.gz
+PKG_DIST_NAME = v$(PKG_VERS).$(PKG_EXT)
+PKG_DIST_SITE = https://github.com/AdguardTeam/$(PKG_NAME)/archive/refs/tags
+PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
+PKG_DIR = AdGuardHome-$(PKG_VERS)
+
+BUILD_DEPENDS = native/go native/nodejs
+HOMEPAGE = https://github.com/AdguardTeam/$(PKG_NAME)
+COMMENT = Network-wide ads & trackers blocking DNS server
+LICENSE = GPL-3.0
+
+PATCHES_LEVEL = 1
+GO_SRC_DIR = $(WORK_DIR)/AdGuardHome-$(PKG_VERS)
+GO_BIN_DIR = $(GO_SRC_DIR)/$(PKG_NAME)
+GO_BUILD_ARGS += -ldflags "-X 'github.com/AdguardTeam/AdGuardHome/internal/version.version=v$(PKG_VERS)' -X 'github.com/AdguardTeam/AdGuardHome/internal/version.channel=release'"
+PATH := $(WORK_DIR)/../../../native/nodejs/work-native/node/bin:$(PATH)
+PRE_COMPILE_TARGET = adguardhome_pre_compile
+# avoid webpack error ERR_OSSL_EVP_UNSUPPORTED with nodejs 18
+ENV += NODE_OPTIONS=--openssl-legacy-provider
+
+include ../../mk/spksrc.cross-go.mk
+
+.PHONY: adguardhome_pre_compile
+adguardhome_pre_compile:
+ @$(RUN) $(MAKE) js-deps
+ @$(RUN) $(MAKE) js-build
\ No newline at end of file
diff --git a/cross/adguardhome/PLIST b/cross/adguardhome/PLIST
new file mode 100644
index 00000000000..a6059ef0576
--- /dev/null
+++ b/cross/adguardhome/PLIST
@@ -0,0 +1 @@
+bin:bin/adguardhome
diff --git a/cross/adguardhome/digests b/cross/adguardhome/digests
new file mode 100644
index 00000000000..d34899d110b
--- /dev/null
+++ b/cross/adguardhome/digests
@@ -0,0 +1,3 @@
+adguardhome-0.107.48.tar.gz SHA1 9d3adecba9e799160ed25292d48cf1ef4386e25a
+adguardhome-0.107.48.tar.gz SHA256 189afe8ccc4efd229c3554d812f590cc8727e966c05a6129d444c88a905b83a1
+adguardhome-0.107.48.tar.gz MD5 515ff04dd9bb3884605269fd635c9be6
diff --git a/cross/adguardhome/patches/fix-unprivileged-ports-check.patch b/cross/adguardhome/patches/fix-unprivileged-ports-check.patch
new file mode 100644
index 00000000000..0498acce26d
--- /dev/null
+++ b/cross/adguardhome/patches/fix-unprivileged-ports-check.patch
@@ -0,0 +1,11 @@
+--- a/internal/aghnet/net_linux.go
++++ b/internal/aghnet/net_linux.go
+@@ -22,6 +22,7 @@
+ const dhcpcdConf = "etc/dhcpcd.conf"
+
+ func canBindPrivilegedPorts() (can bool, err error) {
++ return true, nil
+ res, err := unix.PrctlRetInt(
+ unix.PR_CAP_AMBIENT,
+ unix.PR_CAP_AMBIENT_IS_SET,
+
diff --git a/spk/adguardhome/Makefile b/spk/adguardhome/Makefile
new file mode 100644
index 00000000000..1d08790a15d
--- /dev/null
+++ b/spk/adguardhome/Makefile
@@ -0,0 +1,29 @@
+SPK_NAME = adguardhome
+SPK_VERS = 0.107.48
+SPK_REV = 0
+SPK_ICON = src/adguardhome.png
+
+DEPENDS = cross/adguardhome
+UNSUPPORTED_ARCHS = $(PPC_ARCHS)
+SPK_CONFLICT = DNSServer DhcpServer
+
+MAINTAINER = publicarray
+DISPLAY_NAME = AdGuardHome
+DESCRIPTION = "Network-wide ads & trackers blocking DNS server"
+HOMEPAGE = https://adguard.com/en/adguard-home/overview.html
+LICENSE = GPL-3.0
+CHANGELOG = "Initial release"
+
+STARTABLE = yes
+SERVICE_USER = auto
+SERVICE_SETUP = src/service-setup.sh
+
+SERVICE_PORT = 6053
+SERVICE_PORT_TITLE = $(DISPLAY_NAME)
+
+# Admin link for in DSM UI
+ADMIN_PORT = $(SERVICE_PORT)
+
+WIZARDS_DIR = src/wizard
+
+include ../../mk/spksrc.spk.mk
\ No newline at end of file
diff --git a/spk/adguardhome/src/adguardhome.png b/spk/adguardhome/src/adguardhome.png
new file mode 100644
index 00000000000..f6eeeb7a373
Binary files /dev/null and b/spk/adguardhome/src/adguardhome.png differ
diff --git a/spk/adguardhome/src/service-setup.sh b/spk/adguardhome/src/service-setup.sh
new file mode 100644
index 00000000000..daa95e147f4
--- /dev/null
+++ b/spk/adguardhome/src/service-setup.sh
@@ -0,0 +1,10 @@
+ADGUARDHOME="${SYNOPKG_PKGDEST}/bin/adguardhome"
+CFG_FILE="${SYNOPKG_PKGVAR}/AdGuardHome.yml"
+PID_FILE="${SYNOPKG_PKGVAR}/adguardhome.pid"
+WEB_UI="0.0.0.0:${SYNOPKG_PKGPORT}"
+SERVICE_COMMAND="${ADGUARDHOME} --web-addr ${WEB_UI} --config ${CFG_FILE} --pidfile ${PID_FILE} --logfile ${LOG_FILE} --work-dir ${SYNOPKG_PKGVAR}"
+SVC_BACKGROUND=y
+
+service_postinst () {
+ mkdir -p "${SYNOPKG_PKGVAR}/data/"
+}
\ No newline at end of file
diff --git a/spk/adguardhome/src/wizard/install_uifile b/spk/adguardhome/src/wizard/install_uifile
new file mode 100644
index 00000000000..22652d60c0e
--- /dev/null
+++ b/spk/adguardhome/src/wizard/install_uifile
@@ -0,0 +1,8 @@
+[{
+ "step_title": "Install Instructions",
+ "items": [{
+ "desc": "Please unselect 'Run after installation', To run adguard you need to first run the following command via SSH and everytime there is an update"
+ }, {
+ "desc": "setcap 'CAP_NET_BIND_SERVICE=+eip CAP_NET_RAW=+eip' /var/packages/adguardhome/target/bin/adguardhome
"
+ }]
+}]