defaults = {
    'apt': {
        'packages': {
            'miniflux': {},
        },
        'repos': {
            'miniflux': {
                'items': {
                    'deb [trusted=yes] https://repo.miniflux.app/apt/ /',
                },
            },
        },
    },
    'icinga2_api': {
        'miniflux': {
            'services': {
                'MINIFLUX PROCESS': {
                    'command_on_monitored_host': '/usr/local/share/icinga/plugins/check_systemd_unit miniflux',
                },
            },
        },
    },
    'postgresql': {
        'roles': {
            'miniflux': {
                'password': repo.vault.password_for('{} postgresql miniflux'.format(node.name)),
            },
        },
        'databases': {
            'miniflux': {
                'owner': 'miniflux',
            },
        },
    },
}


@metadata_reactor.provides(
    'nginx/vhosts/miniflux',
)
def nginx(metadata):
    if not node.has_bundle('nginx'):
        raise DoNotRunAgain

    return {
        'nginx': {
            'vhosts': {
                'miniflux': {
                    'domain': metadata.get('miniflux/domain'),
                    'locations': {
                        '/': {
                            'target': 'http://127.0.0.1:22040',
                        },
                    },
                    'website_check_path': '/healthcheck',
                    'website_check_string': 'OK',
                },
            },
        },
    }
