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: c70212ec7ff0ef4f39Author: 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 commit1a865f0856Author: 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 commitc2e1b8edeeAuthor: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Mon Nov 10 18:03:23 2025 +0300 all: imp translations script commitc930dcff36Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Mon Nov 10 17:52:44 2025 +0300 scripts: revert master commitc28e13b4e1Author: Elizaveta <e.egorova@adguard.com> Date: Wed Nov 5 16:43:13 2025 +0300 move project key const commitee977f5993Author: Elizaveta <e.egorova@adguard.com> Date: Wed Nov 5 16:25:34 2025 +0300 update download script commit244c1011b0Author: Elizaveta <e.egorova@adguard.com> Date: Sat Nov 1 15:59:04 2025 +0300 restore master toggle commit40418ea8cfAuthor: Elizaveta <e.egorova@adguard.com> Date: Sat Nov 1 14:59:57 2025 +0300 update saveToFile func commite4f3c677d4Author: Elizaveta <e.egorova@adguard.com> Date: Sat Nov 1 14:52:14 2025 +0300 go linter commit5359590953Author: Elizaveta <e.egorova@adguard.com> Date: Sat Nov 1 14:44:39 2025 +0300 remove en group tr from __locales commita91215dfadAuthor: Elizaveta <e.egorova@adguard.com> Date: Sat Nov 1 14:43:39 2025 +0300 add translations commitc65f80048dAuthor: Elizaveta <e.egorova@adguard.com> Date: Sat Nov 1 12:15:07 2025 +0300 fix ui commit893433bd8fAuthor: Elizaveta <e.egorova@adguard.com> Date: Fri Oct 31 17:22:44 2025 +0300 fix comment commit26148996c9Author: Elizaveta <e.egorova@adguard.com> Date: Fri Oct 31 16:49:46 2025 +0300 styles commit2785958252Author: Elizaveta <e.egorova@adguard.com> Date: Fri Oct 31 16:48:46 2025 +0300 linter ... and 6 more commits
9.4 KiB
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 aren’t documented here, there are only two: 0, don’t 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 it’sadguardhome-dev. -
DOCKER_OUTPUT: the--outputparameters. By default they aretype=image,name=${DOCKER_IMAGE_NAME},push=false. -
SUDO: allow users to usesudoordoaswithdocker. By default none is used.
build-release.sh: Build a release for all platforms
Required environment:
-
CHANNEL: release channel, see above. -
GPG_KEYandGPG_KEY_PASSPHRASE: data forgpg. Only required ifSIGNis1.
Optional environment:
-
ARCHandOS: 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-releaseThe default value is
'', which means build everything. -
DIST_DIR: the directory to build a release into. The default value isdist. -
GO: set an alternative name for the Go compiler. -
SIGN:0to not sign the resulting packages,1to sign. The default value is1. -
VERBOSE:1to be verbose,2to also print environment. This script callsgo-build.shwith the verbosity level one level lower, so to get verbosity level2ingo-build.sh, set this to3when callingbuild-release.sh. -
VERSION: release version. Will be set byversion.shif it is unset or if it has the defaultMakefilevalue ofv0.0.0.
We’re using Go’s 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.1shows every command that is run and every Go package that is processed.2also shows subcommands and environment. The default value is0, don’t be verbose.
go-build.sh: Build the backend
Optional environment:
-
GOAMD64: architectural level for AMD64. The default value isv1. -
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.1shows every command that is run and every Go package that is processed.2also shows subcommands and environment. The default value is0, don’t be verbose. -
VERSION: release version. Will be set byversion.shif it is unset or if it has the defaultMakefilevalue ofv0.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.1shows every command that is run and every Go package that is processed.2also shows subcommands and environment. The default value is0, don’t 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.1shows every command that is run and every Go package that is processed.2also shows subcommands and environment. The default value is0, don’t be verbose.
go-lint.sh: Run backend static analyzers
Don’t forget to run make go-tools once first!
Optional environment:
-
EXIT_ON_ERROR: if set to0, don’t exit the script after the first encountered error. The default value is1. -
GO: set an alternative name for the Go compiler. -
VERBOSE: verbosity level.1shows every command that is run.2also shows subcommands. The default value is0, don’t be verbose.
go-test.sh: Run backend tests
Optional environment:
-
GO: set an alternative name for the Go compiler. -
RACE: set to0to not use the Go race detector. The default value is1, use the race detector. -
TIMEOUT_FLAGS: set timeout flags for tests. The default value is--timeout=30s. -
VERBOSE: verbosity level.1shows every command that is run and every Go package that is processed.2also shows subcommands. The default value is0, don’t 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, orcandidate. -
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.nis optional flag where count is a number of concurrent downloads. Note, that it downloads locales for all configurations in the.twosky.jsonfile. -
go run ./scripts/translations upload: upload the baseenlocale. -
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 you’ll find the output locales in the client/src/__locales/ directory.
Optional environment:
-
DOWNLOAD_LANGUAGES: set a list of specific languages todownload. For examplear be bg. If it set toblockerthen 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 forupload. -
TWOSKY_URI: set an alternative URL fordownloadorupload. -
TWOSKY_PROJECT_ID: set an alternative project ID fordownloadorupload.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 AdGuard’s Hostlists Registry.
Optional environment:
URL: the URL of the index file. By default it’shttps://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 AdGuard’s Hostlists Registry.
Optional environment:
URL: the URL of the index file. By default it’shttps://adguardteam.github.io/HostlistsRegistry/assets/filters.json.
Usage
go run ./scripts/vetted-filters/main.go