Files
AdGuardHome/scripts/README.md
Elizaveta Egorova b00d982884 AGDNS-3312 Add blocked services group separation
Squashed commit of the following:

commit 0c931c596316aa3322a8123877650a53b2ba31c3
Author: Elizaveta <e.egorova@adguard.com>
Date:   Wed Nov 19 14:14:04 2025 +0300

    spaces

commit 90b8bed07e392c32f2a4c963329563250ca06100
Author: Elizaveta <e.egorova@adguard.com>
Date:   Wed Nov 19 13:55:56 2025 +0300

    update changelog

commit 1a0dea21ccdc82603da4f42bd5396b8cbb29160a
Merge: c70212ec7 ff0ef4f39
Author: Elizaveta <e.egorova@adguard.com>
Date:   Wed Nov 19 13:54:39 2025 +0300

    Merge branch 'master' into AGDNS-3312

commit c70212ec761714528216f5f5dafe1f6683c480b5
Author: Elizaveta <e.egorova@adguard.com>
Date:   Tue Nov 18 17:21:26 2025 +0300

    remove redundant line

commit b08a8d0341fd7a042f63f960c784a11dce915a18
Author: Elizaveta <e.egorova@adguard.com>
Date:   Tue Nov 18 14:02:32 2025 +0300

    lint

commit c78f40bc6986a64b6a8606790b2307076f5b12c8
Author: Elizaveta <e.egorova@adguard.com>
Date:   Tue Nov 18 14:02:07 2025 +0300

    update translations

commit dd53e8b47361fa1b138151dc504fe5ee138391c4
Author: Elizaveta <e.egorova@adguard.com>
Date:   Tue Nov 18 13:55:27 2025 +0300

    remove accordion

commit af2bd3bdfd71d93fcf83d7fa836d85c319293d6d
Author: Elizaveta <e.egorova@adguard.com>
Date:   Fri Nov 14 16:09:22 2025 +0300

    linter

commit 19eb2bfdc12f9c2a4c4f525027811719a72da214
Author: Elizaveta <e.egorova@adguard.com>
Date:   Fri Nov 14 16:07:48 2025 +0300

    fix

commit fc9a32299e778270354ce3fadd046437cda63a0d
Author: Elizaveta <e.egorova@adguard.com>
Date:   Fri Nov 14 14:29:29 2025 +0300

    fix translations

commit 9c4dbc5fdebe00f4aa545172ffd733b71028a243
Author: Elizaveta <e.egorova@adguard.com>
Date:   Thu Nov 13 19:22:51 2025 +0300

    linter

commit 90107c52fa8391294201ecf5cfb437716e7d1eca
Author: Elizaveta <e.egorova@adguard.com>
Date:   Thu Nov 13 18:07:26 2025 +0300

    fix styles

commit 4dd170e91a14dcab5f7b168cdf6f410847ad1dda
Author: Elizaveta <e.egorova@adguard.com>
Date:   Thu Nov 13 18:01:52 2025 +0300

    update translations

commit 1a865f0856
Author: Eugene Burkov <e.burkov@adguard.com>
Date:   Wed Nov 12 16:06:19 2025 +0300

    Pull request 2523: AGDNS-3398-imp-translations-script
    
    Squashed commit of the following:
    
    commit 3753e6d308c9dbe23d1c7c41cf57457b364cb253
    Author: Eugene Burkov <E.Burkov@AdGuard.COM>
    Date:   Wed Nov 12 15:43:55 2025 +0300
    
        translations: imp code, docs
    
    commit 5389ec67eddbe33a99c3c893cb5b63c131d34e84
    Author: Eugene Burkov <E.Burkov@AdGuard.COM>
    Date:   Wed Nov 12 14:14:08 2025 +0300
    
        all: fix lint, imp code
    
    commit c2e1b8edee
    Author: Eugene Burkov <E.Burkov@AdGuard.COM>
    Date:   Mon Nov 10 18:03:23 2025 +0300
    
        all: imp translations script
    
    commit c930dcff36
    Author: Eugene Burkov <E.Burkov@AdGuard.COM>
    Date:   Mon Nov 10 17:52:44 2025 +0300
    
        scripts: revert master

commit c28e13b4e1
Author: Elizaveta <e.egorova@adguard.com>
Date:   Wed Nov 5 16:43:13 2025 +0300

    move project key const

commit ee977f5993
Author: Elizaveta <e.egorova@adguard.com>
Date:   Wed Nov 5 16:25:34 2025 +0300

    update download script

commit 244c1011b0
Author: Elizaveta <e.egorova@adguard.com>
Date:   Sat Nov 1 15:59:04 2025 +0300

    restore master toggle

commit 40418ea8cf
Author: Elizaveta <e.egorova@adguard.com>
Date:   Sat Nov 1 14:59:57 2025 +0300

    update saveToFile func

