{"id":15517960,"url":"https://github.com/hfm/puppet-tinyproxy","last_synced_at":"2025-07-30T12:07:33.934Z","repository":{"id":57684925,"uuid":"83037289","full_name":"hfm/puppet-tinyproxy","owner":"hfm","description":"The tinyproxy puppet module handles installing, configuring, and running tinyproxy.","archived":false,"fork":false,"pushed_at":"2020-04-06T01:53:59.000Z","size":144,"stargazers_count":1,"open_issues_count":3,"forks_count":7,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-23T04:18:22.878Z","etag":null,"topics":["puppet","tinyproxy"],"latest_commit_sha":null,"homepage":"https://forge.puppet.com/hfm/tinyproxy","language":"HTML","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/hfm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-24T12:01:56.000Z","updated_at":"2024-06-29T23:07:50.000Z","dependencies_parsed_at":"2022-09-17T05:40:34.558Z","dependency_job_id":null,"html_url":"https://github.com/hfm/puppet-tinyproxy","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfm%2Fpuppet-tinyproxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfm%2Fpuppet-tinyproxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfm%2Fpuppet-tinyproxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hfm%2Fpuppet-tinyproxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hfm","download_url":"https://codeload.github.com/hfm/puppet-tinyproxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250366715,"owners_count":21418772,"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":["puppet","tinyproxy"],"created_at":"2024-10-02T10:14:39.286Z","updated_at":"2025-04-23T04:18:31.823Z","avatar_url":"https://github.com/hfm.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tinyproxy [![Build Status](https://travis-ci.org/hfm/puppet-tinyproxy.svg?branch=master)](https://travis-ci.org/hfm/puppet-tinyproxy) [![Puppet Forge](https://img.shields.io/puppetforge/v/hfm/tinyproxy.svg?style=flat-square)](https://forge.puppet.com/hfm/tinyproxy)\n\n#### Table of Contents\n\n1. [Description](#description)\n1. [Setup - The basics of getting started with tinyproxy](#setup)\n    - [Setup requirements](#setup-requirements)\n    - [Beginning with tinyproxy](#beginning-with-tinyproxy)\n1. [Usage - Configuration options and additional functionality](#usage)\n    - [Configuring tinyproxy](#configuring-tinyproxy)\n    - [Configuring modules from Hiera](#configuring-modules-from-hiera)\n1. [Reference - An under-the-hood peek at what the module is doing and how](#reference)\n    - [Public Classes](#public-classes)\n    - [Private Classes](#private-classes)\n    - [Parameters](#parameters)\n1. [Limitations - OS compatibility, etc.](#limitations)\n1. [Development - Guide for contributing to the module](#development)\n    - [Running tests](#running-tests)\n    - [Testing quickstart](#testing-quickstart)\n\n## Description\n\nThe tinyproxy module handles installing, configuring, and running [tinyproxy](http://tinyproxy.github.io).\n\n## Setup\n\n### Setup Requirements\n\nThe tinyproxy module requires the following puppet modules:\n\n- [puppetlabs-stdlib](https://forge.puppet.com/puppetlabs/stdlib) (\u003e= 4.0.0 \u003c 5.0.0)\n- [puppetlabs-apt](https://forge.puppet.com/puppetlabs/apt) (\u003e= 2.0.0 \u003c 3.0.0) (only Debian-based distributions)\n- [stahnma-epel](https://forge.puppet.com/stahnma/epel) (\u003e= 1.0.0 \u003c 2.0.0) (only RedHat-based distributions)\n\nBoth puppetlabs-apt and stahnma-epel are soft dependencies. If you are installing on Debian or RedHat-based systems, you will need to configure appropriate versions of those modules.\n\n### Beginning with tinyproxy\n\nTo install the tinyproxy with default parameters, declare the `tinyproxy` class.\n\n```puppet\ninclude ::tinyproxy\n```\n\n## Usage\n\n### Configuring tinyproxy\n\n```puppet\nclass { '::tinyproxy':\n  port          =\u003e 8080,\n  listen        =\u003e '0.0.0.0',\n  allow         =\u003e '10.0.0.0/8',\n  connect_ports =\u003e [],\n}\n```\n\n### Configuring modules from Hiera\n\nListen 0.0.0.0:8080 and allow access from 10.0.0.0/8.\n\n```yaml\ntinyproxy::port: 8080\ntinyproxy::listen: '0.0.0.0'\ntinyproxy::allow: '10.0.0.0/8'\n```\n\nConfigure connections.\n\n```yaml\ntinyproxy::max_clients: 200\ntinyproxy::min_spare_servers: 20\ntinyproxy::max_spare_servers: 20\ntinyproxy::start_servers: 20\n```\n\nNo ConnectPort means that all ports are allowed.\n\n```yaml\ntinyproxy::connect_ports: null\n```\n\nAdd some headers.\n\n```yaml\ntinyproxy::add_headers:\n  'X-My-Header': 'Powored by Tinyproxy'\n  'Y-My-Header': 'Powored by Tinyproxy'\n```\n\nTurn off the normal proxy (only reverse proxy).\n\n```yaml\ntinyproxy::reverse_only: true\ntinyproxy::reverse_paths:\n  '/google/': 'http://www.google.com/'\n  '/wired/': 'http://www.wired.com/'\n```\n\n## Reference\n\n### Public Classes\n\n- [`tinyproxy`](#tinyproxy): Installs, configures, and runs tinyproxy.\n\n### Private Classes\n\n- `tinyproxy::install`: Installs the tinyproxy package.\n- `tinyproxy::config`: Configures tinyproxy.conf.\n- `tinyproxy::service`: Manages service.\n\n### Parameters\n\n#### Class: `tinyproxy`\n\n- `use_epel`: Whether epel repository should be installed. Type is Boolean. Default: true.\n- `package_ensure`: What state the tinyproxy package should be in. Type is String. Default: 'installed'.\n- `config_ensure`: Whether the tinyproxy.conf should exist. Type is Enum['file', 'absent']. Default: 'file'.\n- `config_path`: The path to the file to manage. Type is String. Default: '/etc/tinyproxy/tinyproxy.conf' (RedHat) or '/etc/tinyproxy.conf' (Debian).\n- `user`: The user to whom the file should belong. Type is String. Default: 'tinyproxy' or 'nogroup' (Debian).\n- `gruop`: Which group should own the file.  Type is String. Default: 'tinyproxy' (RedHat) or 'nogroup' (Debian).\n- `port`:Specify the port which tinyproxy will listen on. Type is Integer. Default: 8888.\n- `listen`: Allow you to bind to an interface. Type is Optional[String]. Default: undef.\n- `bind`: Specify which interface will be used for outgoing connections. Type is Optional[String]. Default: undef.\n- `bind_same`: Whether tinyproxy will bind the outgoing connection to the ip address of the incoming connection. Type is Optional[Boolean]. Default: undef.\n- `timeout`: Specify a timeout of a connection. Type is Integer. Default: 600.\n- `error_files`: Specify the HTML file to send when a given HTTP error occurs. Type is Optional[Hash[Integer, String]]. Default: undef.\n- `default_error_file`: Specify the default Error HTML file. Type is String. Default: '/usr/share/tinyproxy/default.html'.\n- `stat_host`: Specify the stat host. Type is Optional[String]. Default: undef.\n- `stat_file`: Specify the HTML file for the stat host. Type is String. Default: '/usr/share/tinyproxy/stats.html'.\n- `log_file`: Specify the log file. Type is Optional[String]. Default: '/var/log/tinyproxy/tinyproxy.log'.\n- `use_syslog`: Whether tinyproxy uses syslog instead of a log file. This parameter and `$log_file` are mutually exclusive. Type is Boolean. Default: false.\n- `pid_file`: Specify the pid file. Type is String. Default: '/var/run/tinyproxy/tinyproxy.pid'.\n- `use_xtinyproxy`: Whether tinyproxy include the 'X-Tinyproxy' header. Type is Boolean. Default: false.\n- `default_upstreams`: Specify a set of rules for deciding whether the default upstream proxie servers are to be used. Type is Optional[Array[String]]. Default: undef.\n- `upstreams`: Specify a set of rules for deciding whether upstream proxie servers are to be used. Type is Optional[Hash[String, String]]. Default: undef.\n- `no_upstreams`: Specify no upstream proxy for internal websites and unqualified hosts. Type is Optional[Array[String]]. Default: undef.\n- `max_clients`: Specify maximum number of clients can be connected at the same time. Type is Integer. Default: 100.\n- `min_spare_servers`: Specify the lower limit for the number of spare servers which should be available. Type is Integer. Default: 5.\n- `max_spare_servers`: Specify the upper limit for the number of spare servers which should be available. Type is Integer. Default: 20.\n- `start_servers`: Specify the number of servers to start initially. Type is Integer. Default: 10.\n- `max_requests_per_child`: Specify the number of connections a thread will handle before it's killed. Type is Integer. Default: 0.\n- `allow`: Specify authorization control which clients are allowed to access Tinyproxy. Type is Optional[String]. Default: '127.0.0.1'.\n- `deny`: Specify authorization control which clients are denied to access Tinyproxy. Type is Optional[String]. Default: undef.\n- `add_headers`: Specify additional headers. Type is Optional[Hash[String, String]]. Default: undef.\n- `via_proxy_name`: Specify the \"Via\" header. Type is String. Default: 'tinyproxy'.\n- `disable_via_header`: Whether tinyproxy disables the \"Via\" header. Type is Boolean. Default: false.\n- `filter`: Specify the location of the filter file. Type is Optional[String]. Default: false.\n- `filter_urls`: Whether filter is based on urls rather than domains. Type is Optional[Boolean]. Default: undef.\n- `filter_extended`: Whether filter uses POSIX Extended regexp. Type is Optional[Boolean]. Default: undef.\n- `filter_case_sensitive`: Whether filter uses case sensitive regexp. Type is Optional[Boolean]. Default: undef.\n- `filter_default_deny`: Whether filter changes the default policy of the filtering system. Type is Optional[Boolean]. Default: undef.\n- `log_level`: Set the logging level. Type is Enum['Critical', 'Error', 'Warning', 'Notice', 'Connect', 'Info']. Default: 'Info'.\n- `anonymous`: Specify anonymous keywords. Type is Optional[Array[String]]. Default: undef.\n- `connect_ports`: Specify a list of ports allowed by tinyproxy when the CONNECT method is used. Type is Optional[Array[Integer]]. Default: [443, 563].\n- `reverse_paths`: Specify a mapping from the local path to remote URL. Type is Optional[Hash[String, String]]. Default: undef.\n- `reverse_only`: Whether the normal(forward) proxy is turned off. Type is Optional[Boolean]. Default: undef.\n- `reverse_magic`: Whether tinyproxy uses a cookie to track reverse proxy mappings. Type is Optional[Boolean]. Default: undef.\n- `reverse_baseurl`: Specify URL that's used to access this reverse proxy. Type is Optional[String]. Default: undef.\n- `service_ensure`: Whether a service should be running. Type is Enum['running', 'stopped']. Default: 'running'.\n- `service_enable`: Whether a service should be enabled to start at boot. Type is Boolean. Default: true.\n\n## Limitations\n\nThis module has been tested on:\n\n- RedHat Enterprise Linux 7\n- CentOS 7\n- Scientific Linux 7\n- Debian 8\n- Ubuntu 16.04\n\n## Development\n\n### Running tests\n\nThe tinyproxy module contains tests for both [rspec-puppet](http://rspec-puppet.com/) (unit tests) and [beaker-rspec](https://github.com/puppetlabs/beaker-rspec) (acceptance tests) to verify functionality. For detailed information on using these tools, please see their respective documentation.\n\n#### Testing quickstart\n\n- Unit tests:\n\n```console\n$ bundle install\n$ bundle exec rake test\n```\n\n- Acceptance tests using docker:\n\n```console\n# List available beaker nodesets\n$ bundle exec rake beaker_nodes\ncentos7\njessie\nxenial\n\n# Run beaker acceptance tests\n$ BEAKER_set=centos7 bundle exec rake beaker\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhfm%2Fpuppet-tinyproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhfm%2Fpuppet-tinyproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhfm%2Fpuppet-tinyproxy/lists"}