From 7bc92eb4bc6ec499e417e731f8f31ed43930c623 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Mon, 17 Nov 2025 19:55:25 +0100 Subject: [PATCH 01/51] Switch from mkdocs-material to zensical Signed-off-by: yubiuser --- .devcontainer/Dockerfile | 2 +- mkdocs.yml | 2 -- netlify.toml | 2 +- package.json | 4 ++-- requirements.txt | 3 +-- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 9e2e9d0a7..88c4498a7 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -10,6 +10,6 @@ RUN apk add --no-cache \ ENV USER node USER ${USER} -# python packages (as mkdocs) are installed in the user's home directory +# python packages (as zensical) are installed in the user's home directory # but we need them to be accessible from ${PATH} ENV PATH="${PATH}:/home/${USER}/.local/bin" diff --git a/mkdocs.yml b/mkdocs.yml index 06b8e3842..7ab5b3a5d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -94,8 +94,6 @@ markdown_extensions: auto_append: - docs/abbreviations.md # Include files in other documents like {!some/dir/in/docs/filename.md!} - - markdown_include.include: - base_path: docs # Metadata support in pages # (https://squidfunk.github.io/mkdocs-material/extensions/metadata/) - meta diff --git a/netlify.toml b/netlify.toml index 48742a5aa..eed0088b2 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,7 +1,7 @@ [build] base = "/" publish = "site/" -command = "mkdocs build --clean --strict" +command = "zensical build --clean --strict" [build.environment] PYTHON_VERSION = "3.14" diff --git a/package.json b/package.json index d3eecf901..624170187 100644 --- a/package.json +++ b/package.json @@ -16,12 +16,12 @@ }, "homepage": "https://docs.pi-hole.net/", "scripts": { - "build": "mkdocs build --clean --strict", + "build": "zensical build --clean --strict", "markdownlint": "markdownlint-cli2 \"**/*.md\" \"!**/node_modules/**\" \"!**/.git/**\"", "linkinator": "linkinator site --recurse --silent --skip \"^(?!http://localhost)\"", "pretest": "npm run build", "test": "npm run markdownlint && npm run linkinator", - "serve": "mkdocs serve --dev-addr 0.0.0.0:8000", + "serve": "zensical serve --dev-addr 0.0.0.0:8000", "start": "npm run serve" }, "devDependencies": { diff --git a/requirements.txt b/requirements.txt index e2efff0a6..e14352fc6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,4 @@ -mkdocs==1.6.1 +zensical==0.0.8 mkdocs-git-revision-date-localized-plugin==1.5.3 -mkdocs-material==9.7.7 mkdocs-redirects==1.2.3 markdown-include==0.8.1 From b4e69fd0513f2917b3bec31e1202f7c00fcaaacc Mon Sep 17 00:00:00 2001 From: yubiuser Date: Mon, 17 Nov 2025 20:07:20 +0100 Subject: [PATCH 02/51] Remove markdown-include and use snippets instead Signed-off-by: yubiuser --- docs/api/auth.md | 1 - docs/api/index.md | 1 - mkdocs.yml | 4 ---- 3 files changed, 6 deletions(-) diff --git a/docs/api/auth.md b/docs/api/auth.md index 18f9b70ff..70bf4df06 100644 --- a/docs/api/auth.md +++ b/docs/api/auth.md @@ -418,4 +418,3 @@ Session-based authentication, while convenient and widely used, does have severa Remember, no security measure is foolproof, but by understanding the potential risks and the multiple layers of defense your Pi-hole implemented against these risks, you can make an informed decision about how to use the Pi-hole API securely in the context of your own scripts. Always use the secure transmission method (HTTPS) offered by your Pi-hole to access the API. The strong encryption will prevent attackers from eavesdropping on your requests and makes stealing your session ID basically impossible. -{!abbreviations.md!} diff --git a/docs/api/index.md b/docs/api/index.md index f3d291589..7b8c2b493 100644 --- a/docs/api/index.md +++ b/docs/api/index.md @@ -200,4 +200,3 @@ Code | Description | Interpretation We recommend writing code that gracefully handles all possible API exceptions. The Pi-hole API is designed to support this by standardized error messages and human-readable hints for errors. -{!abbreviations.md!} diff --git a/mkdocs.yml b/mkdocs.yml index 7ab5b3a5d..87e53f721 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -85,15 +85,11 @@ markdown_extensions: # Adds the ability to define abbreviations (https://squidfunk.github.io/mkdocs-material/reference/tooltips/) - abbr - attr_list - # Include files in other documents like {!some/dir/in/docs/filename.md!} - - markdown_include.include: - base_path: docs - pymdownx.snippets: # auto_append abbreviations.md to every file # https://squidfunk.github.io/mkdocs-material/reference/tooltips/#adding-a-glossary auto_append: - docs/abbreviations.md - # Include files in other documents like {!some/dir/in/docs/filename.md!} # Metadata support in pages # (https://squidfunk.github.io/mkdocs-material/extensions/metadata/) - meta From d9a8539fc7cf7441129e62324e6142371de270e3 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Mon, 17 Nov 2025 23:11:47 +0100 Subject: [PATCH 03/51] Port mkdocs.yml to zensical.toml Signed-off-by: yubiuser --- docs/CNAME | 1 - mkdocs.yml | 261 ----------------------------------------------- requirements.txt | 3 - zensical.toml | 140 +++++++++++++++++++++++++ 4 files changed, 140 insertions(+), 265 deletions(-) delete mode 100644 docs/CNAME delete mode 100644 mkdocs.yml create mode 100644 zensical.toml diff --git a/docs/CNAME b/docs/CNAME deleted file mode 100644 index 297dda3c2..000000000 --- a/docs/CNAME +++ /dev/null @@ -1 +0,0 @@ -docs.pi-hole.net diff --git a/mkdocs.yml b/mkdocs.yml deleted file mode 100644 index 87e53f721..000000000 --- a/mkdocs.yml +++ /dev/null @@ -1,261 +0,0 @@ -site_name: 'Pi-hole documentation' -site_url: 'https://docs.pi-hole.net/' -repo_url: 'https://github.com/pi-hole/pi-hole' -edit_uri: '../docs/blob/master/docs/' -copyright: -remote_branch: gh-pages -validation: - links: - anchors: warn -theme: - name: 'material' - custom_dir: overrides -# icon: -# repo: fontawesome/brands/github-alt - favicon: 'images/favicon.ico' - logo: 'images/logo.svg' - language: 'en' - font: - text: 'Source Sans Pro' - code: 'Roboto Mono' - features: - - navigation.top - - navigation.instant - - navigation.indexes - - search.suggest - - search.highlight - - search.share - - content.action.edit - - content.code.copy - palette: - - # Light mode - - media: "(prefers-color-scheme: light)" - scheme: default - primary: indigo - accent: indigo - toggle: - icon: material/lightbulb-outline - name: Switch to dark mode - - # Dark mode - - media: "(prefers-color-scheme: dark)" - scheme: slate - primary: indigo - accent: indigo - toggle: - icon: material/lightbulb - name: Switch to light mode - -markdown_extensions: - # Code highlighting in ``` ``` blocks, superseeds codehilite - - pymdownx.highlight - # allows for the nesting of code blocks inside other blocks - - pymdownx.superfences - - pymdownx.inlinehilite - # Table of Contents - # https://python-markdown.github.io/extensions/toc/ - - toc: - permalink: true - # block-styled side content - # https://squidfunk.github.io/mkdocs-material/reference/admonitions/ - - admonition - # https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/#details - - pymdownx.details - - # linkifies URL and email links without having to wrap them in Markdown syntax. Also, allows shortens repository issue, pull request, and commit links. - - pymdownx.magiclink - # Task lists (https://facelessuser.github.io/pymdown-extensions/extensions/tasklist/) - - pymdownx.tasklist: - custom_checkbox: true - # Highlight words with ==mark me== - - pymdownx.mark - # Adds support for deletion ~~Delete me~~ and subscript text~a\ subscript~ - - pymdownx.tilde - # This extension is a convenience extension which includes many pymdownx extensions - # (https://facelessuser.github.io/pymdown-extensions/extensions/extra/) - - pymdownx.extra - - # Tabbed provides a syntax to easily add tabbed Markdown content. - # https://facelessuser.github.io/pymdown-extensions/extensions/tabbed/ - - pymdownx.tabbed: - alternate_style: true - # Adds syntax for defining footnotes in Markdown documents (https://squidfunk.github.io/mkdocs-material/reference/footnotes/) - - footnotes - # Adds the ability to define abbreviations (https://squidfunk.github.io/mkdocs-material/reference/tooltips/) - - abbr - - attr_list - - pymdownx.snippets: - # auto_append abbreviations.md to every file - # https://squidfunk.github.io/mkdocs-material/reference/tooltips/#adding-a-glossary - auto_append: - - docs/abbreviations.md - # Metadata support in pages - # (https://squidfunk.github.io/mkdocs-material/extensions/metadata/) - - meta - # Tabbed provides a syntax to easily add tabbed Markdown content. - # (https://facelessuser.github.io/pymdown-extensions/extensions/tabbed/) - - pymdownx.tabbed - # InlineHilite is an inline code highlighter inspired by CodeHilite. - # (https://facelessuser.github.io/pymdown-extensions/extensions/inlinehilite/) - - pymdownx.inlinehilite - - pymdownx.arithmatex: - generic: true - -nav: - - 'About Pi-hole': - - 'About Pi-hole': index.md - - 'Contact Us': main/contact.md - - 'Pi-hole Origins': main/origins.md - - 'On the Web': main/coverage.md - - 'Getting Started': - - 'Getting Started': main/index.md - - 'Prerequisites': main/prerequisites.md - - 'Installation': main/basic-install.md - - 'Post-Install': main/post-install.md - - 'Updating': main/update.md - - 'Uninstalling': main/uninstall.md - - 'The  pihole  Command': main/pihole-command.md - - 'Databases': - - 'Databases': database/index.md - - 'Query Database': database/query-database.md - - 'Domain Database': - - 'Domain Database': database/domain-database/index.md - - 'Group Management': database/domain-database/groups.md - - 'Database Recovery': database/domain-database/recovery.md - - 'Pi-hole API': - - 'Pi-hole API': api/index.md - - 'Authentication': api/auth.md - - 'TLS/SSL': api/tls.md - - 'FTLDNS': - - 'FTLDNS': ftldns/index.md - - 'Configuration': ftldns/configfile.md - - 'Interfaces': ftldns/interfaces.md - - 'DNS cache': ftldns/dns-cache.md - - 'DNS resolver': ftldns/dns-resolver.md - - 'Blocking mode': ftldns/blockingmode.md - - 'Privacy levels': ftldns/privacylevels.md - - 'dnsmasq warnings': ftldns/dnsmasq_warn.md - - 'Webserver': ftldns/webserver.md - - 'Advanced': - - 'Install from source': ftldns/compile.md - - 'Signals': 'ftldns/signals.md' - - 'Cache dump': ftldns/cache_dump.md - - 'Packet dump': ftldns/package_dump.md - - 'Debugging': - - 'gdb': ftldns/gdb.md - - 'valgrind': ftldns/valgrind.md - - 'Group Management': - - 'Group Management': group_management/index.md - - 'Examples': group_management/example.md - - 'RegEx Blocking': - - "Regex Blocking": regex/index.md - - "Testing": regex/testmode.md - - "Tutorial": regex/tutorial.md - - "Pi-hole extensions": regex/pi-hole.md - - "Approximate matching": regex/approximate.md - - 'Docker': - - 'Docker': docker/index.md - - 'Configuration': docker/configuration.md - - 'Upgrading': - - 'Upgrading': docker/upgrading/index.md - - 'Upgrading from v5.x': docker/upgrading/v5-v6.md - - 'Building': docker/build-image.md - - 'DHCP': docker/DHCP.md - - 'Tips and Tricks': docker/tips-and-tricks.md - - 'Contributing': - - 'Contributing': guides/github/index.md - - 'Developer Certificate of Origin (DCO)': guides/github/dco.md - - 'How to sign-off commits': guides/github/how-to-signoff.md - - 'How to fork and rebase': guides/github/how-to-fork-rebase.md - - 'How to sign commits': guides/github/sign.md - - 'Guides': - - 'DNS': - - 'unbound': guides/dns/unbound.md - - 'cloudflared (DoH)': guides/dns/cloudflared.md - - 'dnscrypt-proxy (DoH)': guides/dns/dnscrypt-proxy.md - - 'Upstream DNS Providers': guides/dns/upstream-dns-providers.md - - 'VPN': - - 'WireGuard': - - 'Wireguard': guides/vpn/wireguard/index.md - - 'Concept': guides/vpn/wireguard/concept.md - - 'Install server': guides/vpn/wireguard/server.md - - 'Add client(s)': guides/vpn/wireguard/client.md - - 'Optional extra features': - - 'Make local devices accessible': guides/vpn/wireguard/internal.md - - 'Tunnel all Internet traffic': guides/vpn/wireguard/route-everything.md - - 'Troubleshooting': guides/vpn/wireguard/faq.md - - 'Misc': - - 'Home Assistant': guides/misc/homeassistant.md - - 'Benchmarking': guides/misc/benchmark.md - - 'Tor & Pi-hole': - - 'Tor & Pi-hole': guides/misc/tor/index.md - - 'Basic Setup': guides/misc/tor/setup.md - - 'Using Tor': guides/misc/tor/using-tor.md - - 'Performance and other issues': guides/misc/tor/performance-issues.md - - 'Using DNSSEC': guides/misc/tor/dnssec.md - - 'Allowlist and Denylist editing': guides/misc/allowlist-denylist.md - - 'Network Time Protocol': guides/misc/ntp.md - - 'Router setup': - - 'ASUS router': routers/asus.md - - 'Fritz!Box (EN)': routers/fritzbox.md - - 'Fritz!Box (DE)': routers/fritzbox-de.md - - 'Nokia G-240W-B': routers/nokia-G240WB.md - - 'OPNsense': routers/OPNsense.md - - 'TP-Link': routers/tp-link.md - - 'Ubiquiti USG': routers/ubiquiti-usg.md - - 'FAQ': main/faq.md - - 'Community Projects': main/projects.md - -not_in_nav: | - /abbreviations.md - -extra: - social: - - icon: fontawesome/solid/earth-americas - link: https://pi-hole.net/ - name: Website - - icon: fontawesome/brands/github - link: https://github.com/pi-hole - name: GitHub - -extra_css: - - extra.css - -plugins: - - search - - git-revision-date-localized: - fallback_to_build_date: true - enable_parallel_processing: false - - redirects: - redirect_maps: - 'ftldns/database.md': database/index.md - 'main/presentations.md': index.md - 'main/prerequesites.md': main/prerequisites.md - 'guides/unbound.md': guides/dns/unbound.md - 'guides/upstream-dns-providers.md': guides/dns/upstream-dns-providers.md - 'guides/dns-over-https.md': guides/dns/cloudflared.md - 'guides/vpn/overview.md': guides/vpn/wireguard/index.md - 'guides/benchmark.md': guides/misc/benchmark.md - 'guides/tor/overview.md': guides/misc/tor/index.md - 'guides/tor/setup.md': guides/misc/tor/setup.md - 'guides/tor/using-tor.md': guides/misc/tor/using-tor.md - 'guides/tor/performance-issues.md': guides/misc/tor/performance-issues.md - 'guides/tor/dnssec.md': guides/misc/tor/dnssec.md - 'guides/whitelist-blacklist.md': guides/misc/allowlist-denylist.md - 'ftldns/regex/index.md': regex/index.md - 'ftldns/regex/overview.md': regex/index.md - 'ftldns/regex/tutorial.md': regex/tutorial.md - 'database/gravity/example.md': group_management/example.md - 'core/pihole-command.md': main/pihole-command.md - 'database/ftl.md': database/query-database.md - 'database/gravity/index.md': database/domain-database/index.md - 'database/gravity/recovery.md': database/domain-database/recovery.md - 'database/gravity/groups.md': database/domain-database/groups.md - 'group_management/groups.md': group_management/index.md - 'regex/overview.md': regex/index.md - 'guides/vpn/wireguard/overview.md': guides/vpn/wireguard/index.md - 'guides/misc/tor/overview.md': guides/misc/tor/index.md - 'guides/github/contributing.md': guides/github/index.md - 'guides/misc/whitelist-blacklist.md': guides/misc/allowlist-denylist.md - 'ftldns/debugging.md': ftldns/gdb.md diff --git a/requirements.txt b/requirements.txt index e14352fc6..26d72fd9a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1 @@ zensical==0.0.8 -mkdocs-git-revision-date-localized-plugin==1.5.3 -mkdocs-redirects==1.2.3 -markdown-include==0.8.1 diff --git a/zensical.toml b/zensical.toml new file mode 100644 index 000000000..ca0397253 --- /dev/null +++ b/zensical.toml @@ -0,0 +1,140 @@ +# ---------------------------------------------------------------------------- +# Global options section +# ---------------------------------------------------------------------------- + +[project] +site_name = "Pi-hole documentation" +site_url = "https://docs.pi-hole.net/" +site_description = "A black hole for Internet advertisements" +site_author = "Pi-hole Team" +repo_url = "https://github.com/pi-hole/pi-hole" + +edit_uri = "../docs/blob/master/docs/" + +docs_dir = "docs" + +# This is overwritten by orverrides/partials/copyright.html +# see https://zensical.org/docs/customization/?h=over#overriding-partials +copyright = "" + +extra_css = ["extra.css"] +#extra_javascript = ["assets/javascript/extra.js"] + +# ---------------------------------------------------------------------------- +# Section for configuring theme options +# ---------------------------------------------------------------------------- +[project.theme] + +# change this to "classic" to use the traditional Material for MkDocs look. +variant = "modern" + +custom_dir = "overrides" +favicon = "images/favicon.ico" +logo = "images/logo.svg" +language = "en" + +# Zensical provides a number of feature toggles that change the behavior +# of the documentation site. +features = [ + #"announce.dismiss", + "content.action.edit", + #"content.action.view", + #"content.code.annotate", + "content.code.copy", + #"content.code.select", + #"content.footnote.tooltips", + "content.tabs.link", + #"content.tooltips", + # "header.autohide", + # "navigation.expand", + #"navigation.footer", + "navigation.indexes", + "navigation.instant", + "navigation.instant.prefetch", + #"navigation.instant.progress", + #"navigation.path", + #"navigation.prune", + #"navigation.sections", + #"navigation.tabs", + #"navigation.tabs.sticky", + "navigation.top", + #"navigation.tracking", + "search.highlight", + # "toc.follow", + #"toc.integrate", +] + +# Palette toggle for light mode +[[project.theme.palette]] +scheme = "default" +media = "(prefers-color-scheme: light)" +palette.primary = "indigo" +palette.accent = "indigo" +toggle.icon = "lucide/sun" +toggle.name = "Switch to dark mode" + +# Palette toggle for dark mode +[[project.theme.palette]] +scheme = "slate" +media = "(prefers-color-scheme: dark)" +palette.primary = "indigo" +palette.accent = "indigo" +toggle.icon = "lucide/moon" +toggle.name = "Switch to light mode" + +[project.theme.font] +text = "Source Sans Pro" +code = "Roboto Mono" + +# ---------------------------------------------------------------------------- +# Section for markdown extensions +# ---------------------------------------------------------------------------- + +[project.markdown_extensions.abbr] +[project.markdown_extensions.attr_list] +[project.markdown_extensions.footnotes] +[project.markdown_extensions.toc] +permalink = "true" +permalink_title = "Anchor link to this section" + +[project.markdown_extensions.admonition] +[project.markdown_extensions.pymdownx.details] +[project.markdown_extensions.pymdownx.superfences] + +[project.markdown_extensions.pymdownx.highlight] +anchor_linenums = true +line_spans = "__span" +pygments_lang_class = true + +[project.markdown_extensions.pymdownx.inlinehilite] + +[project.markdown_extensions.pymdownx.snippets] +auto_append = ["abbreviations.md"] + +[project.markdown_extensions.pymdownx.tabbed] +alternate_style = "true" + +[project.markdown_extensions.pymdownx.tilde] + +# ---------------------------------------------------------------------------- +# Section for configuring extra options +# ---------------------------------------------------------------------------- + +[[project.extra.social]] +icon = "fontawesome/solid/earth-americas" +link = "https://pi-hole.net/" +name = "Website" + +[[project.extra.social]] +icon = "fontawesome/brands/github" +link = "https://github.com/pi-hole" +name = "GitHub" + +# ---------------------------------------------------------------------------- +# Navigation section +# ---------------------------------------------------------------------------- + +# nav = [ +# { "Get started" = "index.md" }, +# { "Markdown in 5min" = "markdown.md" }, +# ] From 0c676f86933d5ba1ad0420cc58d841a7cba5a187 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 18 Nov 2025 08:42:46 +0100 Subject: [PATCH 04/51] Update Readme Signed-off-by: yubiuser --- .devcontainer/Dockerfile | 2 +- .editorconfig | 2 +- .github/workflows/codespell.yml | 2 +- README.md | 20 ++++++-------------- 4 files changed, 9 insertions(+), 17 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 88c4498a7..320ab762b 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -7,7 +7,7 @@ RUN apk add --no-cache \ py3-pip \ tzdata -ENV USER node +ENV USER=node USER ${USER} # python packages (as zensical) are installed in the user's home directory diff --git a/.editorconfig b/.editorconfig index c5cd13007..f47550771 100644 --- a/.editorconfig +++ b/.editorconfig @@ -16,7 +16,7 @@ trim_trailing_whitespace = true tab_width = 2 [*.md] -tab_width = 2 +tab_width = 4 trim_trailing_whitespace = false [*.json] diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml index 5cd04d269..7028968c1 100644 --- a/.github/workflows/codespell.yml +++ b/.github/workflows/codespell.yml @@ -17,4 +17,4 @@ jobs: uses: codespell-project/actions-codespell@8f01853be192eb0f849a5c7d721450e7a467c579 #v2.2 with: ignore_words_file: .codespellignore - skip: ./docs/routers/fritzbox-de.md,./mkdocs.yml,./package.json,./package-lock.json,./.markdownlint.json,./requirements.txt, ./MathJax-es5/* + skip: ./docs/routers/fritzbox-de.md,./zensical.toml,./package.json,./package-lock.json,./.markdownlint.json,./requirements.txt diff --git a/README.md b/README.md index 90b4ce398..845c56d7c 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ This repo is the source for the official [Pi-hole documentation](https://docs.pi ### How to contribute -To add a new link on the navigation panel you need to edit the `mkdocs.yml` file in the root of the repo. There is a guide for building the navbar [on the mkdocs wiki](https://www.mkdocs.org/user-guide/configuration/#nav) +To add a new link on the navigation panel you need to edit the `zensical.toml` file in the root of the repo. There is a guide for building the navbar [on the zensical documentation](https://zensical.org/docs/setup/navigation/) To add a new document or guide. @@ -26,7 +26,7 @@ To add a new document or guide. ### Testing your changes -When working on this repo, it is advised that you review your changes locally before committing them. The `mkdocs serve` command can be used to live preview your changes (as you type) on your local machine. +When working on this repo, it is advised that you review your changes locally before committing them. The `zensical serve` command can be used to live preview your changes (as you type) on your local machine. Please make sure you fork the repo and change the clone URL in the example below for your fork: @@ -51,7 +51,7 @@ Please make sure you fork the repo and change the clone URL in the example below - Running the docs server: ```bash - mkdocs serve --dev-addr 0.0.0.0:8000 + zensical serve --dev-addr 0.0.0.0:8000 ``` - Fedora Linux instructions (tested on Fedora Linux 28): @@ -66,20 +66,12 @@ Please make sure you fork the repo and change the clone URL in the example below - Running the docs server: ```bash - mkdocs serve --dev-addr 0.0.0.0:8000 + zensical serve --dev-addr 0.0.0.0:8000 ``` -- Docker instructions: - - One-shot run: +- Docker devcontainer instructions: + - We provide a `devcontainer.json` and a dockerfile which will setup the required development environment for an easy deployment. Devcontainers can be used with various editors, e.g. VS Code - ```bash - docker run -v `pwd`:/opt/app/ -w /opt/app/ -p 8000:8000 -it nikolaik/python-nodejs:python3.7-nodejs16 \ - sh -c "pip install --user -r requirements.txt && \ - /root/.local/bin/mkdocs build && \ - npm ci && \ - npm test && \ - /root/.local/bin/mkdocs serve --dev-addr 0.0.0.0:8000" - ``` After these commands, the current branch is accessible through your favorite browser at From 38384fdd0b10311888efc25064384ea6c8eb70c1 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 18 Nov 2025 10:02:01 +0100 Subject: [PATCH 05/51] Change ToC title Signed-off-by: yubiuser --- zensical.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/zensical.toml b/zensical.toml index ca0397253..48abe9ac7 100644 --- a/zensical.toml +++ b/zensical.toml @@ -94,6 +94,7 @@ code = "Roboto Mono" [project.markdown_extensions.attr_list] [project.markdown_extensions.footnotes] [project.markdown_extensions.toc] +title = "Table of contents" permalink = "true" permalink_title = "Anchor link to this section" From 1416ee22a853886ff4f9861474dd8630f791599c Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 18 Nov 2025 12:22:11 +0100 Subject: [PATCH 06/51] Port navigation to zensical.toml Signed-off-by: yubiuser --- .editorconfig | 3 + docs/database/domain-database/groups.md | 4 - docs/database/domain-database/index.md | 4 - docs/docker/DHCP.md | 6 - docs/index.md | 5 - docs/main/contact.md | 6 - docs/main/coverage.md | 6 - docs/main/origins.md | 6 - docs/main/prerequisites.md | 6 - zensical.toml | 154 ++++++++++++++++++++++-- 10 files changed, 148 insertions(+), 52 deletions(-) diff --git a/.editorconfig b/.editorconfig index f47550771..e3bc703b9 100644 --- a/.editorconfig +++ b/.editorconfig @@ -15,6 +15,9 @@ trim_trailing_whitespace = true [*.yml] tab_width = 2 +[*.toml] +tab_width = 2 + [*.md] tab_width = 4 trim_trailing_whitespace = false diff --git a/docs/database/domain-database/groups.md b/docs/database/domain-database/groups.md index 1368ece90..fb635ad6b 100644 --- a/docs/database/domain-database/groups.md +++ b/docs/database/domain-database/groups.md @@ -1,7 +1,3 @@ ---- -title: Group Management ---- - Groups are defined in the `group` table and can have an optional description in addition to the mandatory name of the group. Label | Type | Uniqueness enforced | Content diff --git a/docs/database/domain-database/index.md b/docs/database/domain-database/index.md index 25888b725..0c67a427e 100644 --- a/docs/database/domain-database/index.md +++ b/docs/database/domain-database/index.md @@ -1,7 +1,3 @@ ---- -title: Domain Database ---- - Pi-hole uses the well-known relational database management system SQLite3 for managing the various domains that are used to control the DNS filtering system. The database-based domain management has been added with Pi-hole v5.0. The ability to subscribe to external *allow*lists has been added with Pi-hole v6.0. ## Priorities diff --git a/docs/docker/DHCP.md b/docs/docker/DHCP.md index 366343bee..7f5f8e78d 100644 --- a/docs/docker/DHCP.md +++ b/docs/docker/DHCP.md @@ -1,9 +1,3 @@ ---- -title: Docker DHCP and Network Modes -description: Setting up DHCP for Docker Pi-hole -last_updated: Sat Feb 09 00:00:00 2019 UTC ---- - # Docker DHCP and Network Modes Docker runs in a separate network by default called a docker bridge network, which makes DHCP want to serve addresses to that network and not your LAN network where you probably want it. This document details why Docker Pi-hole DHCP is different from normal Pi-hole and how to fix the problem. diff --git a/docs/index.md b/docs/index.md index 088a613fa..77fc9e188 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,8 +1,3 @@ ---- -title: Overview of Pi-hole -description: Brief overview of Pi-hole ---- -

