diff --git a/apps/adguardhome/0.107.36/data.yml b/apps/adguardhome/0.107.36/data.yml index a044fb8d..a8632849 100644 --- a/apps/adguardhome/0.107.36/data.yml +++ b/apps/adguardhome/0.107.36/data.yml @@ -1,34 +1,10 @@ additionalProperties: formFields: - - default: 20053 - edit: true - envKey: PLAIN_DNS_PORT - labelEn: Plain DNS port - labelZh: 普通DNS端口 - required: true - rule: paramPort - type: number - - default: 20067 - edit: true - envKey: DHCP_PORT1 - labelEn: DHCP service port 1 - labelZh: DHCP服务端口1 - required: true - rule: paramPort - type: number - - default: 20068 - edit: true - envKey: DHCP_PORT2 - labelEn: DHCP service port 2 - labelZh: DHCP服务端口2 - required: true - rule: paramPort - type: number - default: 23000 edit: true - envKey: HTTP_PORT + envKey: PANEL_APP_PORT_HTTP_1 labelEn: HTTP web port - labelZh: HTTP网页端口 + labelZh: HTTP 网页端口 required: true rule: paramPort type: number @@ -40,57 +16,67 @@ additionalProperties: required: true rule: paramPort type: number + - default: 20053 + edit: true + envKey: PANEL_APP_PORT_DNS + labelEn: Plain DNS port + labelZh: 普通 DNS 端口 + required: true + rule: paramPort + type: number + - default: 20067 + edit: true + envKey: PANEL_APP_PORT_DHCP_1 + labelEn: DHCP service port 1 + labelZh: DHCP 服务端口 1 + required: true + rule: paramPort + type: number + - default: 20068 + edit: true + envKey: PANEL_APP_PORT_DHCP_2 + labelEn: DHCP service port 2 + labelZh: DHCP 服务端口 2 + required: true + rule: paramPort + type: number - default: 20443 edit: true - envKey: DOH_PORT + envKey: PANEL_APP_PORT_DOH labelEn: DOH service port - labelZh: DOH服务端口 + labelZh: DOH 服务端口 required: true rule: paramPort type: number - default: 853 edit: true - envKey: DOT_PORT + envKey: PANEL_APP_PORT_DOT labelEn: DOT service port - labelZh: DOT服务端口 + labelZh: DOT 服务端口 required: true rule: paramPort type: number - default: 20784 edit: true - envKey: QUIC_PORT1 + envKey: PANEL_APP_PORT_QUIC_1 labelEn: QUIC service port 1 - labelZh: QUIC服务端口1 + labelZh: QUIC 服务端口 1 required: true rule: paramPort type: number - default: 8853 edit: true - envKey: QUIC_PORT2 + envKey: PANEL_APP_PORT_QUIC_2 labelEn: QUIC service port 2 - labelZh: QUIC服务端口2 + labelZh: QUIC 服务端口 2 required: true rule: paramPort type: number - default: 5443 edit: true - envKey: DNS_CRYPT_PORT + envKey: PANEL_APP_PORT_DNS_CRYPT labelEn: DNS Crypt service port - labelZh: DNS Crypt服务端口 + labelZh: DNS Crypt 服务端口 required: true rule: paramPort - type: number - - default: ./data/work - edit: true - envKey: WORK_PATH - labelEn: Work data folder path - labelZh: 工作数据文件夹路径 - required: true - type: text - - default: ./data/conf - edit: true - envKey: CONFIG_PATH - labelEn: Configuration folder path - labelZh: 配置文件夹路径 - required: true - type: text + type: number \ No newline at end of file diff --git a/apps/adguardhome/0.107.36/docker-compose.yml b/apps/adguardhome/0.107.36/docker-compose.yml index b0b3036d..9dbcc8c3 100644 --- a/apps/adguardhome/0.107.36/docker-compose.yml +++ b/apps/adguardhome/0.107.36/docker-compose.yml @@ -6,26 +6,26 @@ services: networks: - 1panel-network ports: - - ${PLAIN_DNS_PORT}:53/tcp - - ${PLAIN_DNS_PORT}:53/udp - - ${DHCP_PORT1}:67/udp - - ${DHCP_PORT2}:68/udp - - ${HTTP_PORT}:80/tcp - - ${DOH_PORT}:443/tcp - - ${DOH_PORT}:443/udp + - ${PANEL_APP_PORT_DNS}:53/tcp + - ${PANEL_APP_PORT_DNS}:53/udp + - ${PANEL_APP_PORT_DHCP_1}:67/udp + - ${PANEL_APP_PORT_DHCP_2}:68/udp + - ${PANEL_APP_PORT_HTTP_1}:80/tcp + - ${PANEL_APP_PORT_DOH}:443/tcp + - ${PANEL_APP_PORT_DOH}:443/udp - ${PANEL_APP_PORT_HTTP}:3000/tcp - - ${DOT_PORT}:853/tcp - - ${QUIC_PORT1}:784/udp - - ${DOT_PORT}:853/udp - - ${QUIC_PORT2}:8853/udp - - ${DNS_CRYPT_PORT}:5443/tcp - - ${DNS_CRYPT_PORT}:5443/udp + - ${PANEL_APP_PORT_DOT}:853/tcp + - ${PANEL_APP_PORT_QUIC_1}:784/udp + - ${PANEL_APP_PORT_DOT}:853/udp + - ${PANEL_APP_PORT_QUIC_2}:8853/udp + - ${PANEL_APP_PORT_DNS_CRYPT}:5443/tcp + - ${PANEL_APP_PORT_DNS_CRYPT}:5443/udp volumes: - - ${WORK_PATH}:/opt/adguardhome/work - - ${CONFIG_PATH}:/opt/adguardhome/conf + - ./data/work:/opt/adguardhome/work + - ./data/conf:/opt/adguardhome/conf image: adguard/adguardhome:v0.107.36 - labels: - createdBy: "Apps" -networks: - 1panel-network: - external: true + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/adguardhome/README.md b/apps/adguardhome/README.md index 6810dab3..aa0b19c3 100644 --- a/apps/adguardhome/README.md +++ b/apps/adguardhome/README.md @@ -9,454 +9,3 @@ software we use for our public [AdGuard DNS] servers, and both share a lot of code. [AdGuard DNS]: https://adguard-dns.io/ - -## Getting Started - - ### Automated install (Unix) - -To install with `curl` run the following command: - -```sh -curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v -``` - -To install with `wget` run the following command: - -```sh -wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v -``` - -To install with `fetch` run the following command: - -```sh -fetch -o - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v -``` - -The script also accepts some options: - - * `-c ` to use specified channel; - * `-r` to reinstall AdGuard Home; - * `-u` to uninstall AdGuard Home; - * `-v` for verbose output. - -Note that options `-r` and `-u` are mutually exclusive. - - - - ### Alternative methods - - #### Manual installation - -Please read the **[Getting Started][wiki-start]** article on our Wiki to learn -how to install AdGuard Home manually, and how to configure your devices to use -it. - - #### Docker - -You can use our official Docker image on [Docker Hub]. - - #### Snap Store - -If you're running **Linux,** there's a secure and easy way to install AdGuard -Home: get it from the [Snap Store]. - -[Docker Hub]: https://hub.docker.com/r/adguard/adguardhome -[Snap Store]: https://snapcraft.io/adguard-home -[wiki-start]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started - - - - ### Guides - -See our [Wiki][wiki]. - -[wiki]: https://github.com/AdguardTeam/AdGuardHome/wiki - - - - ### API - -If you want to integrate with AdGuard Home, you can use our [REST API][openapi]. -Alternatively, you can use this [python client][pyclient], which is used to -build the [AdGuard Home Hass.io Add-on][hassio]. - -[hassio]: https://www.home-assistant.io/integrations/adguard/ -[openapi]: https://github.com/AdguardTeam/AdGuardHome/tree/master/openapi -[pyclient]: https://pypi.org/project/adguardhome/ - - - -## Comparing AdGuard Home to other solutions - - ### How is this different from public AdGuard DNS servers? - -Running your own AdGuard Home server allows you to do much more than using a -public DNS server. It's a completely different level. See for yourself: - - * Choose what exactly the server blocks and permits. - - * Monitor your network activity. - - * Add your own custom filtering rules. - - * **Most importantly, it's your own server, and you are the only one who's in - control.** - - - - ### How does AdGuard Home compare to Pi-Hole - -At this point, AdGuard Home has a lot in common with Pi-Hole. Both block ads -and trackers using the so-called “DNS sinkholing” method and both allow -customizing what's blocked. - - - -AdGuard Home provides a lot of features out-of-the-box with no need to install -and configure additional software. We want it to be simple to the point when -even casual users can set it up with minimal effort. - -**Disclaimer:** some of the listed features can be added to Pi-Hole by -installing additional software or by manually using SSH terminal and -reconfiguring one of the utilities Pi-Hole consists of. However, in our -opinion, this cannot be legitimately counted as a Pi-Hole's feature. - -| Feature | AdGuard Home | Pi-Hole | -|-------------------------------------------------------------------------|-------------------|-----------------------------------------------------------| -| Blocking ads and trackers | ✅ | ✅ | -| Customizing blocklists | ✅ | ✅ | -| Built-in DHCP server | ✅ | ✅ | -| HTTPS for the Admin interface | ✅ | Kind of, but you'll need to manually configure lighttpd | -| Encrypted DNS upstream servers (DNS-over-HTTPS, DNS-over-TLS, DNSCrypt) | ✅ | ❌ (requires additional software) | -| Cross-platform | ✅ | ❌ (not natively, only via Docker) | -| Running as a DNS-over-HTTPS or DNS-over-TLS server | ✅ | ❌ (requires additional software) | -| Blocking phishing and malware domains | ✅ | ❌ (requires non-default blocklists) | -| Parental control (blocking adult domains) | ✅ | ❌ | -| Force Safe search on search engines | ✅ | ❌ | -| Per-client (device) configuration | ✅ | ✅ | -| Access settings (choose who can use AGH DNS) | ✅ | ❌ | -| Running [without root privileges][wiki-noroot] | ✅ | ❌ | - -[wiki-noroot]: https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started#running-without-superuser - - - - ### How does AdGuard Home compare to traditional ad blockers - -It depends. - -DNS sinkholing is capable of blocking a big percentage of ads, but it lacks -the flexibility and the power of traditional ad blockers. You can get a good -impression about the difference between these methods by reading [this -article][blog-adaway], which compares AdGuard for Android (a traditional ad -blocker) to hosts-level ad blockers (which are almost identical to DNS-based -blockers in their capabilities). This level of protection is enough for some -users. - -Additionally, using a DNS-based blocker can help to block ads, tracking and -analytics requests on other types of devices, such as SmartTVs, smart speakers -or other kinds of IoT devices (on which you can't install traditional ad -blockers). - - - - ### Known limitations - -Here are some examples of what cannot be blocked by a DNS-level blocker: - - * YouTube, Twitch ads; - - * Facebook, Twitter, Instagram sponsored posts. - -Essentially, any advertising that shares a domain with content cannot be blocked -by a DNS-level blocker. - -Is there a chance to handle this in the future? DNS will never be enough to do -this. Our only option is to use a content blocking proxy like what we do in the -standalone AdGuard applications. We're [going to bring][issue-1228] this -feature support to AdGuard Home in the future. Unfortunately, even in this -case, there still will be cases when this won't be enough or would require quite -a complicated configuration. - -[blog-adaway]: https://adguard.com/blog/adguard-vs-adaway-dns66.html -[issue-1228]: https://github.com/AdguardTeam/AdGuardHome/issues/1228 - - - -## How to build from source - - ### Prerequisites - -Run `make init` to prepare the development environment. - -You will need this to build AdGuard Home: - - * [Go](https://golang.org/dl/) v1.19 or later; - * [Node.js](https://nodejs.org/en/download/) v10.16.2 or later; - * [npm](https://www.npmjs.com/) v6.14 or later; - * [yarn](https://yarnpkg.com/) v1.22.5 or later. - - - - ### Building - -Open your terminal and execute these commands: - -```sh -git clone https://github.com/AdguardTeam/AdGuardHome -cd AdGuardHome -make -``` - -**NOTE:** The non-standard `-j` flag is currently not supported, so building -with `make -j 4` or setting your `MAKEFLAGS` to include, for example, `-j 4` is -likely to break the build. If you do have your `MAKEFLAGS` set to that, and you -don't want to change it, you can override it by running `make -j 1`. - -Check the [`Makefile`][src-makefile] to learn about other commands. - - #### Building for a different platform - -You can build AdGuard Home for any OS/ARCH that Go supports. In order to do -this, specify `GOOS` and `GOARCH` environment variables as macros when running -`make`. - -For example: - -```sh -env GOOS='linux' GOARCH='arm64' make -``` - -or: - -```sh -make GOOS='linux' GOARCH='arm64' -``` - - #### Preparing releases - -You'll need [`snapcraft`] to prepare a release build. Once installed, run the -following command: - -```sh -make build-release CHANNEL='...' VERSION='...' -``` - -See the [`build-release` target documentation][targ-release]. - - #### Docker image - -Run `make build-docker` to build the Docker image locally (the one that we -publish to DockerHub). Please note, that we're using [Docker Buildx][buildx] to -build our official image. - -You may need to prepare before using these builds: - - * (Linux-only) Install Qemu: - - ```sh - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes - ``` - - * Prepare the builder: - - ```sh - docker buildx create --name buildx-builder --driver docker-container --use - ``` - -See the [`build-docker` target documentation][targ-docker]. - - #### Debugging the frontend - -When you need to debug the frontend without recompiling the production version -every time, for example to check how your labels would look on a form, you can -run the frontend build a development environment. - -1. In a separate terminal, run: - - ```sh - ( cd ./client/ && env NODE_ENV='development' npm run watch ) - ``` - -2. Run your `AdGuardHome` binary with the `--local-frontend` flag, which - instructs AdGuard Home to ignore the built-in frontend files and use those - from the `./build/` directory. - -3. Now any changes you make in the `./client/` directory should be recompiled - and become available on the web UI. Make sure that you disable the browser - cache to make sure that you actually get the recompiled version. - -[`snapcraft`]: https://snapcraft.io/ -[buildx]: https://docs.docker.com/buildx/working-with-buildx/ -[src-makefile]: https://github.com/AdguardTeam/AdGuardHome/blob/master/Makefile -[targ-docker]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-dockersh-build-a-multi-architecture-docker-image -[targ-release]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-releasesh-build-a-release-for-all-platforms - - - -## Contributing - -You are welcome to fork this repository, make your changes and [submit a pull -request][pr]. Please make sure you follow our [code guidelines][guide] though. - -Please note that we don't expect people to contribute to both UI and backend -parts of the program simultaneously. Ideally, the backend part is implemented -first, i.e. configuration, API, and the functionality itself. The UI part can -be implemented later in a different pull request by a different person. - -[guide]: https://github.com/AdguardTeam/CodeGuidelines/ -[pr]: https://github.com/AdguardTeam/AdGuardHome/pulls - - - - ### Test unstable versions - -There are two update channels that you can use: - - * `beta`: beta versions of AdGuard Home. More or less stable versions, - usually released every two weeks or more often. - - * `edge`: the newest version of AdGuard Home from the development branch. New - updates are pushed to this channel daily. - -There are three options how you can install an unstable version: - -1. [Snap Store]: look for the `beta` and `edge` channels. - -2. [Docker Hub]: look for the `beta` and `edge` tags. - -3. Standalone builds. Use the automated installation script or look for the - available builds [on the Wiki][wiki-platf]. - - Script to install a beta version: - - ```sh - curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c beta - ``` - - Script to install an edge version: - - ```sh - curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c edge - ``` -[wiki-platf]: https://github.com/AdguardTeam/AdGuardHome/wiki/Platforms - - - - ### Report issues - -If you run into any problem or have a suggestion, head to [this page][iss] and -click on the “New issue” button. - -[iss]: https://github.com/AdguardTeam/AdGuardHome/issues - - - - ### Help with translations - -If you want to help with AdGuard Home translations, please learn more about -translating AdGuard products [in our Knowledge Base][kb-trans]. You can -contribute to the [AdGuardHome project on CrowdIn][crowdin]. - -[crowdin]: https://crowdin.com/project/adguard-applications/en#/adguard-home -[kb-trans]: https://kb.adguard.com/en/general/adguard-translations - - - - ### Other - -Another way you can contribute is by [looking for issues][iss-help] marked as -`help wanted`, asking if the issue is up for grabs, and sending a PR fixing the -bug or implementing the feature. - -[iss-help]: https://github.com/AdguardTeam/AdGuardHome/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22 - - - -## Projects that use AdGuard Home - - - - * [AdGuard Home Remote](https://apps.apple.com/app/apple-store/id1543143740): - iOS app by [Joost](https://rocketscience-it.nl/). - - * [Python library](https://github.com/frenck/python-adguardhome) by - [@frenck](https://github.com/frenck). - - * [Home Assistant add-on](https://github.com/hassio-addons/addon-adguard-home) - by [@frenck](https://github.com/frenck). - - * [OpenWrt LUCI app](https://github.com/kongfl888/luci-app-adguardhome) by - [@kongfl888](https://github.com/kongfl888) (originally by - [@rufengsuixing](https://github.com/rufengsuixing)). - - * [Prometheus exporter for AdGuard - Home](https://github.com/ebrianne/adguard-exporter) by - [@ebrianne](https://github.com/ebrianne). - - * [Terminal-based, real-time traffic monitoring and statistics for your AdGuard Home - instance](https://github.com/Lissy93/AdGuardian-Term) by - [@Lissy93](https://github.com/Lissy93) - - * [AdGuard Home on GLInet - routers](https://forum.gl-inet.com/t/adguardhome-on-gl-routers/10664) by - [Gl-Inet](https://gl-inet.com/). - - * [Cloudron app](https://git.cloudron.io/cloudron/adguard-home-app) by - [@gramakri](https://github.com/gramakri). - - * [Asuswrt-Merlin-AdGuardHome-Installer](https://github.com/jumpsmm7/Asuswrt-Merlin-AdGuardHome-Installer) - by [@jumpsmm7](https://github.com/jumpsmm7) aka - [@SomeWhereOverTheRainBow](https://www.snbforums.com/members/somewhereovertherainbow.64179/). - - * [Node.js library](https://github.com/Andrea055/AdguardHomeAPI) by - [@Andrea055](https://github.com/Andrea055/). - - - -## Acknowledgments - - - -This software wouldn't have been possible without: - - * [Go](https://golang.org/dl/) and its libraries: - * [gcache](https://github.com/bluele/gcache) - * [miekg's dns](https://github.com/miekg/dns) - * [go-yaml](https://github.com/go-yaml/yaml) - * [service](https://godoc.org/github.com/kardianos/service) - * [dnsproxy](https://github.com/AdguardTeam/dnsproxy) - * [urlfilter](https://github.com/AdguardTeam/urlfilter) - * [Node.js](https://nodejs.org/) and its libraries: - * And many more Node.js packages. - * [React.js](https://reactjs.org) - * [Tabler](https://github.com/tabler/tabler) - * [whotracks.me data](https://github.com/cliqz-oss/whotracks.me) - -You might have seen that [CoreDNS] was mentioned here before, but we've stopped -using it in AdGuard Home. - -For the full list of all Node.js packages in use, please take a look at -[`client/package.json`][src-packagejson] file. - -[CoreDNS]: https://coredns.io -[src-packagejson]: https://github.com/AdguardTeam/AdGuardHome/blob/master/client/package.json - - - -## Privacy - -Our main idea is that you are the one, who should be in control of your data. -So it is only natural, that AdGuard Home does not collect any usage statistics, -and does not use any web services unless you configure it to do so. See also -the [full privacy policy][privacy] with every bit that *could in theory be sent* -by AdGuard Home is available. - -[privacy]: https://adguard.com/en/privacy/home.html