{"id":15022768,"url":"https://github.com/voxpupuli/puppet-caddy","last_synced_at":"2025-10-24T14:30:35.720Z","repository":{"id":48288386,"uuid":"75436127","full_name":"voxpupuli/puppet-caddy","owner":"voxpupuli","description":"Puppet Caddy module","archived":false,"fork":false,"pushed_at":"2024-04-12T11:19:42.000Z","size":254,"stargazers_count":6,"open_issues_count":8,"forks_count":12,"subscribers_count":40,"default_branch":"master","last_synced_at":"2024-04-15T07:17:25.400Z","etag":null,"topics":["centos-puppet-module","debian-puppet-module","hacktoberfest","linux-puppet-module","puppet","redhat-puppet-module","ubuntu-puppet-module"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voxpupuli.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"open_collective":"vox-pupuli","github":"voxpupuli"}},"created_at":"2016-12-02T22:33:30.000Z","updated_at":"2024-04-17T12:35:49.014Z","dependencies_parsed_at":"2024-04-09T17:23:11.306Z","dependency_job_id":"6d7f7682-34e7-4863-9c2a-0cd2c3b826be","html_url":"https://github.com/voxpupuli/puppet-caddy","commit_stats":{"total_commits":160,"total_committers":13,"mean_commits":"12.307692307692308","dds":0.65625,"last_synced_commit":"683fb5ab36cb47b3255115098ecdf9b13ee4ebb3"},"previous_names":["commanderk5/puppet-caddy"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-caddy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-caddy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-caddy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-caddy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voxpupuli","download_url":"https://codeload.github.com/voxpupuli/puppet-caddy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219868597,"owners_count":16555871,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["centos-puppet-module","debian-puppet-module","hacktoberfest","linux-puppet-module","puppet","redhat-puppet-module","ubuntu-puppet-module"],"created_at":"2024-09-24T19:58:21.861Z","updated_at":"2025-10-24T14:30:34.909Z","avatar_url":"https://github.com/voxpupuli.png","language":"Ruby","funding_links":["https://opencollective.com/vox-pupuli","https://github.com/sponsors/voxpupuli"],"categories":[],"sub_categories":[],"readme":"\n# Puppet module for Caddy\n\n[![Build Status](https://travis-ci.org/voxpupuli/puppet-caddy.svg?branch=master)](https://travis-ci.org/voxpupuli/puppet-caddy)\n[![Code Coverage](https://coveralls.io/repos/github/voxpupuli/puppet-caddy/badge.svg?branch=master)](https://coveralls.io/github/voxpupuli/puppet-caddy)\n[![Puppet Forge](https://img.shields.io/puppetforge/v/puppet/caddy.svg)](https://forge.puppetlabs.com/puppet/caddy)\n[![Puppet Forge - downloads](https://img.shields.io/puppetforge/dt/puppet/caddy.svg)](https://forge.puppetlabs.com/puppet/caddy)\n[![Puppet Forge - endorsement](https://img.shields.io/puppetforge/e/puppet/caddy.svg)](https://forge.puppetlabs.com/puppet/caddy)\n[![Puppet Forge - scores](https://img.shields.io/puppetforge/f/puppet/caddy.svg)](https://forge.puppetlabs.com/puppet/caddy)\n[![License](https://img.shields.io/github/license/voxpupuli/puppet-caddy.svg)](https://github.com/voxpupuli/puppet-caddy/blob/master/LICENSE)\n\n## Table of Contents\n\n1. [Description](#description)\n1. [Setup - The basics of getting started with Caddy](#setup)\n    * [What Caddy affects](#what-caddy-affects)\n    * [Setup requirements](#setup-requirements)\n    * [Beginning with Caddy](#beginning-with-caddy)\n1. [Usage - Configuration options and additional functionality](#usage)\n1. [Limitations - OS compatibility, etc.](#limitations)\n1. [Development - Guide for contributing to the module](#development)\n\n## Description\n\nThis module installs and configures Caddy - The HTTP/2 web server with automatic\nHTTPS.\n\n**Important:** This module only supports the installation of Caddy 2.x. If you\nwant to install Caddy 1.x, you should use version v2.0.0 of this module.\n\n## Setup\n\n### What Caddy affects\n\n* Caddy binary\n* Caddy configuration file\n* Caddy virtual hosts\n* Caddy service\n\n### Setup Requirements\n\nThis module has the following dependencies:\n\n* [puppet/systemd](https://github.com/voxpupuli/puppet-systemd)\n* [puppet/archive](https://github.com/voxpupuli/puppet-archive)\n* [puppetlabs/stdlib](https://github.com/puppetlabs/puppetlabs-stdlib)\n\nWhen `install_method` is set to 'repo', this module implicitly requires either\n[puppetlabs-apt](https://github.com/puppetlabs/puppetlabs-apt) module for\nDebian distro family, or [puppet-yum](https://github.com/voxpupuli/puppet-yum)\nmodule for RedHat distro family.\n\n### Beginning with Caddy\n\nInstall Caddy without any configuration:\n\n```puppet\ninclude caddy\n```\n\n## Usage\n\nInstall customized version of Caddy\n\n```puppet\nclass { 'caddy':\n  caddy_features =\u003e 'http.git,http.filter,http.ipfilter',\n}\n```\n\nInstall specific version of Caddy\n\n```puppet\nclass { 'caddy':\n  version        =\u003e '2.0.0',\n  install_method =\u003e 'github',\n}\n```\n\nInstall Caddy and configure virtual host, based on source:\n\n```puppet\ncaddy::vhost { 'example1':\n  source =\u003e 'puppet:///modules/caddy/etc/caddy/config/example1.conf',\n}\n```\n\nInstall Caddy and configure virtual host, based on content:\n\n```puppet\ncaddy::vhost { 'example2':\n  content =\u003e 'localhost:2015',\n}\n```\n\nUse apache-like configuration files layout:\n\n```puppet\nclass { 'caddy':\n  config_dir =\u003e '/etc/caddy/conf-available',\n  config_enabled_dir =\u003e '/etc/caddy/conf-enabled',\n  vhost_dir =\u003e '/etc/caddy/sites-available',\n  vhost_enable_dir =\u003e '/etc/caddy/sites-enabled',\n  config_files =\u003e {\n    admin_port_2020 =\u003e {\n      content =\u003e \"{\\n  admin localhost:2020\\n}\\n\",\n    },\n  },\n  vhosts =\u003e {\n    port_3000 =\u003e {\n      content =\u003e \"http://localhost:3000 {\\n  respond \\\\\"port 3000\\\\\"\\n}\\n\",\n    },\n    port_3001 =\u003e {\n      ensure =\u003e 'disabled',\n      content =\u003e \"http://localhost:3001 {\\n  respond \\\\\"port 3001\\\\\"\\n}\\n\",\n    }\n  }\n}\n```\n\nSame as above but configured in Hiera:\n\n```yaml\ncaddy::config_dir: /etc/caddy/conf-available\ncaddy::config_enable_dir: /etc/caddy/conf-enabled\ncaddy::vhost_dir: /etc/caddy/sites-available\ncaddy::vhost_enable_dir: /etc/caddy/sites-enabled\ncaddy::config_files:\n  admin_port_2020:\n    content: |\n      {\n        admin localhost:2020\n      }\ncaddy::vhosts:\n  port_3000:\n    content: |\n      http://localhost:3000 {\n        respond \"port 3000\"\n      }\n  port_3001:\n    ensure: disabled\n    content: |\n      http://localhost:3001 {\n        respond \"port 3001\"\n      }\n```\n\nYou may consider setting following parameters also. This allows\nenabling/disabling config files and virtual hosts manually.\n\n```yaml\ncaddy::purge_config_enable_dir: false\ncaddy::purge_vhost_enable_dir: false\n```\n\n## Reference\n\nThe [reference][1] documentation of this module is generated using [puppetlabs/puppetlabs-strings][2].\n\n## Limitations\n\nThis module has been tested on:\n\n* AlmaLinux 8/9\n* CentOS 9\n* Debian 11/12\n* OracleLinux 8/9\n* RedHat 8/9\n* Rocky 8/9\n* Ubuntu 20.04/22.04/24.04\n\nFor the official list of all tested distributions, please take a look at the [metadata.json](https://github.com/voxpupuli/puppet-caddy/blob/master/metadata.json#L24)\n\n## Development\n\nThis module has grown over time based on a range of contributions from people\nusing it. If you follow these [contributing][3] guidelines your patch will\nlikely make it into a release a little more quickly.\n\n## Author\n\nThis module is maintained by [Vox Pupuli][4]. It was originally written and\nmaintained by [Lukasz Rohde][5].\n\n[1]: https://github.com/voxpupuli/puppet-caddy/blob/master/REFERENCE.md\n[2]: https://github.com/puppetlabs/puppetlabs-strings\n[3]: https://github.com/voxpupuli/puppet-caddy/blob/master/.github/CONTRIBUTING.md\n[4]: https://voxpupuli.org\n[5]: https://github.com/CommanderK5\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-caddy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoxpupuli%2Fpuppet-caddy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-caddy/lists"}