A community-driven hub of reusable BunkerWeb templates — share, discover, and improve configurations for your favorite services.
Find a file
2026-04-24 17:08:04 +02:00
.github Merge pull request #11 from bunkerity/dependabot/github_actions/dev/softprops/action-gh-release-2.5.0 2026-02-25 15:36:58 +01:00
assets Add logo image and update README layout for improved presentation 2025-10-21 15:16:27 +02:00
templates Merge pull request #29 from Simonmiz/main 2026-04-24 16:00:46 +02:00
.coderabbit.yaml feat: Add initial .coderabbit.yaml configuration for template guidelines and review processes 2026-04-13 10:17:03 +02:00
.gitattributes Add initial configuration files including .gitattributes, .gitignore, .pre-commit-config.yaml, and .prettierignore 2025-10-21 10:52:58 +02:00
.gitignore Add initial configuration files including .gitattributes, .gitignore, .pre-commit-config.yaml, and .prettierignore 2025-10-21 10:52:58 +02:00
.pre-commit-config.yaml Add initial configuration files including .gitattributes, .gitignore, .pre-commit-config.yaml, and .prettierignore 2025-10-21 10:52:58 +02:00
.prettierignore Add initial configuration files including .gitattributes, .gitignore, .pre-commit-config.yaml, and .prettierignore 2025-10-21 10:52:58 +02:00
AGENTS.md feat: Add CHANGELOG.md and update contribution guidelines to require changelog entries 2025-11-03 15:50:08 +01:00
CHANGELOG.md Road to 0.4 🚀 2026-04-24 17:00:49 +02:00
CLAUDE.md Update CLAUDE.md 2026-04-23 17:40:14 +02:00
CODE_OF_CONDUCT.md Update contact email for reporting unacceptable behavior in the Code of Conduct 2025-10-27 16:07:45 +01:00
CONTRIBUTING.md Change base branch for pull requests to 'dev' 2026-04-23 17:31:00 +02:00
LICENSE Initial commit 2025-10-21 09:24:27 +02:00
README.md Road to 0.4 🚀 2026-04-24 17:00:49 +02:00
TEMPLATE_CATALOG.md feat: Add Xen Orchestra template with reverse proxy and WebSocket support 2026-03-09 11:15:55 +01:00
TEMPLATE_GUIDE.md feat: Add CHANGELOG.md and update contribution guidelines to require changelog entries 2025-11-03 15:50:08 +01:00

BunkerWeb Templates logo

License: GPL v3 GitHub stars Open issues Open pull requests Last update Join the Discord PRs welcome

Ready-to-run BunkerWeb configurations for popular services, fully editable to fit your stack.

The bunkerweb-templates repository collects community-maintained templates that deliver a working BunkerWeb configuration for well-known services such as WordPress, Plex, Nextcloud, or self-hosted dashboards. Each template mirrors BunkerWebs template specification, giving you a safe baseline that you can extend or reshape for your environment.

All templates and documentation in this repository are released under the GNU General Public License v3.0, in line with the main BunkerWeb project.

Highlights

  • Service-first library: Templates target specific apps (e.g. WordPress, Plex) so you can jump straight to a functional setup.
  • Self-contained assets: Every entry under templates/<name>/ bundles the JSON definition and referenced configs.
  • Editable by design: Settings, configs, and steps follow BunkerWebs template spec, making tweaks straightforward.
  • Built for iteration: Contributor workflows, style guides, and review checklists keep the hub growing sustainably.
  • Open collaboration: Discuss ideas, report issues, and ship updates alongside the BunkerWeb community.

How Templates Work

BunkerWeb includes three predefined templates (low, medium, high) that bundle common security settings. The easy-mode UI and the USE_TEMPLATE setting can also consume custom templates defined as JSON. A custom template can declare:

  • Settings Multisite settings whose values should override defaults.
  • Configs Paths to reusable NGINX configuration snippets that will be merged into your service.
  • Steps Optional guided steps combining settings and configs so users can adjust the template interactively in the UI.

This repository packages those JSON definitions alongside their configuration snippets, giving you a safe baseline that you can drop into BunkerWeb and adapt to any deployment method.

Table of Contents

