nodes['htz.ex42-1048908'] = {
    'bundles': {
        'jenkins-ci',
        'matrix-synapse',
        'mx-puppet-discord',
        'nodejs',
        'riot-web',
        'postgresql',
        'travelynx',
        'vmhost',
        'voc-loudness-monitor',
    },
    'groups': {
        'webserver',
    },
    'metadata': {
        'apt': {
            'packages': {
                # No need to create a bundle just to install packages,
                # configs will be managed by users nevertheless. Maybe
                # this will be a FIXME once we start managing backups
                # via bundlewrap.
                'weechat': {},
                'weechat-core': {},
                'weechat-curses': {},
                'weechat-perl': {},
                'weechat-plugins': {},
                'weechat-python': {},
                'weechat-ruby': {},
            },
            'unattended-upgrades': {
                'origins': {
                    'site=weechat.org',

                    # TODO move to bundles
                    'o=Rspamd,n=buster,l=Rspamd,c=main',
                    'site=apt.miniflux.app',
                },
                'reboot': False,
            },
            'repos': {
                'buster-backports': {
                    'items': [
                        'deb http://deb.debian.org/debian buster-backports main',
                    ],
                },
            },
        },
        'letsencrypt': {
            'concat_and_deploy': {
                'kunsi-weechat': {
                    'match_domain': 'part.of.the.trans-agenda.eu',
                    'target': '/home/kunsi/.weechat/ssl/relay.pem',
                    'chown': 'kunsi:kunsi',
                    'chmod': '0440',
                    'commands': [
                        'echo \'core.weechat */relay sslcertkey\' >> /home/kunsi/.weechat/weechat_fifo'
                    ],
                },
            },
            'domains': {
                'matrix.franzi.business': {
                    'franzi.business',
                },
                'mx0.kunbox.net': set(), # TODO move to bundle
                'part.of.the.trans-agenda.eu': set(),
            },
            'reload_after': {
                # TODO move to bundles
                'dovecot',
                'postfix',
            },
        },
        'matrix-synapse': {
            'server_name': 'franzi.business',
            'baseurl': 'matrix.franzi.business',
            'admin_contact': 'mailto:hostmaster@kunbox.net',
            'appservice_configs': {
                # TODO move to bundles
                '/opt/matrix-bridges/mautrix-whatsapp/registration.yaml',
                '/opt/matrix-bridges/mautrix-telegram/registration.yaml',
            },
            'trusted_key_servers': {
                'matrix.org',
                'finallycoffee.eu',
                'nyantec.com',
            },
        },
        'mx-puppet-discord': {
            'homeserver': {
                'domain': 'franzi.business',
                'url': 'https://matrix.franzi.business',
            },
            'allowed-users': {
                '@.*:franzi\\\\.business',
            },
        },
        'nginx': {
            'vhosts': {
                # TODO maybe some of this can be moved to a bundle?
                'dav.kunsmann.eu': {
                    'extras': True,
                },
                'dimension.franzi.business': {
                    'extras': True,
                    'do_not_set_content_security_headers': True,
                    'proxy': {
                        '/': 'http://127.0.0.1:8184',
                    },
                },
                'franzi.business': {
                    'webroot': '/var/www/franzi.business/_site/',
                    'extras': True,
                },
                'git.kunsmann.eu': {
                    'proxy': {
                        '/': 'http://localhost:3000/',
                    },
                },
                'jenkins.kunsmann.eu': {
                    'proxy': {
                        '/': 'http://localhost:9000/',
                    },
                },
                'kunbox.net': {},
                'kunsmann.eu': {
                    'extras': True,
                },
                'matrix.franzi.business': {
                    'extras': True,
                },
                'pad.franzi.business': {
                    'extras': True,
                },
                'paste.kunsmann.eu': {
                    'extras': True,
                },
                'postfixadmin.mx0.kunbox.net': {
                    'webroot': '/srv/postfixadmin/public/',
                    'index': 'index.php',
                    'php': True, # FIXME this assumes php 7.3 is installed and configured already
                },
                'rspamd.mx0.kunbox.net': {
                    'proxy': {
                        '/': 'http://localhost:11334/',
                    },
                },
                'rss.kunsmann.eu': {
                    'proxy': {
                        '/': 'http://localhost:8080/',
                    },
                },
                'travelynx.franzi.business': {
                    'proxy': {
                        '/': 'http://127.0.0.1:8093',
                    },
                },
                'vliedel.random.franzi.business': {},
                'webmail.mx0.kunbox.net': {
                    'index': 'index.php',
                    'php': True,
                },
            },
        },
        'riot-web': {
            'url': 'chat.franzi.business',
            'config': {
                'default_server_name': 'franzi.business',
                'brand': 'franzi.business',
                'showLabsSettings': True,
                'integrations_ui_url': 'https://dimension.franzi.business/riot',
                'integrations_rest_url': 'https://dimension.franzi.business/api/v1/scalar',
                'integrations_widgets_urls': ['https://dimension.franzi.business/widgets'],
                'default_theme': 'dark',
                'defaultCountryCode': 'DE',
                'features': {
                    'feature_bridge_state': 'labs',
                    'feature_font_scaling': 'labs',
                    'feature_irc_ui': 'labs',
                    'feature_mjolnir': 'labs',
                    'feature_presence_in_room_list': 'labs',
                },
            },
        },
        'travelynx': {
            'mail_from': 'travelynx@franzi.business',
        },
        'users': {
            'feli': {
                'ssh_pubkey': [
                    'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPTSLjSY/Be1XJ/klAwLiM1pKSvmbdcOgtgDB6nPcHkgX6JZu7g/Kejfuk4qIKL8GYYUQt7DlGY6n2u5rChWE/6KZJzXcUwS3pXk4LZ5KydWp7ihfvyRtUOBgKkRa1zQv+6KCH9WyR++ArwVTP8KSkrmDe6k7NWAjZqOuIJHG/AbEyTBapTJYjObZ0AM7wlwcB+oRM1BfZCP0Y+PIP2eGJS7Pyb32pITNKk3JuFXgAvbj5OeRrwtpZ9S+/7wIpaUVODPzrVmbC7vOXu/2KJ9aY2BmxUsxRbrvWMmWNiuE0YPt/7lUroK4pH3md3lWRcGUS/uYvhug7yG1yB81nyI15',
                ],
            },
            'kunsi': {
                'groups': [
                    'www-data',
                    'libvirt',
                ],
            },
            'vliedel': {
                'ssh_pubkey': [
                    'command="/usr/local/bin/rrsync /var/www/vliedel.random.franzi.business/",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVOBnzs/QDzhvg70VK6xaV318Euaag1cWNjAJfsA266618UiZVx4xsHzNwYN960v0MhiVPMwnl3NoGWAT9/j/b5l3HAkihv4rEPYQkoGV0Mvtwee37dT5nCL8o54Kl+rhl4WPD4Ju5+iZ3AP84YMUJXUrETpZLRzQD1pKOWLaGxBSJolICjz5A7glDVNmvI8uH58EkzhA7q4lCPhzFLxfvFfJPRuEHdVViL2usvHpRnIDRQOCjLYF2fIpG3ULrvWGl4VZ+9cZCNqSN6ywjlH8U8e5Vc3Fi4sbqYh71LrBqs/lSJ+5BL9/rB3GZD1SVTbivyEDJGJu3HPDV4ahwYYKn minecraft@irc',
                ],
            },
        },
        'os': 'debian',
        'os_release': 'buster',
    },
}