commit e4f3c677d4
Author: Elizaveta <e.egorova@adguard.com>
Date:   Sat Nov 1 14:52:14 2025 +0300

    go linter

commit 5359590953
Author: Elizaveta <e.egorova@adguard.com>
Date:   Sat Nov 1 14:44:39 2025 +0300

    remove en group tr from __locales

commit a91215dfad
Author: Elizaveta <e.egorova@adguard.com>
Date:   Sat Nov 1 14:43:39 2025 +0300

    add translations

commit c65f80048d
Author: Elizaveta <e.egorova@adguard.com>
Date:   Sat Nov 1 12:15:07 2025 +0300

    fix ui

commit 893433bd8f
Author: Elizaveta <e.egorova@adguard.com>
Date:   Fri Oct 31 17:22:44 2025 +0300

    fix comment

commit 26148996c9
Author: Elizaveta <e.egorova@adguard.com>
Date:   Fri Oct 31 16:49:46 2025 +0300

    styles

commit 2785958252
Author: Elizaveta <e.egorova@adguard.com>
Date:   Fri Oct 31 16:48:46 2025 +0300

    linter

... and 6 more commits
2025-11-19 14:29:26 +03:00

9.4 KiB
Raw Blame History

AdGuard Home scripts

hooks/: Git hooks

Usage

Run make init from the project root.

make/: Makefile scripts

The release channels are: development (the default), edge, beta, and release. If verbosity levels arent documented here, there are only two: 0, dont print anything, and 1, be verbose.

build-docker.sh: Build a multi-architecture Docker image

Required environment:

  • CHANNEL: release channel, see above.

  • DIST_DIR: the directory where a release has previously been built.

  • REVISION: current Git revision.

  • VERSION: release version.

Optional environment:

  • DOCKER_IMAGE_NAME: the name of the resulting Docker container. By default its adguardhome-dev.

  • DOCKER_OUTPUT: the --output parameters. By default they are type=image,name=${DOCKER_IMAGE_NAME},push=false.

  • SUDO: allow users to use sudo or doas with docker. By default none is used.

build-release.sh: Build a release for all platforms

Required environment:

  • CHANNEL: release channel, see above.

  • GPG_KEY and GPG_KEY_PASSPHRASE: data for gpg. Only required if SIGN is 1.

Optional environment:

  • ARCH and OS: space-separated list of architectures and operating systems for which to build a release. For example, to build only for 64-bit ARM and AMD on Linux and Darwin:

    make ARCH='amd64 arm64' OS='darwin linux' … build-release
    

    The default value is '', which means build everything.

  • DIST_DIR: the directory to build a release into. The default value is dist.

  • GO: set an alternative name for the Go compiler.

  • SIGN: 0 to not sign the resulting packages, 1 to sign. The default value is 1.

  • VERBOSE: 1 to be verbose, 2 to also print environment. This script calls go-build.sh with the verbosity level one level lower, so to get verbosity level 2 in go-build.sh, set this to 3 when calling build-release.sh.

  • VERSION: release version. Will be set by version.sh if it is unset or if it has the default Makefile value of v0.0.0.

Were using Gos forward compatibility mechanism for updating the Go version. This means that if your go version is 1.21+ but is different from the one required by AdGuard Home, the go tool will automatically download the required version.

If you want to use the version installed on your builder, run:

go get go@$YOUR_VERSION
go mod tidy

and call make with GOTOOLCHAIN=local.

go-bench.sh: Run backend benchmarks

Optional environment:

  • GO: set an alternative name for the Go compiler.

  • TIMEOUT_FLAGS: set timeout flags for tests. The default value is --timeout=30s.

  • VERBOSE: verbosity level. 1 shows every command that is run and every Go package that is processed. 2 also shows subcommands and environment. The default value is 0, dont be verbose.

go-build.sh: Build the backend

Optional environment:

  • GOAMD64: architectural level for AMD64. The default value is v1.

  • GOARM: ARM processor options for the Go compiler.

  • GOMIPS: ARM processor options for the Go compiler.

  • GO: set an alternative name for the Go compiler.

  • OUT: output binary name.

  • PARALLELISM: set the maximum number of concurrently run build commands (that is, compiler, linker, etc.).

  • SOURCE_DATE_EPOCH: the standardized environment variable for the Unix epoch time of the latest commit in the repository. If set, overrides the default obtained from Git. Useful for reproducible builds.

  • VERBOSE: verbosity level. 1 shows every command that is run and every Go package that is processed. 2 also shows subcommands and environment. The default value is 0, dont be verbose.

  • VERSION: release version. Will be set by version.sh if it is unset or if it has the default Makefile value of v0.0.0.

Required environment:

  • CHANNEL: release channel, see above.