Getting Started

  1. Browse templates: Explore templates/; each directory targets a specific service or use case and includes its required assets.
  2. Review the JSON definition: Inspect <template>/template.json to understand the settings, configs, and optional steps it provides.
  3. Import the template: Either drop the directory into a plugins templates/ folder or upload the JSON bundle from the BunkerWeb web UI on the Templates page, then reference it with the USE_TEMPLATE setting or the easy-mode workflow.
  4. Adjust to taste: Edit the JSON and accompanying configuration snippets so the template reflects your infrastructure.
  5. Share feedback: Open an issue or pull request if you find improvements, new services, or fixes worth sharing.

Available Templates

Template Summary Directory
Drupal Secure template with CMS-aware defaults templates/drupal/
Jellyfin Media streaming template with reverse proxy tuning templates/jellyfin/
Nextcloud Secure template with WebDAV-aware defaults templates/nextcloud/
NetBird Self-hosted template with gRPC and websocket routing templates/netbird/
Tomcat Reverse proxy template with servlet-friendly defaults templates/tomcat/
Xen Orchestra Reverse proxy template with WebSocket and rate limiting defaults templates/xen-orchestra/
WordPress Secure template with essential hardening defaults templates/wordpress/
templates/
├── netbird/
│   ├── template.json
│   └── configs/
│       └── modsec/
│           └── netbird_false_positives.conf
└── wordpress/
    └── template.json

Template Anatomy

Every template directory mirrors the structure that BunkerWeb expects when loading custom templates from a plugin:

  • template.json describes the template id, user-facing name, and optional settings, configs, and steps.
  • configs/ contains any NGINX fragments referenced in the JSON file.
  • Additional assets (e.g. helper scripts, documentation) can live beside these defaults if they assist users.

A minimal template.json might look like:

{
  "id": "wordpress",
  "name": "WordPress",
  "settings": {
    "SERVER_NAME": "www.example.com",
    "REVERSE_PROXY_HOST": "http://mywp",
    "MAX_CLIENT_SIZE": "50m",
    "MODSECURITY_CRS_PLUGINS": "wordpress-rule-exclusions"
  },
  "configs": [
    "modsec/wordpress_false_positives.conf"
  ],
  "steps": [
    {
      "title": "Domains and TLS",
      "subtitle": "Point the template at your WordPress hostname(s).",
      "settings": [
        "SERVER_NAME"
      ]
    },
    {
      "title": "Reverse proxy",
      "subtitle": "Tell BunkerWeb where your WordPress upstream lives.",
      "settings": [
        "REVERSE_PROXY_HOST",
        "MAX_CLIENT_SIZE",
        "MODSECURITY_CRS_PLUGINS"
      ],
      "configs": [
        "modsec/wordpress_false_positives.conf"
      ]
    }
  ]
}

And its directory can be embedded in a plugin like:

plugins/
└── example-plugin/
    ├── plugin.json
    └── templates/
        └── wordpress/
            ├── template.json
            └── configs/
                └── modsec/
                    └── wordpress_false_positives.conf

Alternatively, you can zip or upload the directory contents directly from the BunkerWeb web UI (Templates page) to make it available without packaging a plugin.

Repository Layout

  • templates/ Community-curated templates, one directory per service with its template.json and related configs.
  • TEMPLATE_GUIDE.md Canonical instructions for authors creating or updating a template.
  • CONTRIBUTING.md Contribution workflow, review expectations, and the submission checklist.

Contributing

We welcome community contributions! Review the CONTRIBUTING.md guide for the full workflow. In short:

  1. Fork the repository and create a feature branch.
  2. Add or update your template following the guidelines.
  3. Submit a pull request describing your changes and any testing performed.

Maintainers and community members will review submissions collaboratively to ensure templates stay reliable and helpful.

Before you push, install the repositorys pre-commit hooks (pre-commit install) and run pre-commit run --all-files so formatting, spell-check, and secret scans pass locally.

Community

Questions or ideas? Join the conversation with fellow BunkerWeb maintainers and users:

Maintainers

Name GitHub
Théophile Diot @TheophileDiot
Alexandre @YouKyi

License

This repository, including all templates and documentation, is licensed under the GNU General Public License v3.0. By contributing, you agree that your contributions will be released under the same license.