Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/lissy93/adguardian-term/llms.txt

Use this file to discover all available pages before exploring further.

AdGuardian Term welcomes contributions of all kinds — code, bug reports, documentation improvements, and feature requests. The project follows the Contributor Covenant v2.1 as its Code of Conduct, and is fully open source under the MIT license.

Prerequisites

Before you begin, make sure you have the following installed:
  • Rust toolchain — install via rustup. Run curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh to get started.
  • Git — required to clone the repository and manage branches.
  • make (optional) — used to run the convenience targets defined in the project Makefile. Cargo commands can be used directly as an alternative.

Local Setup

1

Fork the repository

Head to github.com/Lissy93/AdGuardian-Term and click Fork to create your own copy of the repo under your GitHub account.
2

Clone and enter the project directory

git clone git@github.com:<your-username>/AdGuardian-Term.git && cd AdGuardian-Term
3

Run in development mode

cargo run
This compiles and launches the dashboard. You’ll be prompted for your AdGuard Home connection details if the required environment variables are not set.
4

Make your changes

Edit source files under src/. The codebase is split into fetch/, widgets/, ui.rs, welcome.rs, and main.rs — see the Architecture page for a full breakdown.
5

Run the test suite

cargo test
All unit tests live in #[cfg(test)] blocks co-located with the source files they cover.
6

Push and open a pull request

Push your branch to your fork and open a PR against the main branch of the upstream repository. The CI pipeline will automatically run quality and security checks against your changes.

Development Commands

The following Cargo commands cover the full development workflow. Each also has a corresponding make target defined in the project Makefile.
CommandMake equivalentPurpose
cargo runmake runBuild and run the app in development mode
cargo build --all-featuresmake buildCompile all source files and dependencies
cargo test --all-featuresmake testRun unit tests
cargo check --all-featuresmake checkCheck for compile errors without producing a binary
cargo clippy -- -D warningsmake clippyLint for common mistakes and style issues
cargo fmt -- --checkmake fmtVerify code formatting
cargo doc --no-deps --all-featuresmake docGenerate Rust API documentation from doc comments
cargo benchmake benchRun benchmark tests
Running make with no target executes the full development cycle in order: clean → build → test → doc → run.

CI/CD

All testing, building, and publishing is handled by GitHub Actions. The table below summarises each workflow and what triggers it.
WorkflowTriggerWhat it does
CIEvery PR and pushRuns quality checks (fmt, clippy, tests, build, docs) and security checks (zizmor, secret scan, dependency review)
TagMerge to mainBumps the crate version and pushes a new git tag
ReleaseNew tag pushedCompiles binaries for all supported targets and drafts a GitHub Release with SHA256 checksums and provenance attestations
Publish cratesTag eventPublishes the compiled crate to crates.io
DockerTag or source changeBuilds and pushes the Docker image to DockerHub and GHCR
Generate Rust DocsTag eventGenerates documentation from Rustdoc and uploads to GitHub Pages at lissy93.github.io/AdGuardian-Term/adguardian
MirrorPush to mainSyncs the repository to the Codeberg mirror at codeberg.org/alicia/adguardian

Not a Coder?

There are plenty of other ways to support AdGuardian Term:
  • Star the repo on GitHub to help others discover the project.
  • Sponsor the author via GitHub Sponsors.
  • Share the project with others who run AdGuard Home.
  • Report bugs by opening an issue — detailed reproduction steps and terminal output are always helpful.
  • Improve the docs — documentation fixes and additions are just as valuable as code contributions.
New to open source and not sure where to start? Check out git-into-open-source for a beginner-friendly guide to making your first contribution.

Build docs developers (and LLMs) love