def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, is_essential=is_essential) self.add(info) web_server_ports = Firewall('firewall-web', _('Web Server'), ports=['http', 'https'], is_external=True) self.add(web_server_ports) freedombox_ports = Firewall('firewall-plinth', format_lazy( _('{box_name} Web Interface (Plinth)'), box_name=_(cfg.box_name)), ports=['http', 'https'], is_external=True) self.add(freedombox_ports) letsencrypt = LetsEncrypt('letsencrypt-apache', domains='*', daemons=[managed_services[0]]) self.add(letsencrypt) daemon = Daemon('daemon-apache', managed_services[0]) self.add(daemon)
def __init__(self): """Create components for the app.""" super().__init__() groups = {'i2p': _('Manage I2P application')} info = app_module.Info(app_id=self.app_id, version=version, name=_('I2P'), icon_filename='i2p', short_description=_('Anonymity Network'), description=_description, manual_page='I2P', clients=clients) self.add(info) menu_item = menu.Menu('menu-i2p', info.name, info.short_description, info.icon_filename, 'i2p:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-i2p', info.name, short_description=info.short_description, icon=info.icon_filename, url='/i2p/', clients=info.clients, login_required=True, allowed_groups=list(groups)) self.add(shortcut) firewall = Firewall('firewall-i2p-web', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) firewall = Firewall('firewall-i2p-proxies', _('I2P Proxy'), ports=tunnels_to_manage.values(), is_external=False) self.add(firewall) webserver = Webserver('webserver-i2p', 'i2p-freedombox', urls=['https://{host}/i2p/']) self.add(webserver) daemon = Daemon('daemon-i2p', managed_services[0], listen_ports=[(7657, 'tcp6')]) self.add(daemon) users_and_groups = UsersAndGroups('users-and-groups-i2p', groups=groups) self.add(users_and_groups)
def __init__(self): """Create components for the app.""" super().__init__() self.groups = {'syncthing': _('Administer Syncthing application')} info = app_module.Info(app_id=self.app_id, version=version, name=_('Syncthing'), icon_filename='syncthing', short_description=_('File Synchronization'), description=_description, manual_page='Syncthing', clients=clients) self.add(info) menu_item = menu.Menu('menu-syncthing', info.name, info.short_description, info.icon_filename, 'syncthing:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-syncthing', info.name, short_description=info.short_description, icon=info.icon_filename, url='/syncthing/', clients=info.clients, login_required=True, allowed_groups=list(self.groups)) self.add(shortcut) firewall = Firewall('firewall-syncthing-web', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) firewall = Firewall('firewall-syncthing-ports', info.name, ports=['syncthing'], is_external=True) self.add(firewall) webserver = Webserver('webserver-syncthing', 'syncthing-plinth', urls=['https://{host}/syncthing/']) self.add(webserver) daemon = Daemon('daemon-syncthing', managed_services[0]) self.add(daemon) users_and_groups = UsersAndGroups('users-and-groups-syncthing', [SYSTEM_USER], self.groups) self.add(users_and_groups)
def test_init_without_arguments(): """Test initializing the component without arguments.""" with pytest.raises(ValueError): Firewall(None) firewall = Firewall('test-component') assert firewall.component_id == 'test-component' assert firewall.name is None assert firewall.ports == [] assert not firewall.is_external assert len(Firewall._all_firewall_components.items()) == 1 assert Firewall._all_firewall_components['test-component'] == firewall
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('Service Discovery'), icon='fa-compass', description=_description, manual_page='ServiceDiscovery') self.add(info) menu_item = menu.Menu('menu-avahi', info.name, None, info.icon, 'avahi:index', parent_url_name='system') self.add(menu_item) domain_type = DomainType('domain-type-local', _('Local Network Domain'), 'config:index', can_have_certificate=False) self.add(domain_type) firewall = Firewall('firewall-avahi', info.name, ports=['mdns'], is_external=False) self.add(firewall) daemon = Daemon('daemon-avahi', managed_services[0]) self.add(daemon)
def __init__(self): """Create components for the app.""" super().__init__() groups = {'freedombox-share': _('Access to the private shares')} info = app_module.Info( app_id=self.app_id, version=version, name=_('Samba'), icon_filename='samba', short_description=_('Network File Storage'), manual_page='Samba', description=_description, clients=manifest.clients, donation_url='https://www.samba.org/samba/donations.html') self.add(info) menu_item = menu.Menu('menu-samba', info.name, info.short_description, info.icon_filename, 'samba:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( 'shortcut-samba', info.name, short_description=info.short_description, icon=info.icon_filename, description=info.description, configure_url=reverse_lazy('samba:index'), clients=info.clients, login_required=True, allowed_groups=list(groups)) self.add(shortcut) firewall = Firewall('firewall-samba', info.name, ports=['samba']) self.add(firewall) daemon = Daemon('daemon-samba', managed_services[0], listen_ports=[(139, 'tcp4'), (139, 'tcp6'), (445, 'tcp4'), (445, 'tcp6')]) self.add(daemon) daemon_nmbd = Daemon('daemon-samba-nmbd', managed_services[1], listen_ports=[(137, 'udp4'), (138, 'udp4')]) self.add(daemon_nmbd) users_and_groups = UsersAndGroups('users-and-groups-samba', groups=groups) self.add(users_and_groups) backup_restore = SambaBackupRestore('backup-restore-samba', **manifest.backup) self.add(backup_restore)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('Mumble'), icon_filename='mumble', short_description=_('Voice Chat'), description=_description, manual_page='Mumble', clients=clients) self.add(info) menu_item = menu.Menu('menu-mumble', info.name, info.short_description, 'mumble', 'mumble:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( 'shortcut-mumble', info.name, short_description=info.short_description, icon=info.icon_filename, description=info.description, configure_url=reverse_lazy('mumble:index'), clients=info.clients) self.add(shortcut) firewall = Firewall('firewall-mumble', info.name, ports=['mumble-plinth'], is_external=True) self.add(firewall) daemon = Daemon( 'daemon-mumble', managed_services[0], listen_ports=[(64738, 'tcp4'), (64738, 'tcp6'), (64738, 'udp4'), (64738, 'udp6')]) self.add(daemon) users_and_groups = UsersAndGroups('users-and-groups-mumble', reserved_usernames=['mumble-server']) self.add(users_and_groups)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('diaspora*'), icon_filename='diaspora', short_description=_('Federated Social Network'), description=_description, clients=clients) self.add(info) menu_item = menu.Menu('menu-diaspora', info.name, info.short_description, info.icon_filename, 'diaspora:index', parent_url_name='apps') self.add(menu_item) shortcut = Shortcut('shortcut-diaspora', info.name, short_description=info.short_description, icon=info.icon_filename, url=None, clients=info.clients, login_required=True) self.add(shortcut) firewall = Firewall('firewall-diaspora', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) webserver = Webserver('webserver-diaspora', 'diaspora-plinth') self.add(webserver) daemon = Daemon('daemon-diaspora', managed_services[0]) self.add(daemon)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('Privoxy'), icon_filename='privoxy', short_description=_('Web Proxy'), description=_description, manual_page='Privoxy') self.add(info) menu_item = menu.Menu('menu-privoxy', info.name, info.short_description, info.icon_filename, 'privoxy:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( 'shortcut-privoxy', info.name, short_description=info.short_description, icon=info.icon_filename, description=info.description, configure_url=reverse_lazy('privoxy:index'), login_required=True) self.add(shortcut) firewall = Firewall('firewall-privoxy', info.name, ports=['privoxy'], is_external=False) self.add(firewall) daemon = Daemon('daemon-privoxy', managed_services[0], listen_ports=[(8118, 'tcp4'), (8118, 'tcp6')]) self.add(daemon) users_and_groups = UsersAndGroups('users-and-groups-privoxy', reserved_usernames=['privoxy']) self.add(users_and_groups)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('Tahoe-LAFS'), icon_filename='tahoe-lafs', short_description=_('Distributed File Storage'), description=_description) self.add(info) menu_item = menu.Menu('menu-tahoe', info.name, info.short_description, info.icon_filename, 'tahoe:index', parent_url_name='apps', advanced=True) self.add(menu_item) shortcut = frontpage.Shortcut( 'shortcut-tahoe', info.name, short_description=info.short_description, icon=info.icon_filename, description=info.description, url=None, configure_url=reverse_lazy('tahoe:index'), login_required=True) self.add(shortcut) firewall = Firewall('firewall-tahoe', info.name, ports=['tahoe-plinth'], is_external=True) self.add(firewall) webserver = Webserver('webserver-tahoe', 'tahoe-plinth') self.add(webserver) daemon = Daemon('daemon-tahoe', managed_services[0]) self.add(daemon)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('Roundcube'), icon_filename='roundcube', short_description=_('Email Client'), description=_description, manual_page='Roundcube', clients=manifest.clients) self.add(info) menu_item = menu.Menu('menu-roundcube', info.name, info.short_description, info.icon_filename, 'roundcube:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-roundcube', info.name, short_description=info.short_description, icon=info.icon_filename, url='/roundcube/', clients=info.clients, login_required=True) self.add(shortcut) firewall = Firewall('firewall-roundcube', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) webserver = Webserver('webserver-roundcube', 'roundcube', urls=['https://{host}/roundcube']) self.add(webserver) backup_restore = BackupRestore('backup-restore-roundcube', **manifest.backup) self.add(backup_restore)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('Shadowsocks'), icon_filename='shadowsocks', short_description=_('Socks5 Proxy'), description=_description, manual_page='Shadowsocks') self.add(info) menu_item = menu.Menu('menu-shadowsocks', info.name, info.short_description, info.icon_filename, 'shadowsocks:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( 'shortcut-shadowsocks', info.name, short_description=info.short_description, icon=info.icon_filename, description=info.description, configure_url=reverse_lazy('shadowsocks:index'), login_required=True) self.add(shortcut) firewall = Firewall('firewall-shadowsocks', info.name, ports=['shadowsocks-local-plinth'], is_external=False) self.add(firewall) daemon = Daemon('daemon-shadowsocks', managed_services[0], listen_ports=[(1080, 'tcp4'), (1080, 'tcp6')]) self.add(daemon)
def test_init(): """Test initializing the component.""" firewall = Firewall('test-component', 'test-name', ['test-port1', 'test-port2'], is_external=True) assert firewall.name == 'test-name' assert firewall.ports == ['test-port1', 'test-port2'] assert firewall.is_external
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=self._version, is_essential=True, name=_('Secure Shell (SSH) Server'), icon='fa-terminal', description=_description) self.add(info) menu_item = menu.Menu('menu-ssh', info.name, None, info.icon, 'ssh:index', parent_url_name='system') self.add(menu_item) packages = Packages('packages-ssh', ['openssh-server']) self.add(packages) firewall = Firewall('firewall-ssh', info.name, ports=['ssh'], is_external=True) self.add(firewall) daemon = Daemon('daemon-ssh', 'ssh') self.add(daemon) backup_restore = BackupRestore('backup-restore-ssh', **manifest.backup) self.add(backup_restore)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('Shaarli'), icon_filename='shaarli', short_description=_('Bookmarks'), description=_description, manual_page='Shaarli', clients=clients) self.add(info) menu_item = menu.Menu('menu-shaarli', info.name, info.short_description, info.icon_filename, 'shaarli:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-shaarli', info.name, short_description=info.short_description, icon=info.icon_filename, url='/shaarli', clients=info.clients, login_required=True) self.add(shortcut) firewall = Firewall('firewall-shaarli', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) webserver = Webserver('webserver-shaarli', 'shaarli') self.add(webserver)
def __init__(self): """Create components for the app.""" super().__init__() self.groups = {'vpn': _('Connect to VPN services')} info = app_module.Info(app_id=self.app_id, version=self._version, name=_('OpenVPN'), icon_filename='openvpn', short_description=_('Virtual Private Network'), description=_description, manual_page='OpenVPN', clients=manifest.clients) self.add(info) menu_item = menu.Menu('menu-openvpn', info.name, info.short_description, info.icon_filename, 'openvpn:index', parent_url_name='apps') self.add(menu_item) download_profile = \ format_lazy(_('<a class="btn btn-primary btn-sm" href="{link}">' 'Download Profile</a>'), link=reverse_lazy('openvpn:profile')) shortcut = frontpage.Shortcut( 'shortcut-openvpn', info.name, short_description=info.short_description, icon=info.icon_filename, description=info.description + [download_profile], configure_url=reverse_lazy('openvpn:index'), login_required=True, allowed_groups=['vpn']) self.add(shortcut) packages = Packages('packages-openvpn', ['openvpn', 'easy-rsa']) self.add(packages) firewall = Firewall('firewall-openvpn', info.name, ports=['openvpn'], is_external=True) self.add(firewall) daemon = Daemon('daemon-openvpn', 'openvpn-server@freedombox', listen_ports=[(1194, 'udp4'), (1194, 'udp6')]) self.add(daemon) users_and_groups = UsersAndGroups('users-and-groups-openvpn', groups=self.groups) self.add(users_and_groups) backup_restore = BackupRestore('backup-restore-openvpn', **manifest.backup) self.add(backup_restore)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('Radicale'), icon_filename='radicale', short_description=_('Calendar and Addressbook'), description=_description, manual_page='Radicale', clients=clients) self.add(info) menu_item = menu.Menu('menu-radicale', info.name, info.short_description, info.icon_filename, 'radicale:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-radicale', info.name, short_description=info.short_description, icon=info.icon_filename, url='/radicale/', clients=info.clients, login_required=True) self.add(shortcut) firewall = Firewall('firewall-radicale', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) webserver = RadicaleWebserver('webserver-radicale', None, urls=['https://{host}/radicale']) self.add(webserver) uwsgi = RadicaleUwsgi('uwsgi-radicale', 'radicale') self.add(uwsgi) daemon = RadicaleDaemon('daemon-radicale', managed_services[0]) self.add(daemon)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info( app_id=self.app_id, version=version, name=_('MLDonkey'), icon_filename='mldonkey', short_description=_('Peer-to-peer File Sharing'), description=_description, manual_page='MLDonkey', clients=clients) self.add(info) menu_item = menu.Menu('menu-mldonkey', info.name, info.short_description, info.icon_filename, 'mldonkey:index', parent_url_name='apps') self.add(menu_item) shortcuts = frontpage.Shortcut( 'shortcut-mldonkey', info.name, short_description=info.short_description, icon=info.icon_filename, url='/mldonkey/', login_required=True, clients=info.clients, allowed_groups=[group[0]]) self.add(shortcuts) firewall = Firewall('firewall-mldonkey', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) webserver = Webserver('webserver-mldonkey', 'mldonkey-freedombox', urls=['https://{host}/mldonkey/']) self.add(webserver) daemon = Daemon('daemon-mldonkey', managed_services[0], listen_ports=[(4080, 'tcp4')]) self.add(daemon)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=self._version, is_essential=True, depends=['names'], name=_('Service Discovery'), icon='fa-compass', description=_description, manual_page='ServiceDiscovery') self.add(info) menu_item = menu.Menu('menu-avahi', info.name, None, info.icon, 'avahi:index', parent_url_name='system') self.add(menu_item) packages = Packages('packages-avahi', ['avahi-daemon', 'avahi-utils']) self.add(packages) domain_type = DomainType('domain-type-local', _('Local Network Domain'), 'config:index', can_have_certificate=False) self.add(domain_type) firewall = Firewall('firewall-avahi', info.name, ports=['mdns'], is_external=False) self.add(firewall) daemon = Daemon('daemon-avahi', 'avahi-daemon') self.add(daemon) backup_restore = BackupRestore('backup-restore-avahi', **manifest.backup) self.add(backup_restore)
def __init__(self): """Create components for the app.""" super().__init__() groups = {'ed2k': _('Download files using eDonkey applications')} info = app_module.Info( app_id=self.app_id, version=version, name=_('MLDonkey'), icon_filename='mldonkey', short_description=_('Peer-to-peer File Sharing'), description=_description, manual_page='MLDonkey', clients=manifest.clients) self.add(info) menu_item = menu.Menu('menu-mldonkey', info.name, info.short_description, info.icon_filename, 'mldonkey:index', parent_url_name='apps') self.add(menu_item) shortcuts = frontpage.Shortcut( 'shortcut-mldonkey', info.name, short_description=info.short_description, icon=info.icon_filename, url='/mldonkey/', login_required=True, clients=info.clients, allowed_groups=list(groups)) self.add(shortcuts) firewall = Firewall('firewall-mldonkey', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) webserver = Webserver('webserver-mldonkey', 'mldonkey-freedombox', urls=['https://{host}/mldonkey/']) self.add(webserver) daemon = Daemon('daemon-mldonkey', managed_services[0], listen_ports=[(4080, 'tcp4')]) self.add(daemon) users_and_groups = UsersAndGroups('users-and-groups-mldonkey', reserved_usernames=[_SYSTEM_USER], groups=groups) self.add(users_and_groups) backup_restore = BackupRestore('backup-restore-mldonkey', **manifest.backup) self.add(backup_restore)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('BIND'), icon='fa-globe-w', short_description=_('Domain Name Server'), description=_description) self.add(info) menu_item = menu.Menu('menu-bind', info.name, info.short_description, info.icon, 'bind:index', parent_url_name='system') self.add(menu_item) firewall = Firewall('firewall-bind', info.name, ports=['dns'], is_external=False) self.add(firewall) daemon = Daemon('daemon-bind', managed_services[0], listen_ports=[(53, 'tcp6'), (53, 'udp6'), (53, 'tcp4'), (53, 'udp4')], alias=managed_services[1]) self.add(daemon) backup_restore = BackupRestore('backup-restore-bind', **manifest.backup) self.add(backup_restore)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('Transmission'), icon_filename='transmission', short_description=_('BitTorrent Web Client'), description=_description, manual_page='Transmission', clients=clients) self.add(info) menu_item = menu.Menu('menu-transmission', info.name, info.short_description, info.icon_filename, 'transmission:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( 'shortcut-transmission', info.name, short_description=info.short_description, icon=info.icon_filename, url='/transmission', clients=info.clients, login_required=True, allowed_groups=[group[0]]) self.add(shortcut) firewall = Firewall('firewall-transmission', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) webserver = Webserver('webserver-transmission', 'transmission-plinth', urls=['https://{host}/transmission']) self.add(webserver) daemon = Daemon('daemon-transmission', managed_services[0], listen_ports=[(9091, 'tcp4')]) self.add(daemon)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info( app_id=self.app_id, version=self._version, name=_('WireGuard'), icon_filename='wireguard', short_description=_('Virtual Private Network'), description=_description, manual_page='WireGuard', clients=manifest.clients, donation_url='https://www.wireguard.com/donations/') self.add(info) menu_item = menu.Menu('menu-wireguard', info.name, info.short_description, info.icon_filename, 'wireguard:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( 'shortcut-wireguard', info.name, short_description=info.short_description, icon=info.icon_filename, description=info.description, configure_url=reverse_lazy('wireguard:index'), login_required=True, clients=info.clients) self.add(shortcut) packages = Packages('packages-wireguard', ['wireguard']) self.add(packages) firewall = Firewall('firewall-wireguard', info.name, ports=['wireguard-freedombox'], is_external=True) self.add(firewall)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, is_essential=is_essential, name=_('Secure Shell (SSH) Server'), icon='fa-terminal', description=_description) self.add(info) menu_item = menu.Menu('menu-ssh', info.name, None, info.icon, 'ssh:index', parent_url_name='system') self.add(menu_item) firewall = Firewall('firewall-ssh', info.name, ports=['ssh'], is_external=True) self.add(firewall) daemon = Daemon('daemon-ssh', managed_services[0]) self.add(daemon)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('infinoted'), icon_filename='infinoted', short_description=_('Gobby Server'), description=_description, manual_page='Infinoted', clients=clients) self.add(info) menu_item = menu.Menu('menu-infinoted', info.name, info.short_description, info.icon_filename, 'infinoted:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( 'shortcut-infinoted', info.name, short_description=info.short_description, icon=info.icon_filename, description=info.description, configure_url=reverse_lazy('infinoted:index'), clients=info.clients, login_required=False) self.add(shortcut) firewall = Firewall('firewall-infinoted', info.name, ports=['infinoted-plinth'], is_external=True) self.add(firewall) daemon = Daemon('daemon-infinoted', managed_services[0], listen_ports=[(6523, 'tcp4'), (6523, 'tcp6')]) self.add(daemon)
def __init__(self): """Create components for the app.""" super().__init__() groups = {'calibre': _('Use calibre e-book libraries')} info = app_module.Info(app_id=self.app_id, version=version, name=_('calibre'), icon_filename='calibre', short_description=_('E-book Library'), description=_description, manual_page='Calibre', clients=manifest.clients, donation_url='https://calibre-ebook.com/donate') self.add(info) menu_item = menu.Menu('menu-calibre', info.name, info.short_description, info.icon_filename, 'calibre:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-calibre', info.name, short_description=info.short_description, icon=info.icon_filename, url='/calibre', clients=info.clients, login_required=True, allowed_groups=list(groups)) self.add(shortcut) firewall = Firewall('firewall-calibre', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) webserver = Webserver('webserver-calibre', 'calibre-freedombox', urls=['https://{host}/calibre']) self.add(webserver) daemon = Daemon('daemon-calibre', managed_services[0], listen_ports=[(8844, 'tcp4')]) self.add(daemon) users_and_groups = UsersAndGroups('users-and-groups-calibre', reserved_usernames=['calibre'], groups=groups) self.add(users_and_groups) backup_restore = BackupRestore('backup-restore-calibre', **manifest.backup) self.add(backup_restore)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('Matrix Synapse'), icon_filename='matrixsynapse', short_description=_('Chat Server'), description=_description, manual_page='MatrixSynapse', clients=clients) self.add(info) menu_item = menu.Menu('menu-matrixsynapse', info.name, info.short_description, 'matrixsynapse', 'matrixsynapse:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( 'shortcut-matrixsynapse', info.name, short_description=info.short_description, icon=info.icon_filename, description=info.description, configure_url=reverse_lazy('matrixsynapse:index'), clients=info.clients, login_required=True) self.add(shortcut) firewall = Firewall('firewall-matrixsynapse', info.name, ports=['matrix-synapse-plinth'], is_external=True) self.add(firewall) webserver = Webserver('webserver-matrixsynapse', 'matrix-synapse-plinth', urls=['https://{host}/_matrix/client/versions']) self.add(webserver) letsencrypt = LetsEncrypt( 'letsencrypt-matrixsynapse', domains=get_domains, daemons=[managed_services[0]], should_copy_certificates=True, private_key_path='/etc/matrix-synapse/homeserver.tls.key', certificate_path='/etc/matrix-synapse/homeserver.tls.crt', user_owner='matrix-synapse', group_owner='nogroup', managing_app='matrixsynapse') self.add(letsencrypt) daemon = Daemon('daemon-matrixsynapse', managed_services[0], listen_ports=[(8008, 'tcp4'), (8448, 'tcp4')]) self.add(daemon)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('Tor'), icon_filename='tor', short_description=_('Anonymity Network'), description=_description, manual_page='Tor', clients=clients) self.add(info) menu_item = menu.Menu('menu-tor', info.name, info.short_description, info.icon_filename, 'tor:index', parent_url_name='apps') self.add(menu_item) domain_type = DomainType('domain-type-tor', _('Tor Onion Service'), 'tor:index', can_have_certificate=False) self.add(domain_type) firewall = Firewall('firewall-tor-socks', _('Tor Socks Proxy'), ports=['tor-socks'], is_external=False) self.add(firewall) firewall = Firewall('firewall-tor-relay', _('Tor Bridge Relay'), ports=['tor-orport', 'tor-obfs3', 'tor-obfs4'], is_external=True) self.add(firewall) daemon = Daemon('daemon-tor', managed_services[0], strict_check=True, listen_ports=[(9050, 'tcp4'), (9050, 'tcp6'), (9040, 'tcp4'), (9040, 'tcp6'), (9053, 'udp4'), (9053, 'udp6')]) self.add(daemon)
def __init__(self): """Create components for the app.""" super().__init__() groups = {'git-access': _('Read-write access to Git repositories')} self.repos = [] info = app_module.Info(app_id=self.app_id, version=version, name=_('Gitweb'), icon_filename='gitweb', short_description=_('Simple Git Hosting'), description=_description, manual_page='GitWeb', clients=clients) self.add(info) menu_item = menu.Menu('menu-gitweb', info.name, info.short_description, info.icon_filename, 'gitweb:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-gitweb', info.name, short_description=info.short_description, icon=info.icon_filename, url='/gitweb/', clients=info.clients, login_required=True, allowed_groups=list(groups)) self.add(shortcut) firewall = Firewall('firewall-gitweb', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) webserver = Webserver('webserver-gitweb', 'gitweb-freedombox', urls=['https://{host}/gitweb/']) self.add(webserver) self.auth_webserver = GitwebWebserverAuth('webserver-gitweb-auth', 'gitweb-freedombox-auth') self.add(self.auth_webserver) users_and_groups = UsersAndGroups('users-and-groups-gitweb', groups=groups) self.add(users_and_groups) setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': self.update_service_access()
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('Quassel'), icon_filename='quassel', short_description=_('IRC Client'), description=_description, manual_page='Quassel', clients=clients) self.add(info) menu_item = menu.Menu('menu-quassel', info.name, info.short_description, info.icon_filename, 'quassel:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( 'shortcut-quassel', info.name, short_description=info.short_description, icon=info.icon_filename, description=info.description, configure_url=reverse_lazy('quassel:index'), clients=info.clients, login_required=True) self.add(shortcut) firewall = Firewall('firewall-quassel', info.name, ports=['quassel-plinth'], is_external=True) self.add(firewall) letsencrypt = LetsEncrypt( 'letsencrypt-quassel', domains=get_domains, daemons=managed_services, should_copy_certificates=True, private_key_path='/var/lib/quassel/quasselCert.pem', certificate_path='/var/lib/quassel/quasselCert.pem', user_owner='quasselcore', group_owner='quassel', managing_app='quassel') self.add(letsencrypt) daemon = Daemon('daemon-quassel', managed_services[0], listen_ports=[(4242, 'tcp4'), (4242, 'tcp6')]) self.add(daemon) users_and_groups = UsersAndGroups('users-and-groups-quasselcore', reserved_usernames=['quasselcore']) self.add(users_and_groups)