Skip to content

A community-driven hub of reusable BunkerWeb templates — share, discover, and improve configurations for your favorite services.

License

Notifications You must be signed in to change notification settings

bunkerity/bunkerweb-templates

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 BunkerWeb’s 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 BunkerWeb’s 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 plugin’s 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/
Tomcat Reverse proxy template with servlet-friendly defaults templates/tomcat/
WordPress Secure template with essential hardening defaults templates/wordpress/
templates/
├── wordpress/
│   ├── template.json
│   └── configs/
│       └── modsec/
│           └── wordpress_false_positives.conf
└── plex/
    └── 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 repository’s 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:

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.

About

A community-driven hub of reusable BunkerWeb templates — share, discover, and improve configurations for your favorite services.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks