From 553a69a9efed60ed009b2b0a0df1ab18fe22d2f1 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Wed, 27 May 2026 07:54:23 +1000 Subject: [PATCH] Adds Certbot document to docs site --- docs/.vitepress/config.mts | 111 ++++++++++++++++++++++++++----------- docs/src/certbot/index.md | 38 +++++++++++++ 2 files changed, 116 insertions(+), 33 deletions(-) create mode 100644 docs/src/certbot/index.md diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 52586bfc..b6f6f3f6 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -1,4 +1,4 @@ -import { defineConfig, type DefaultTheme } from 'vitepress'; +import { defineConfig } from "vitepress"; // https://vitepress.dev/reference/site-config export default defineConfig({ @@ -6,56 +6,101 @@ export default defineConfig({ description: "Expose your services easily and securely", head: [ ["link", { rel: "icon", href: "/icon.png" }], - ["meta", { name: "description", content: "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt" }], + [ + "meta", + { + name: "description", + content: + "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt", + }, + ], ["meta", { property: "og:title", content: "Nginx Proxy Manager" }], - ["meta", { property: "og:description", content: "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt"}], + [ + "meta", + { + property: "og:description", + content: + "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt", + }, + ], ["meta", { property: "og:type", content: "website" }], ["meta", { property: "og:url", content: "https://nginxproxymanager.com/" }], - ["meta", { property: "og:image", content: "https://nginxproxymanager.com/icon.png" }], - ["meta", { name: "twitter:card", content: "summary"}], - ["meta", { name: "twitter:title", content: "Nginx Proxy Manager"}], - ["meta", { name: "twitter:description", content: "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt"}], - ["meta", { name: "twitter:image", content: "https://nginxproxymanager.com/icon.png"}], - ["meta", { name: "twitter:alt", content: "Nginx Proxy Manager"}], + [ + "meta", + { + property: "og:image", + content: "https://nginxproxymanager.com/icon.png", + }, + ], + ["meta", { name: "twitter:card", content: "summary" }], + ["meta", { name: "twitter:title", content: "Nginx Proxy Manager" }], + [ + "meta", + { + name: "twitter:description", + content: + "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt", + }, + ], + [ + "meta", + { + name: "twitter:image", + content: "https://nginxproxymanager.com/icon.png", + }, + ], + ["meta", { name: "twitter:alt", content: "Nginx Proxy Manager" }], // GA - ['script', { async: 'true', src: 'https://www.googletagmanager.com/gtag/js?id=G-TXT8F5WY5B'}], - ['script', {}, "window.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('js', new Date());\ngtag('config', 'G-TXT8F5WY5B');"], + [ + "script", + { + async: "true", + src: "https://www.googletagmanager.com/gtag/js?id=G-TXT8F5WY5B", + }, + ], + [ + "script", + {}, + "window.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('js', new Date());\ngtag('config', 'G-TXT8F5WY5B');", + ], ], sitemap: { - hostname: 'https://nginxproxymanager.com' + hostname: "https://nginxproxymanager.com", }, metaChunk: true, - srcDir: './src', - outDir: './dist', + srcDir: "./src", + outDir: "./dist", themeConfig: { // https://vitepress.dev/reference/default-theme-config - logo: { src: '/logo.svg', width: 24, height: 24 }, - nav: [ - { text: 'Setup', link: '/setup/' }, - ], + logo: { src: "/logo.svg", width: 24, height: 24 }, + nav: [{ text: "Setup", link: "/setup/" }], sidebar: [ { items: [ // { text: 'Home', link: '/' }, - { text: 'Guide', link: '/guide/' }, - { text: 'Screenshots', link: '/screenshots/' }, - { text: 'Setup Instructions', link: '/setup/' }, - { text: 'Advanced Configuration', link: '/advanced-config/' }, - { text: 'Upgrading', link: '/upgrading/' }, - { text: 'Frequently Asked Questions', link: '/faq/' }, - { text: 'Third Party', link: '/third-party/' }, - ] - } + { text: "Guide", link: "/guide/" }, + { text: "Screenshots", link: "/screenshots/" }, + { text: "Setup Instructions", link: "/setup/" }, + { text: "Advanced Configuration", link: "/advanced-config/" }, + { text: "Upgrading", link: "/upgrading/" }, + { text: "Frequently Asked Questions", link: "/faq/" }, + { text: "Certbot", link: "/certbot/" }, + { text: "Third Party", link: "/third-party/" }, + ], + }, ], socialLinks: [ - { icon: 'github', link: 'https://github.com/NginxProxyManager/nginx-proxy-manager' } + { + icon: "github", + link: "https://github.com/NginxProxyManager/nginx-proxy-manager", + }, ], search: { - provider: 'local' + provider: "local", }, footer: { - message: 'Released under the MIT License.', - copyright: 'Copyright © 2016-present jc21.com' - } - } + message: "Released under the MIT License.", + copyright: "Copyright © 2016-present jc21.com", + }, + }, }); diff --git a/docs/src/certbot/index.md b/docs/src/certbot/index.md new file mode 100644 index 00000000..f8845367 --- /dev/null +++ b/docs/src/certbot/index.md @@ -0,0 +1,38 @@ +--- +outline: deep +--- + +## Certbot DNS plugins in Nginx Proxy Manager + +Nginx Proxy Manager uses Certbot to issue and renew Let’s Encrypt certificates. + +When you request a certificate using a DNS challenge, Nginx Proxy Manager installs +the corresponding Certbot DNS plugin for the provider you selected. The available +providers and package versions are defined in +⁠[certbot-dns-plugins.json](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/backend/certbot/dns-plugins.json). + +## Important limitations + +DNS plugins are maintained independently from Certbot and from Nginx Proxy Manager. As a result: +- Some plugins may lag behind current Certbot or dependency versions. +- A plugin may install package versions that conflict with other Certbot components. +- Support quality varies between providers, and not every plugin is regularly tested in Nginx Proxy Manager. + +::: warning +Using more than one DNS provider in the same Nginx Proxy Manager instance may introduce Python +dependency conflicts between Certbot plugins. +::: + +## If a DNS plugin does not work + +1. Check the Nginx Proxy Manager container logs for Certbot or Python package installation errors. +2. Identify the plugin package and version defined for your provider in +⁠[certbot-dns-plugins.json](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/backend/certbot/dns-plugins.json). +3. Check [PyPI](https://pypi.org/) or the plugin project for a newer compatible release. +4. If needed, update the plugin definition, including any required dependency pins. +5. Submitting a pull request and CI will build a testable docker image for you. + +## File reference + +Use this file when reviewing or updating provider definitions: +- ⁠[certbot-dns-plugins.json](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/backend/certbot/dns-plugins.json)