Pi-hole diff --git a/docs/main/contact.md b/docs/main/contact.md index a24ad50b1..03e946ed2 100644 --- a/docs/main/contact.md +++ b/docs/main/contact.md @@ -1,9 +1,3 @@ ---- -title: Getting in touch -description: Pi-hole contacts and social media -last_updated: Sun Jan 13 18:33:27 2019 UTC ---- - While we are primarily reachable on our [Discourse User Forum](https://discourse.pi-hole.net/), we can also be found on a variety of social media outlets. **Please be sure to check the FAQ's** before starting a new discussion, as we do not have the spare time to reply to every request for assistance. - [Frequently Asked Questions](https://discourse.pi-hole.net/c/faqs) diff --git a/docs/main/coverage.md b/docs/main/coverage.md index efa0ee9cb..24bf07340 100644 --- a/docs/main/coverage.md +++ b/docs/main/coverage.md @@ -1,9 +1,3 @@ ---- -title: Pi-hole News and Blogs -description: Sites and articles about Pi-hole -last_updated: Sun Jan 13 19:20:35 2019 UTC ---- - ## YouTube/Twit/Video - [Security Now Netcast: Pi-hole](https://www.youtube.com/watch?v=p7-osq_y8i8&t=100m26s) _Oct 13, 2015_ diff --git a/docs/main/origins.md b/docs/main/origins.md index b9fd10cf3..2048ef338 100644 --- a/docs/main/origins.md +++ b/docs/main/origins.md @@ -1,9 +1,3 @@ ---- -title: Pi-hole Origins -description: Software packages used in Pi-hole -last_updated: Sun Jan 13 18:35:14 2019 UTC ---- - Pi-hole being a **advertising-aware DNS/Web server**, makes use of the following technologies: - [`dnsmasq`](https://www.thekelleys.org.uk/dnsmasq/doc.html) - a lightweight DNS and DHCP server diff --git a/docs/main/prerequisites.md b/docs/main/prerequisites.md index 685f8f784..883c019d6 100644 --- a/docs/main/prerequisites.md +++ b/docs/main/prerequisites.md @@ -1,9 +1,3 @@ ---- -title: Prerequisites -description: Operating system and network requirements -last_updated: May 25 2020 ---- - ## Hardware Pi-hole is very lightweight and does not require much processing power diff --git a/zensical.toml b/zensical.toml index 48abe9ac7..7c49734e9 100644 --- a/zensical.toml +++ b/zensical.toml @@ -20,6 +20,151 @@ copyright = "" extra_css = ["extra.css"] #extra_javascript = ["assets/javascript/extra.js"] +# ---------------------------------------------------------------------------- +# Navigation section +# ---------------------------------------------------------------------------- + + nav = [ + {"About Pi-hole" = [ + {"About Pi-hole" = "index.md"}, + {"Getting in touch" = "main/contact.md"}, + {"Pi-hole Origins" = "main/origins.md"}, + {"On the Web" = "main/coverage.md"} + ]}, + {"Getting Started" = [ + {"Getting Started" = "main/index.md"}, + {"Prerequisites" = "main/prerequisites.md"}, + {"Installation" = "main/basic-install.md"}, + {"Post-Install" = "main/post-install.md"}, + {"Updating" = "main/update.md"}, + {"Uninstalling" = "main/uninstall.md"} + ]}, + {"The  pihole  Command" = "main/pihole-command.md"}, + {"Databases" = [ + {"Databases" = "database/index.md"}, + {"Query Database" = "database/query-database.md"}, + {"Domain Database" = [ + {"Domain Database" = "database/domain-database/index.md"}, + {"Group Management" = "database/domain-database/groups.md"}, + {"Database Recovery" = "database/domain-database/recovery.md"} + ]}, + ]}, + {"Pi-hole API" = [ + {"Pi-hole API" = "api/index.md"}, + {"Authentication" = "api/auth.md"}, + {"TLS/SSL" = "api/tls.md"} + ]}, + {"FTLDNS" = [ + {"FTLDNS" = "ftldns/index.md"}, + {"Configuration" = "ftldns/configfile.md"}, + {"Interfaces" = "ftldns/interfaces.md"}, + {"DNS cache" = "ftldns/dns-cache.md"}, + {"DNS resolver" = "ftldns/dns-resolver.md"}, + {"Blocking mode" = "ftldns/blockingmode.md"}, + {"Privacy levels" = "ftldns/privacylevels.md"}, + {"dnsmasq warnings" = "ftldns/dnsmasq_warn.md"}, + {"Webserver" = "ftldns/webserver.md"}, + {"Advanced" = [ + {"Install from source" = "ftldns/compile.md"}, + {"Signals" = "ftldns/signals.md"}, + {"Cache dump" = "ftldns/cache_dump.md"}, + {"Packet dump" = "ftldns/package_dump.md"}, + {"Debugging" = [ + {"gdb" = "ftldns/gdb.md"}, + {"valgrind" = "ftldns/valgrind.md"}, + ]}, + ]}, + ]}, + {"Group Management" = [ + {"Group Management" = "group_management/index.md"}, + {"Examples" = "group_management/example.md"} + ]}, + {"RegEx Blocking" = [ + {"Regex Blocking" = "regex/index.md"}, + {"Testing" = "regex/testmode.md"}, + {"Tutorial" = "regex/tutorial.md"}, + {"Pi-hole extensions" = "regex/pi-hole.md"}, + {"Approximate matching" = "regex/approximate.md"} + ]}, + {"Docker" = [ + {"Docker" = "docker/index.md"}, + {"Configuration" = "docker/configuration.md"}, + {"Upgrading" = [ + {"Upgrading" = "docker/upgrading/index.md"}, + {"Upgrading from v5.x" = "docker/upgrading/v5-v6.md"} + ]}, + {"Building" = "docker/build-image.md"}, + {"DHCP" = "docker/DHCP.md"}, + {"Tips and Tricks" = "docker/tips-and-tricks.md"}, + ]}, + {"Contributing" = [ + {"Contributing" = "guides/github/index.md"}, + {"Developer Certificate of Origin (DCO)" = "guides/github/dco.md"}, + {"How to sign-off commits" = "guides/github/how-to-signoff.md"}, + {"How to fork and rebase" = "guides/github/how-to-fork-rebase.md"} + ]}, + {"Guides" = [ + {"DNS" = [ + {"unbound" = "guides/dns/unbound.md"}, + {"cloudflared (DoH)" = "guides/dns/cloudflared.md"}, + {"dnscrypt-proxy (DoH)" = "guides/dns/dnscrypt-proxy.md"}, + {"Upstream DNS Providers" = "guides/dns/upstream-dns-providers.md"} + ]}, + {"VPN" = [ + {"WireGuard" = [ + {"Wireguard" = "guides/vpn/wireguard/index.md"}, + {"Concept" = "guides/vpn/wireguard/concept.md"}, + {"Install server" = "guides/vpn/wireguard/server.md"}, + {"Add client(s)" = "guides/vpn/wireguard/client.md"}, + {"Optional extra features" = [ + {"Make local devices accessible" = "guides/vpn/wireguard/internal.md"}, + {"Tunnel all Internet traffic" = "guides/vpn/wireguard/route-everything.md"} + ]}, + {"Troubleshooting" = "guides/vpn/wireguard/faq.md"} + ]}, + {"OpenVPN" = [ + {"OpenVPN" = "guides/vpn/openvpn/index.md"}, + {"Installation" = "guides/vpn/openvpn/installation.md"}, + {"Setup OpenVPN Server" = "guides/vpn/openvpn/setup-openvpn-server.md"}, + {"Firewall Configuration" = "guides/vpn/openvpn/firewall.md"}, + {"Connecting clients" = [ + {"General" = "guides/vpn/openvpn/clients.md"}, + {"Android" = "guides/vpn/openvpn/android-client.md"} + ]}, + {"Optional: Only route DNS via VPN" = "guides/vpn/openvpn/only-dns-via-vpn.md"}, + {"Optional: Dual operation: LAN & VPN at the same time" = "guides/vpn/openvpn/dual-operation.md"}, + {"Optional: Full and DNS-only" = "guides/vpn/openvpn/dual-VPN.md"}, + {"Optional: Dynamic DNS" = "guides/vpn/openvpn/dynDNS.md"}, + {"Troubleshooting" = "guides/vpn/openvpn/troubleshooting.md"} + ]} + ]}, + {"Misc" = [ + {"Home Assistant" = "guides/misc/homeassistant.md"}, + {"Benchmarking" = "guides/misc/benchmark.md"}, + {"Tor & Pi-hole" = [ + {"Tor & Pi-hole" = "guides/misc/tor/index.md"}, + {"Basic Setup" = "guides/misc/tor/setup.md"}, + {"Using Tor" = "guides/misc/tor/using-tor.md"}, + {"Performance and other issues" = "guides/misc/tor/performance-issues.md"}, + {"Using DNSSEC" = "guides/misc/tor/dnssec.md"}, + ]}, + {"Allowlist and Denylist editing" = "guides/misc/allowlist-denylist.md"}, + {"Network Time Protocol" = "guides/misc/ntp.md"} + ]} + ]}, + {"Router setup" = [ + {"ASUS router" = "routers/asus.md"}, + {"Fritz!Box (EN)" = "routers/fritzbox.md"}, + {"Fritz!Box (DE)" = "routers/fritzbox-de.md"}, + {"Nokia G-240W-B" = "routers/nokia-G240WB.md"}, + {"OPNsense" = "routers/OPNsense.md"}, + {"TP-Link" = "routers/tp-link.md"}, + {"Ubiquiti USG" = "routers/ubiquiti-usg.md"} + ]}, + {"FAQ" = "main/faq.md"}, + {"Community Projects" = "main/projects.md"} + ] + # ---------------------------------------------------------------------------- # Section for configuring theme options # ---------------------------------------------------------------------------- @@ -130,12 +275,3 @@ name = "Website" icon = "fontawesome/brands/github" link = "https://github.com/pi-hole" name = "GitHub" - -# ---------------------------------------------------------------------------- -# Navigation section -# ---------------------------------------------------------------------------- - -# nav = [ -# { "Get started" = "index.md" }, -# { "Markdown in 5min" = "markdown.md" }, -# ] From 80e68fe76746a77a38c61270fe7d0ac37bd0030b Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 18 Nov 2025 12:37:00 +0100 Subject: [PATCH 07/51] Enable footnote tooltips, navigation tracking and toc follow Signed-off-by: yubiuser --- zensical.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zensical.toml b/zensical.toml index 7c49734e9..49daffaad 100644 --- a/zensical.toml +++ b/zensical.toml @@ -187,7 +187,7 @@ features = [ #"content.code.annotate", "content.code.copy", #"content.code.select", - #"content.footnote.tooltips", + "content.footnote.tooltips", "content.tabs.link", #"content.tooltips", # "header.autohide", @@ -203,9 +203,9 @@ features = [ #"navigation.tabs", #"navigation.tabs.sticky", "navigation.top", - #"navigation.tracking", + "navigation.tracking", "search.highlight", - # "toc.follow", + "toc.follow", #"toc.integrate", ] From a886a5133834665e3c80ee8150c0a89e2d700fcf Mon Sep 17 00:00:00 2001 From: yubiuser Date: Wed, 19 Nov 2025 11:26:25 +0100 Subject: [PATCH 08/51] Fix abbreviations from glossary. Zensical recommends to place the file outside of `docs` which we should also consider Signed-off-by: yubiuser --- zensical.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zensical.toml b/zensical.toml index 49daffaad..fb014ae02 100644 --- a/zensical.toml +++ b/zensical.toml @@ -255,7 +255,7 @@ pygments_lang_class = true [project.markdown_extensions.pymdownx.inlinehilite] [project.markdown_extensions.pymdownx.snippets] -auto_append = ["abbreviations.md"] +auto_append = ["docs/abbreviations.md"] [project.markdown_extensions.pymdownx.tabbed] alternate_style = "true" From d2886f4c71e59010d4879b2f1ed0b5823dd7bb1c Mon Sep 17 00:00:00 2001 From: yubiuser Date: Thu, 20 Nov 2025 17:43:07 +0100 Subject: [PATCH 09/51] Update to zensical 0.0.9 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 26d72fd9a..148c848d5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.8 +zensical==0.0.9 From c4f1a08e1be5125654551ef5d530619fb20d5e88 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Wed, 26 Nov 2025 08:47:04 +0100 Subject: [PATCH 10/51] Update zensical to 0.0.10 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 148c848d5..7063ca3c7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.9 +zensical==0.0.10 From 40e9933f5367bf250537cb7d529fcc6cd0594db5 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Wed, 3 Dec 2025 21:44:06 +0100 Subject: [PATCH 11/51] Update zensical to 0.0.11 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 7063ca3c7..0c02ed9d2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.10 +zensical==0.0.11 From 950b15339ed47eabbea4b75aa071b3008cbf1f09 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Sat, 6 Dec 2025 11:58:32 +0100 Subject: [PATCH 12/51] Update package-lock.json Signed-off-by: yubiuser --- package-lock.json | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index cb3bdf7d7..c4450533d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -348,9 +348,9 @@ } }, "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -759,6 +759,19 @@ "markdown-it": "bin/markdown-it.mjs" } }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/markdownlint": { "version": "0.41.1", "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.41.1.tgz", @@ -1430,9 +1443,9 @@ } }, "node_modules/mime": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.6.tgz", - "integrity": "sha512-4rGt7rvQHBbaSOF9POGkk1ocRP16Md1x36Xma8sz8h8/vfCUI2OtEIeCqe4Ofes853x4xDoPiFLIT47J5fI/7A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.1.0.tgz", + "integrity": "sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==", "dev": true, "funding": [ "https://github.com/sponsors/broofa" @@ -1621,9 +1634,9 @@ } }, "node_modules/srcset": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/srcset/-/srcset-5.0.1.tgz", - "integrity": "sha512-/P1UYbGfJVlxZag7aABNRrulEXAwCSDo7fklafOQrantuPTDmYgijJMks2zusPCVzgW9+4P69mq7w6pYuZpgxw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-5.0.2.tgz", + "integrity": "sha512-pucR5KmXL7uWI59sXE2nuodomLsfnIQDa5Fck0TooiyxsIx+JYGiFm+wFO7aaDvvl/43ipjUjAb5je7dcAwlzQ==", "dev": true, "license": "MIT", "engines": { From b31380fe706d5609545db25975cdd5ee053e0933 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Sat, 20 Dec 2025 08:44:53 +0100 Subject: [PATCH 13/51] Update zensical to 0.0.13 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0c02ed9d2..2c89e4e3c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.11 +zensical==0.0.13 From 97ab09326c040b7d4d14c39135b123be02e13b30 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Sun, 21 Dec 2025 18:08:44 +0100 Subject: [PATCH 14/51] Update zensical to 0.0.14 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 2c89e4e3c..d4b997cea 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.13 +zensical==0.0.14 From 118e447517cca3d9f1e142af885653cad9f3c1f0 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Thu, 25 Dec 2025 23:52:39 +0100 Subject: [PATCH 15/51] Update zensical to 0.0.15 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d4b997cea..768cfb342 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.14 +zensical==0.0.15 From 407e2d3023b86bc1f41655eab0747f1d4b2c4e64 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Thu, 15 Jan 2026 17:11:32 +0100 Subject: [PATCH 16/51] Update zensical to 0.0.16 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 768cfb342..dc35dba9e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.15 +zensical==0.0.16 From 710dcc584b015537a93c22b483ebb9545bf9dc76 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 20 Jan 2026 10:04:02 +0100 Subject: [PATCH 17/51] Update zensical to 0.0.17 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index dc35dba9e..bad63c321 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.16 +zensical==0.0.17 From 34a632d2322e155ba7706690834112099296bcaf Mon Sep 17 00:00:00 2001 From: yubiuser Date: Mon, 26 Jan 2026 14:28:58 +0100 Subject: [PATCH 18/51] Update zensical to 0.0.19 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index bad63c321..b811d0ad3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.17 +zensical==0.0.19 From d69b05d5ea93353babc83ae3bdfc6fd2f2cd73ef Mon Sep 17 00:00:00 2001 From: yubiuser Date: Sat, 31 Jan 2026 12:37:32 +0100 Subject: [PATCH 19/51] Update zensical to 0.0.20 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b811d0ad3..97f8a6e10 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.19 +zensical==0.0.20 From f4b4a9d1c2fc544cb06de1133ea32ad11d1cecc0 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Sat, 7 Feb 2026 16:49:37 +0100 Subject: [PATCH 20/51] Udpate zensical to 0.0.21 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 97f8a6e10..9b319f9b4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.20 +zensical==0.0.21 From 0ca298fe2cf3f9c14e39a77d92e510b4eb17505b Mon Sep 17 00:00:00 2001 From: yubiuser Date: Thu, 12 Feb 2026 09:05:48 +0100 Subject: [PATCH 21/51] Update zensical to 0.0.23 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 9b319f9b4..1fd9ee4e0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.21 +zensical==0.0.23 From 511277b1a1ad1b8e4bef8dd714b7818330321abe Mon Sep 17 00:00:00 2001 From: yubiuser Date: Thu, 26 Feb 2026 20:11:14 +0100 Subject: [PATCH 22/51] Update to 0.0.24 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 1fd9ee4e0..32b234e83 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.23 +zensical==0.0.24 From fc025db6e39ce02d8cd341672e9f5ce3b2d0a8dc Mon Sep 17 00:00:00 2001 From: yubiuser Date: Thu, 12 Mar 2026 10:15:33 +0100 Subject: [PATCH 23/51] Update zensical to 0.0.26 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 32b234e83..11d6d8e8d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.24 +zensical==0.0.26 From ebd02a93c934df5ae0ab145cf0c146a5b4c47e0b Mon Sep 17 00:00:00 2001 From: yubiuser Date: Fri, 13 Mar 2026 23:17:39 +0100 Subject: [PATCH 24/51] Update zensical to 0.0.27 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 11d6d8e8d..22d152b1e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.26 +zensical==0.0.27 From cded9435be5b83292ec8a28ef00fa200935687d4 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Sat, 21 Mar 2026 14:11:47 +0100 Subject: [PATCH 25/51] Udpate zensical to 0.0.28 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 22d152b1e..095370411 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.27 +zensical==0.0.28 From 03815c8aa2c8be93f3883611ced4b5fd65db20e8 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Wed, 25 Mar 2026 11:41:05 +0100 Subject: [PATCH 26/51] Update zensical to 0.0.29 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 095370411..d91c01a0b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.28 +zensical==0.0.29 From bca8cfbb2ddd62c14a952e8e52f5013c68301283 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Sun, 29 Mar 2026 10:20:18 +0200 Subject: [PATCH 27/51] Update zensical to 0.0.30 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d91c01a0b..a07715357 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.29 +zensical==0.0.30 From ba2b8bce45695c10e7f91b619311b35325a05f14 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Wed, 1 Apr 2026 19:58:04 +0200 Subject: [PATCH 28/51] Update zensical to 0.0.31 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index a07715357..4d2bf9665 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.30 +zensical==0.0.31 From d16bdee69a5bd83333d1d6509e259e8254876a9f Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 7 Apr 2026 20:27:08 +0200 Subject: [PATCH 29/51] Update zensical to 0.0.32 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 4d2bf9665..8f405362b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.31 +zensical==0.0.32 From 1306292a40f1fa64fe9ca3dae7882ad0016f1102 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 14 Apr 2026 17:26:42 +0200 Subject: [PATCH 30/51] Update to zensical 0.0.33 and include default enabled Extensions Signed-off-by: yubiuser --- requirements.txt | 2 +- zensical.toml | 33 +++++++++++++++++++++++++++------ 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/requirements.txt b/requirements.txt index 8f405362b..4a51f3fd2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.32 +zensical==0.0.33 diff --git a/zensical.toml b/zensical.toml index fb014ae02..2b9003f90 100644 --- a/zensical.toml +++ b/zensical.toml @@ -236,16 +236,29 @@ code = "Roboto Mono" # ---------------------------------------------------------------------------- [project.markdown_extensions.abbr] +[project.markdown_extensions.admonition] [project.markdown_extensions.attr_list] +[project.markdown_extensions.def_list] [project.markdown_extensions.footnotes] +[project.markdown_extensions.md_in_html] + [project.markdown_extensions.toc] title = "Table of contents" permalink = "true" permalink_title = "Anchor link to this section" -[project.markdown_extensions.admonition] +[project.markdown_extensions.pymdownx.arithmatex] +generic = true + +[project.markdown_extensions.pymdownx.betterem] +smart_enable = "all" + +[project.markdown_extensions.pymdownx.caret] [project.markdown_extensions.pymdownx.details] -[project.markdown_extensions.pymdownx.superfences] + +[project.markdown_extensions.pymdownx.emoji] +emoji_generator = "zensical.extensions.emoji.to_svg" +emoji_index = "zensical.extensions.emoji.twemoji" [project.markdown_extensions.pymdownx.highlight] anchor_linenums = true @@ -253,15 +266,23 @@ line_spans = "__span" pygments_lang_class = true [project.markdown_extensions.pymdownx.inlinehilite] - -[project.markdown_extensions.pymdownx.snippets] -auto_append = ["docs/abbreviations.md"] +[project.markdown_extensions.pymdownx.keys] +[project.markdown_extensions.pymdownx.mark] +[project.markdown_extensions.pymdownx.smartsymbols] +[project.markdown_extensions.pymdownx.superfences] [project.markdown_extensions.pymdownx.tabbed] -alternate_style = "true" +alternate_style = true + +[project.markdown_extensions.pymdownx.tasklist] +custom_checkbox = true [project.markdown_extensions.pymdownx.tilde] +[project.markdown_extensions.pymdownx.snippets] +auto_append = ["docs/abbreviations.md"] + + # ---------------------------------------------------------------------------- # Section for configuring extra options # ---------------------------------------------------------------------------- From 134b356ef3ad203d880cd30eaf253c1c6f136f78 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 21 Apr 2026 22:34:51 +0200 Subject: [PATCH 31/51] Update zensical to 0.0.34 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 4a51f3fd2..295cb04d5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.33 +zensical==0.0.34 From 70eccb6b53ef74999a4c30e21dbfe70a6f1b78a9 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Sun, 26 Apr 2026 11:02:48 +0200 Subject: [PATCH 32/51] Update zensical to 0.0.36 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 295cb04d5..4a815ff98 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.34 +zensical==0.0.36 From 93774df32fbf70daf258e02b5dd42a9d83aad087 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Thu, 30 Apr 2026 17:21:58 +0200 Subject: [PATCH 33/51] Update to zensical 0.0.38 and fix issues with link validation Signed-off-by: yubiuser --- docs/docker/configuration.md | 2 +- docs/main/coverage.md | 1 - requirements.txt | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/docker/configuration.md b/docs/docker/configuration.md index ed042dac1..f3656a840 100644 --- a/docs/docker/configuration.md +++ b/docs/docker/configuration.md @@ -59,7 +59,7 @@ An example of how some of these variables may look in your compose file | :--- | :--- | | `TZ` | Set your [timezone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) to make sure logs rotate at local midnight instead of at UTC midnight. | | `FTLCONF_webserver_api_password` | To set a specific password for the web interface (per the quick-start example).

If this variable is not detected, and you have not already set one previously inside the container via `pihole setpassword` or `pihole-FTL --config webserver.api.password`, then a random password will be assigned on startup, and will be printed to the log.

You can find this password by running `docker logs pihole` and looking for "random password". See [Setting the Web Interface Password](#setting-the-web-interface-password) below for usage examples. | -| `FTLCONF_dns_upstreams` | Upstream DNS server(s) for Pi-hole to forward queries to, separated by a semicolon

Supports non-standard ports with #[port number] e.g `127.0.0.1#5053;8.8.8.8;8.8.4.4`

Supports [Docker service names and links](https://docs.docker.com/compose/networking/) instead of IPs e.g `upstream0;upstream1` where upstream0 and upstream1 are the service names of or links to docker services | +| `FTLCONF_dns_upstreams` | Upstream DNS server(s) for Pi-hole to forward queries to, separated by a semicolon

Supports non-standard ports with #\[port\] number e.g `127.0.0.1#5053;8.8.8.8;8.8.4.4`

Supports [Docker service names and links](https://docs.docker.com/compose/networking/) instead of IPs e.g `upstream0;upstream1` where upstream0 and upstream1 are the service names of or links to docker services | ## Setting the Web Interface Password {: #setting-the-web-interface-password } diff --git a/docs/main/coverage.md b/docs/main/coverage.md index 24bf07340..52448dfcc 100644 --- a/docs/main/coverage.md +++ b/docs/main/coverage.md @@ -5,7 +5,6 @@ - [Foolish Tech Show](https://www.youtube.com/watch?v=bYyena0I9yc&t=2m4s) _Dec 23, 2015_ - [Digital Trends: 5 Fun, Easy Projects You Can Try With a $35 Raspberry Pi](https://www.youtube.com/watch?v=QwrKlyC2kdM&t=1m42s) _Mar 22, 2016_ - [Adafruit: Raspberry Pi Quick Look at Pi Hole ad blocking server with Tony D](https://www.youtube.com/watch?v=eg4u2j1HYlI) _Jun 20, 2016_ -- [The Defrag Show: Endoscope USB Camera, The Final \[HoloLens\] Vote, Adblock Pi and more](https://channel9.msdn.com/Shows/The-Defrag-Show/Defrag-Endoscope-USB-Camera-The-Final-HoloLens-Vote-Adblock-Pi-and-more#time=20m39s) _Jan 27, 2016_ - [Know How 355: Killing ads with a Raspberry Pi-Hole!](https://www.twit.tv/shows/know-how/episodes/355) _Nov 9, 2017_ - [Linus Tech Tips: Block EVERY Online Ad with THIS](https://www.youtube.com/watch?v=KBXTnrD_Zs4) _Aug 28, 2019_ diff --git a/requirements.txt b/requirements.txt index 4a815ff98..92a678f53 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.36 +zensical==0.0.38 From c0653937df7c86d484b346aa4039ebf075118931 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Fri, 1 May 2026 19:05:26 +0200 Subject: [PATCH 34/51] Update zensical to 0.0.39 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 92a678f53..b1419a7b6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.38 +zensical==0.0.39 From 8f55537d09aa469b88e5db59f3125b431abd72aa Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 5 May 2026 19:24:56 +0200 Subject: [PATCH 35/51] Update zensical to 0.0.40 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b1419a7b6..fbaafef2b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.39 +zensical==0.0.40 From 0ba2ea9c5db574826af0f8b5afcc1fdcf281734a Mon Sep 17 00:00:00 2001 From: yubiuser Date: Sat, 9 May 2026 16:39:21 +0200 Subject: [PATCH 36/51] Update zensical to 0.0.41 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index fbaafef2b..3e4a2e791 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.40 +zensical==0.0.41 From ecb5034c7a8b9722d040928a788b8ac7b6b37806 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Fri, 15 May 2026 13:09:17 +0200 Subject: [PATCH 37/51] Update zensical to 0.0.42 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 3e4a2e791..2cefade4e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.41 +zensical==0.0.42 From bdc298ccc40c448f4894ad7289d065cc7f8cf79b Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 19 May 2026 20:56:37 +0200 Subject: [PATCH 38/51] Update zensical to 0.0.43 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 2cefade4e..0823f99c5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.42 +zensical==0.0.43 From 458b973f5920d93390f93aee997b5a8861f7a909 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Mon, 1 Jun 2026 19:57:06 +0200 Subject: [PATCH 39/51] Add how-to-sign-commits to navigation Signed-off-by: yubiuser --- zensical.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zensical.toml b/zensical.toml index 2b9003f90..efe44c232 100644 --- a/zensical.toml +++ b/zensical.toml @@ -101,7 +101,8 @@ extra_css = ["extra.css"] {"Contributing" = "guides/github/index.md"}, {"Developer Certificate of Origin (DCO)" = "guides/github/dco.md"}, {"How to sign-off commits" = "guides/github/how-to-signoff.md"}, - {"How to fork and rebase" = "guides/github/how-to-fork-rebase.md"} + {"How to fork and rebase" = "guides/github/how-to-fork-rebase.md"}, + {"How to sign commits" = "guides/github/sign.md" } ]}, {"Guides" = [ {"DNS" = [ From 34d004f092ae7a970b35220433ce0d5e23f5e070 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Sat, 6 Jun 2026 10:06:22 +0200 Subject: [PATCH 40/51] Update zensicalto 0.0.44 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0823f99c5..d0260e88d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.43 +zensical==0.0.44 From 40f45f8672bca6fdd91d83f85f4ea934de4686ff Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 9 Jun 2026 13:58:58 +0200 Subject: [PATCH 41/51] Udpate zensical to 0.0.45 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d0260e88d..75fa97c00 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.44 +zensical==0.0.45 From 3a3202295a0144860e0a4b12512c74fec29c4609 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Mon, 22 Jun 2026 10:55:23 +0200 Subject: [PATCH 42/51] Update zensical to 0.0.46 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 75fa97c00..a1a10890e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.45 +zensical==0.0.46 From ac424e3919c90dc389365b5ebee6d9e59b892d6a Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 7 Jul 2026 12:11:03 +0200 Subject: [PATCH 43/51] Udpate zensical to 0.0.47 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index a1a10890e..ff145c47e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.46 +zensical==0.0.47 From 92eb94e7bcb65922b357575f8c818c5abc22b35d Mon Sep 17 00:00:00 2001 From: yubiuser Date: Thu, 9 Jul 2026 18:20:10 +0200 Subject: [PATCH 44/51] zensical==0.0.50 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index ff145c47e..5b5ea1420 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.47 +zensical==0.0.50 From 01eb2200172867ce639cf8124bd43406aaea66cf Mon Sep 17 00:00:00 2001 From: yubiuser Date: Fri, 17 Jul 2026 20:48:07 +0200 Subject: [PATCH 45/51] Update zensical==0.0.51 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 5b5ea1420..80f53abcc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.50 +zensical==0.0.51 From 9c0949956c74a9fb96c1860a2266d94a2af97c48 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Mon, 27 Jul 2026 10:07:37 +0200 Subject: [PATCH 46/51] Remove OpenVPN from navigation Signed-off-by: yubiuser --- package-lock.json | 13 ------------- zensical.toml | 15 --------------- 2 files changed, 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index c4450533d..f94b0f6c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -347,19 +347,6 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", diff --git a/zensical.toml b/zensical.toml index efe44c232..910264e64 100644 --- a/zensical.toml +++ b/zensical.toml @@ -123,21 +123,6 @@ extra_css = ["extra.css"] ]}, {"Troubleshooting" = "guides/vpn/wireguard/faq.md"} ]}, - {"OpenVPN" = [ - {"OpenVPN" = "guides/vpn/openvpn/index.md"}, - {"Installation" = "guides/vpn/openvpn/installation.md"}, - {"Setup OpenVPN Server" = "guides/vpn/openvpn/setup-openvpn-server.md"}, - {"Firewall Configuration" = "guides/vpn/openvpn/firewall.md"}, - {"Connecting clients" = [ - {"General" = "guides/vpn/openvpn/clients.md"}, - {"Android" = "guides/vpn/openvpn/android-client.md"} - ]}, - {"Optional: Only route DNS via VPN" = "guides/vpn/openvpn/only-dns-via-vpn.md"}, - {"Optional: Dual operation: LAN & VPN at the same time" = "guides/vpn/openvpn/dual-operation.md"}, - {"Optional: Full and DNS-only" = "guides/vpn/openvpn/dual-VPN.md"}, - {"Optional: Dynamic DNS" = "guides/vpn/openvpn/dynDNS.md"}, - {"Troubleshooting" = "guides/vpn/openvpn/troubleshooting.md"} - ]} ]}, {"Misc" = [ {"Home Assistant" = "guides/misc/homeassistant.md"}, From 4e02001fd753f6652f61166b6310d0966f83b7f5 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Thu, 30 Jul 2026 14:54:45 +0200 Subject: [PATCH 47/51] Update zensical==0.0.52 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 80f53abcc..0dfd35e7b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.51 +zensical==0.0.52 From bb7d4a45821cd3d8967bd09cd1cf8429b37669b0 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 4 Aug 2026 17:19:01 +0200 Subject: [PATCH 48/51] zensical==0.0.53 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0dfd35e7b..32acfa608 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.52 +zensical==0.0.53 From bd196db4fe52373120269a031eb09b62e77f1802 Mon Sep 17 00:00:00 2001 From: yubiuser Date: Thu, 13 Aug 2026 18:50:41 +0200 Subject: [PATCH 49/51] zensical==0.0.54 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 32acfa608..38f70b48a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.53 +zensical==0.0.54 From 406763d0222cabe55fa104b89bae85f756c9011b Mon Sep 17 00:00:00 2001 From: yubiuser Date: Mon, 17 Aug 2026 12:02:23 +0200 Subject: [PATCH 50/51] zensical==0.0.55 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 38f70b48a..4072cbca8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.54 +zensical==0.0.55 From f49143d2fe405b982d6b56719a124095e7c7137c Mon Sep 17 00:00:00 2001 From: yubiuser Date: Tue, 18 Aug 2026 21:17:24 +0200 Subject: [PATCH 51/51] zensical==0.0.56 Signed-off-by: yubiuser --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 4072cbca8..ab6617313 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -zensical==0.0.55 +zensical==0.0.56