go-deps.sh: Install backend dependencies

Optional environment:

  • GO: set an alternative name for the Go compiler.

  • VERBOSE: verbosity level. 1 shows every command that is run and every Go package that is processed. 2 also shows subcommands and environment. The default value is 0, dont be verbose.

go-fuzz.sh: Run backend fuzz tests

Optional environment:

  • GO: set an alternative name for the Go compiler.

  • FUZZTIME_FLAGS: set fuss flags for tests. The default value is --fuzztime=20s.

  • TIMEOUT_FLAGS: set timeout flags for tests. The default value is --timeout=30s.

  • VERBOSE: verbosity level. 1 shows every command that is run and every Go package that is processed. 2 also shows subcommands and environment. The default value is 0, dont be verbose.

go-lint.sh: Run backend static analyzers

Dont forget to run make go-tools once first!

Optional environment:

  • EXIT_ON_ERROR: if set to 0, dont exit the script after the first encountered error. The default value is 1.

  • GO: set an alternative name for the Go compiler.

  • VERBOSE: verbosity level. 1 shows every command that is run. 2 also shows subcommands. The default value is 0, dont be verbose.

go-test.sh: Run backend tests

Optional environment:

  • GO: set an alternative name for the Go compiler.

  • RACE: set to 0 to not use the Go race detector. The default value is 1, use the race detector.

  • TIMEOUT_FLAGS: set timeout flags for tests. The default value is --timeout=30s.

  • VERBOSE: verbosity level. 1 shows every command that is run and every Go package that is processed. 2 also shows subcommands. The default value is 0, dont be verbose.

go-tools.sh: Install backend tooling

Installs the Go static analysis and other tools into ${PWD}/bin. Either add ${PWD}/bin to your $PATH before all other entries, or use the commands directly, or use the commands through make (for example, make go-lint).

Optional environment:

  • GO: set an alternative name for the Go compiler.

version.sh: Generate And Print The Current Version

Required environment:

  • CHANNEL: release channel, see above.

snap/: Snapcraft scripts

build.sh

Builds the Snapcraft packages from the binaries created by download.sh.

Optional environment:

  • SNAPCRAFT_CMD: Overrides the Snapcraft command. Default: snapcraft.

download.sh

Downloads the binaries to pack them into Snapcraft packages.

Required environment:

  • CHANNEL: release channel, see above.

upload.sh

Uploads the Snapcraft packages created by build.sh.

Required environment:

  • SNAPCRAFT_CHANNEL: Snapcraft release channel: edge, beta, or candidate.

  • SNAPCRAFT_STORE_CREDENTIALS: Credentials for Snapcraft store.

Optional environment:

  • SNAPCRAFT_CMD: Overrides the Snapcraft command. Default: snapcraft.

translations/: Twosky Integration Script

Usage

  • go run ./scripts/translations help: print usage.

  • go run ./scripts/translations download [-n <count>]: download and save all translations. n is optional flag where count is a number of concurrent downloads. Note, that it downloads locales for all configurations in the .twosky.json file.

  • go run ./scripts/translations upload: upload the base en locale.

  • go run ./scripts/translations summary: show the current locales summary.

  • go run ./scripts/translations unused: show the list of unused strings.

  • go run ./scripts/translations auto-add: add locales with additions to the git and restore locales with deletions.

After the download youll find the output locales in the client/src/__locales/ directory.

Optional environment:

  • DOWNLOAD_LANGUAGES: set a list of specific languages to download. For example ar be bg. If it set to blocker then script will download only those languages, which need to be fully translated (de en es fr it ja ko pt-br pt-pt ru zh-cn zh-tw).

  • UPLOAD_LANGUAGE: set an alternative language for upload.

  • TWOSKY_URI: set an alternative URL for download or upload.

  • TWOSKY_PROJECT_ID: set an alternative project ID for download or upload.

    Deprectated: This environment variable should not be used since the script began supporting multiple configurations.

companiesdb/: Whotracks.me database converter

A simple script that downloads and updates the companies DB in the client code from the repo.

Usage

sh ./scripts/companiesdb/download.sh

blocked-services/: Blocked-services updater

A simple script that downloads and updates the blocked services index from AdGuards Hostlists Registry.

Optional environment:

  • URL: the URL of the index file. By default its https://adguardteam.github.io/HostlistsRegistry/assets/services.json.

Usage

go run ./scripts/blocked-services/main.go

vetted-filters/: Vetted-filters updater

Similar to the one above, a script that downloads and updates the vetted filtering list data from AdGuards Hostlists Registry.

Optional environment:

  • URL: the URL of the index file. By default its https://adguardteam.github.io/HostlistsRegistry/assets/filters.json.

Usage

go run ./scripts/vetted-filters/main.go