A copy of project README as is from: https://github.com/codingfuture/puppet-cfwebapp

cfwebapp

Description

Module with web application “recipes” on top of cfweb module.

Apps supported

  • Alerta
  • Grafana (Docker)
  • Kibana (Docker)
  • Metabase (Docker)
  • Redmine
  • Wiki.js

Alerta

Alerta Server API and Web UI are installed from GitHub (by default) with FutoIn CID and run through uWSGI.

  • Type: cfwebapp::alerta
  • URL: alerta.io
  • General cfweb::site shortcuts

    • $server_name = $title
    • $ifaces = ['local']
    • $auto_cert = {}
    • $shared_cert = []
    • $robots_noindex = true
    • $site_params = {} - other cfweb::site params
  • futoin app shortcuts:

    • $memory_weight = 100
    • $memory_min = 192
    • $memory_max = undef
    • $api_deploy_type = 'vcstag'
    • $api_deploy_tool = 'git'
    • $api_deploy_url = 'https://github.com/alerta/alerta.git'
    • $api_deploy_match = 'v5*'
    • $web_deploy_type = 'vcstag'
    • $web_deploy_tool = 'git'
    • $web_deploy_url = 'https://github.com/alerta/angular-alerta-webui.git'
    • $web_deploy_match = 'v5*'
  • Alerta-specific:

    • $app_dbaccess - PostgreSQL access, by default cfmonitor/alerta.
    • $smtp = {} - localhost by default
    • $secret_key = undef - auto-generated by default
    • $plugins = [] - list of plugins to load
    • $admin_users = ["admin@${::facts['domain']}"] - admin user list
    • $email_domains = [$::facts['domain']] - allowed domains for registration
    • $cors_origins = [$server_name] - CORS domains (add Alerta Web UI)
    • $plugins = [] - list of plugins to load
    • $api_tune = {} - fine overrides
    • $web_tune = {} - fine overrides

Grafana (Docker)

Note: Grafana listens to loopback by default in case of accident misconfiguration.

  • Type: cfwebapp::docker::grafana
  • URL: grafana.com
  • General cfweb::site shortcuts

    • $server_name = $title
    • $ifaces = ['local']
    • $auto_cert = {}
    • $shared_cert = []
    • $robots_noindex = true
    • $site_params = {} - other cfweb::site params
  • docker app shortcuts:

    • $memory_weight = 100
    • $memory_min = 512
    • $memory_max = 512
  • Grafana-specific:

    • $image

      • image => 'monitoringartist/grafana-xxl'
      • image_tag => 'latest'
    • $target_port = 3000 - port in target

Kibana (Docker)

Note: Kibana listens to loopback by default in case of accident misconfiguration.

  • Type: cfwebapp::docker::kibana
  • URL: www.elastic.co
  • General cfweb::site shortcuts

    • $server_name = $title
    • $ifaces = ['local']
    • $auto_cert = {}
    • $shared_cert = []
    • $robots_noindex = true
    • $site_params = {} - other cfweb::site params
  • docker app shortcuts:

    • $memory_weight = 100
    • $memory_min = 512
    • $memory_max = 512
  • Kibana-specific:

    • $app_dbaccess = { cluster => 'logsink' } - define cfdb::access to cflogsink cluster
    • $kibana_tune = {} - custom overrides for kibana.yml
    • $image

      • image => 'docker.elastic.co/kibana/kibana-oss'
      • image_tag => '6.7.1'
    • $target_port = 5601 - port in target

Metabase (Docker)

Setups Metabase. Extra connections need to be manually entered in configuration based on .env data.

  • Type: cfwebapp::docker::metabase
  • URL: metabase.com
  • General cfweb::site shortcuts

    • $server_name = $title
    • $ifaces = ['local']
    • $auto_cert = {}
    • $shared_cert = []
    • $robots_noindex = true
    • $site_params = {} - other cfweb::site params
  • docker app shortcuts:

    • $memory_weight = 100
    • $memory_min = 512
    • $memory_max = 512
  • Metabase-specific:

    • $app_dbaccess - define cfdb::access to primary database
    • $image

      • image => 'metabase/metabase'
      • image_tag => 'latest'

Redmine

Full Redmine deployment. By default SVN tags are used.

IMAP IDLE-based polling supported. Good for low incoming email count.

  • Type: cfwebapp::redmine
  • URL: www.redmine.org
  • General cfweb::site shortcuts

    • $server_name = $title
    • $auto_cert = {}
    • $shared_cert = []
    • $robots_noindex = true
    • $site_params = {} - other cfweb::site params
  • futoin app shortcuts:

    • $memory_weight = 100
    • $memory_min = 404
    • $memory_max = undef
  • Redmine-specific

    • $app_dbaccess - DB access definition
    • $deploy_type = 'vcstag'
    • $deploy_tool = 'svn'
    • $deploy_url = 'http://svn.redmine.org/redmine'
    • $deploy_match = '3.4.*'
    • $ruby_ver = '2.3'
    • $rake_secret = undef - auto-gen by default
    • ‘$smtp’ - SMTP configuration
    • ‘$imap’ - IMAP configuration
    • $plugins - hash of name => params to install. Default:

      • ‘redminetelegramcommon’ for ‘redmine_2fa’
      • ‘redmine_2fa’
      • ‘redmineissuechecklist’

Example:

    cfweb::global::sites:
        redmine:
            type: 'cfwebapp::redmine'
            server_name: redmine.example.com
            app_dbaccess:
                cluster: mysrv
                role: redmine
            memory_max: 512
        smtp:
            host: smtp.gmail.com
            port: 587
            start_tls: true
            user: 'user@gmail.com'
            password: pass
            reply_to: 'noreply@gmail.com'
        imap:
            host: imap.gmail.com
            port: 993
            user: 'user@gmail.com'
            password: pass
            ssl: true

Wiki.js

  • Type: cfwebapp::wikijs
  • URL: Wiki.js
  • General cfweb::site shortcuts

    • $server_name = $title
    • $auto_cert = {}
    • $shared_cert = []
    • $robots_noindex = true
    • $site_params = {} - other cfweb::site params
  • futoin app shortcuts:

    • $memory_weight = 100
    • $memory_min = 350
    • $memory_max = 400
  • App-specific

    • $app_dbaccess - DB access definition
    • $deploy_type = 'vcstag'
    • $deploy_tool = 'git'
    • $deploy_url = '...'
    • $deploy_match = 'v1*'
    • $session_secret = undef - auto-gen by default
    • $tune = {} - override configuration

Technical Support

Setup

Up to date installation instructions are available in Puppet Forge: https://forge.puppet.com/codingfuture/cfwebapp

Please use librarian-puppet or cfpuppetserver module to deal with dependencies.

There is a known r10k issue RK-3 which prevents automatic dependencies of dependencies installation.