defaults = {
    'apt': {
        'packages': {
            'libmojolicious-perl': {},
        },
    },
    'travelynx': {
        'database': {
            'username': 'travelynx',
            'password': repo.vault.password_for('{} postgresql travelynx'.format(node.name)),
            'database': 'travelynx',
        },
        'workers': 4,
        'spare_workers': 2,
        'mail_from': 'travelynx@{}'.format(node.hostname),
        'cookie_secret': repo.vault.password_for('{} travelynx cookie_secret'.format(node.name)),
        'additional_cookie_secrets': set(),
    },
    'postgresql': {
        'roles': {
            'travelynx': {
                'password': repo.vault.password_for('{} postgresql travelynx'.format(node.name)),
            },
        },
        'databases': {
            'travelynx': {
                'owner': 'travelynx',
            },
        },
    },
}


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

    return {
        'nginx': {
            'vhosts': {
                'travelynx': {
                    'domain': metadata.get('travelynx/domain'),
                    'locations': {
                        '/': {
                            'target': 'http://127.0.0.1:22020',
                        },
                        '/static': {
                            'root': '/opt/travelynx/public',
                        },
                        '/service-worker.js': {
                            'root': '/opt/travelynx/public',
                        },
                    },
                    'website_check_path': '/login',
                    'website_check_string': 'travelynx',
                },
            },
        },
    }
