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=self._version, depends=['names'], name=_('PageKite'), icon='fa-flag', short_description=_('Public Visibility'), description=_description, manual_page='PageKite', donation_url='https://pagekite.net/support/faq/#donate') self.add(info) menu_item = menu.Menu('menu-pagekite', info.name, info.short_description, info.icon, 'pagekite:index', parent_url_name='system') self.add(menu_item) packages = Packages('packages-pagekite', ['pagekite']) self.add(packages) domain_type = DomainType('domain-type-pagekite', _('PageKite Domain'), 'pagekite:index', can_have_certificate=True) self.add(domain_type) daemon = Daemon('daemon-pagekite', self.DAEMON) self.add(daemon) backup_restore = BackupRestore('backup-restore-pagekite', **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, is_essential=is_essential, depends=depends, name=_('Dynamic DNS Client'), icon='fa-refresh', description=_description, manual_page='DynamicDNS') self.add(info) menu_item = menu.Menu('menu-dynamicdns', info.name, None, info.icon, 'dynamicdns:index', parent_url_name='system') self.add(menu_item) domain_type = DomainType('domain-type-dynamic', _('Dynamic Domain Name'), 'dynamicdns:index', can_have_certificate=True) self.add(domain_type) users_and_groups = UsersAndGroups('users-and-groups-dynamicdns', reserved_usernames=['ez-ipupd']) self.add(users_and_groups) backup_restore = BackupRestore('backup-restore-dynamicdns', **manifest.backup) self.add(backup_restore) current_status = get_status() if current_status['enabled']: domain_added.send_robust(sender='dynamicdns', domain_type='domain-type-dynamic', name=current_status['dynamicdns_domain'], services='__all__')
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, depends=depends, name=_('Let\'s Encrypt'), icon='fa-lock', short_description=_('Certificates'), description=_description, manual_page='LetsEncrypt', donation_url='https://letsencrypt.org/donate/') self.add(info) menu_item = menu.Menu('menu-letsencrypt', info.name, info.short_description, info.icon, 'letsencrypt:index', parent_url_name='system') self.add(menu_item) backup_restore = BackupRestore('backup-restore-letsencrypt', **manifest.backup) self.add(backup_restore) domain_added.connect(on_domain_added) domain_removed.connect(on_domain_removed) post_module_loading.connect(_certificate_handle_modified)
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=_('Update'), icon='fa-refresh', description=_description, manual_page='Upgrades') self.add(info) menu_item = menu.Menu('menu-upgrades', info.name, None, info.icon, 'upgrades:index', parent_url_name='system') self.add(menu_item) backup_restore = BackupRestore('backup-restore-upgrades', **manifest.backup) self.add(backup_restore) self._show_new_release_notification() # Check every day (every 3 minutes in debug mode): # - backports becomes available -> configure it if selected by user interval = 180 if cfg.develop else 24 * 3600 glib.schedule(interval, setup_repositories) # Check every day (every 3 minutes in debug mode): # - new stable release becomes available -> perform dist-upgrade if # updates are enabled interval = 180 if cfg.develop else 24 * 3600 glib.schedule(interval, check_dist_upgrade)
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__() info = app_module.Info(app_id=self.app_id, version=self._version, is_essential=True, name=_('Security'), icon='fa-lock', manual_page='Security') self.add(info) menu_item = menu.Menu('menu-security', info.name, None, info.icon, 'security:index', parent_url_name='system') self.add(menu_item) packages = Packages('packages-security', ['fail2ban', 'debsecan']) self.add(packages) daemon = RelatedDaemon('related-daemon-fail2ban', 'fail2ban') self.add(daemon) backup_restore = BackupRestore('backup-restore-security', **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=self._version, is_essential=True, depends=['names'], name=_('Let\'s Encrypt'), icon='fa-lock', short_description=_('Certificates'), description=_description, manual_page='LetsEncrypt', donation_url='https://letsencrypt.org/donate/') self.add(info) menu_item = menu.Menu('menu-letsencrypt', info.name, info.short_description, info.icon, 'letsencrypt:index', parent_url_name='system') self.add(menu_item) packages = Packages('packages-letsencrypt', ['certbot']) self.add(packages) backup_restore = BackupRestore('backup-restore-letsencrypt', **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=_('Monkeysphere'), icon='fa-certificate', description=_description, manual_page='Monkeysphere') self.add(info) menu_item = menu.Menu('menu-monkeysphere', info.name, None, info.icon, 'monkeysphere:index', parent_url_name='system', advanced=True) self.add(menu_item) users_and_groups = UsersAndGroups('users-and-groups-monkeysphere', reserved_usernames=['monkeysphere']) self.add(users_and_groups) backup_restore = BackupRestore('backup-restore-monkeysphere', **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, is_essential=is_essential, name=_('Storage'), icon='fa-hdd-o', description=_description, manual_page='Storage') self.add(info) menu_item = menu.Menu('menu-storage', info.name, None, info.icon, 'storage:index', parent_url_name='system') self.add(menu_item) backup_restore = BackupRestore('backup-restore-storage', **manifest.backup) self.add(backup_restore) # Check every hour for low disk space, every 3 minutes in debug mode interval = 180 if cfg.develop else 3600 glib.schedule(interval, warn_about_low_disk_space) # Schedule initialization of UDisks2 initialization glib.schedule(3, udisks2.init, repeat=False)
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=self._version, is_essential=True, name=_('Software Update'), icon='fa-refresh', description=_description, manual_page='Upgrades') self.add(info) menu_item = menu.Menu('menu-upgrades', info.name, None, info.icon, 'upgrades:index', parent_url_name='system') self.add(menu_item) packages = Packages('packages-upgrades', ['unattended-upgrades', 'needrestart']) self.add(packages) daemon = RelatedDaemon('related-daemon-upgrades', 'freedombox-dist-upgrade') self.add(daemon) backup_restore = BackupRestore('backup-restore-upgrades', **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=self._version, is_essential=True, name=_('Date & Time'), icon='fa-clock-o', description=_description, manual_page='DateTime') self.add(info) menu_item = menu.Menu('menu-datetime', info.name, None, info.icon, 'datetime:index', parent_url_name='system') self.add(menu_item) packages = Packages('packages-datetime', ['systemd-timesyncd']) self.add(packages) if self._is_time_managed(): daemon = Daemon('daemon-datetime', 'systemd-timesyncd') self.add(daemon) backup_restore = BackupRestore('backup-restore-datetime', **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, is_essential=is_essential, name=_('Firewall'), icon='fa-shield', description=_description, manual_page='Firewall') self.add(info) menu_item = menu.Menu('menu-firewall', info.name, None, info.icon, 'firewall:index', parent_url_name='system') self.add(menu_item) daemon = Daemon('daemon-firewall', managed_services[0]) self.add(daemon) backup_restore = BackupRestore('backup-restore-firewall', **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, is_essential=is_essential, name=_('Diagnostics'), icon='fa-heartbeat', description=_description, manual_page='Diagnostics') self.add(info) menu_item = menu.Menu('menu-diagnostics', info.name, None, info.icon, 'diagnostics:index', parent_url_name='system') self.add(menu_item) backup_restore = BackupRestore('backup-restore-diagnostics', **manifest.backup) self.add(backup_restore) # Check periodically for low RAM space interval = 180 if cfg.develop else 3600 glib.schedule(interval, _warn_about_low_ram_space)
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=manifest.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) backup_restore = BackupRestore('backup-restore-infinoted', **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=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__() 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__() groups = { 'bit-torrent': _('Download files using BitTorrent applications') } info = app_module.Info( app_id=self.app_id, version=self._version, name=_('Transmission'), icon_filename='transmission', short_description=_('BitTorrent Web Client'), description=_description, manual_page='Transmission', clients=manifest.clients, donation_url='https://transmissionbt.com/donate/') 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=list(groups)) self.add(shortcut) packages = Packages('packages-transmission', ['transmission-daemon']) self.add(packages) firewall = Firewall('firewall-transmission', info.name, ports=['http', 'https', 'transmission-client'], is_external=True) self.add(firewall) webserver = Webserver('webserver-transmission', 'transmission-plinth', urls=['https://{host}/transmission']) self.add(webserver) daemon = Daemon( 'daemon-transmission', self.DAEMON, listen_ports=[ (9091, 'tcp4'), (51413, 'tcp4'), (51413, 'tcp6'), (51413, 'udp4'), ]) self.add(daemon) users_and_groups = UsersAndGroups('users-and-groups-transmission', reserved_usernames=[SYSTEM_USER], groups=groups) self.add(users_and_groups) backup_restore = BackupRestore('backup-restore-transmission', **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=_('Coturn'), icon_filename='coturn', short_description=_('VoIP Helper'), description=_description, manual_page='Coturn') self.add(info) menu_item = menu.Menu('menu-coturn', info.name, info.short_description, info.icon_filename, 'coturn:index', parent_url_name='apps') self.add(menu_item) firewall = Firewall('firewall-coturn', info.name, ports=['coturn-freedombox'], is_external=True) self.add(firewall) letsencrypt = LetsEncrypt( 'letsencrypt-coturn', domains=get_domains, daemons=managed_services, should_copy_certificates=True, private_key_path='/etc/coturn/certs/pkey.pem', certificate_path='/etc/coturn/certs/cert.pem', user_owner='turnserver', group_owner='turnserver', managing_app='coturn') self.add(letsencrypt) daemon = Daemon('daemon-coturn', managed_services[0], listen_ports=[(3478, 'udp4'), (3478, 'udp6'), (3478, 'tcp4'), (3478, 'tcp6'), (3479, 'udp4'), (3479, 'udp6'), (3479, 'tcp4'), (3479, 'tcp6'), (5349, 'udp4'), (5349, 'udp6'), (5349, 'tcp4'), (5349, 'tcp6'), (5350, 'udp4'), (5350, 'udp6'), (5350, 'tcp4'), (5350, 'tcp6')]) self.add(daemon) users_and_groups = UsersAndGroups('users-and-groups-coturn', reserved_usernames=['turnserver']) self.add(users_and_groups) backup_restore = BackupRestore('backup-restore-coturn', **manifest.backup) self.add(backup_restore)
def __init__(self): """Create components for the app.""" super().__init__() self._private_mode = True info = app_module.Info(app_id=self.app_id, version=self._version, name=_('MediaWiki'), icon_filename='mediawiki', short_description=_('Wiki'), description=_description, manual_page='MediaWiki', clients=manifest.clients) self.add(info) menu_item = menu.Menu('menu-mediawiki', info.name, info.short_description, info.icon_filename, 'mediawiki:index', parent_url_name='apps') self.add(menu_item) shortcut = Shortcut('shortcut-mediawiki', info.name, short_description=info.short_description, icon=info.icon_filename, url='/mediawiki', clients=info.clients, login_required=True) self.add(shortcut) packages = Packages('packages-mediawiki', ['mediawiki', 'imagemagick', 'php-sqlite3']) self.add(packages) firewall = Firewall('firewall-mediawiki', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) webserver = Webserver('webserver-mediawiki', 'mediawiki', urls=['https://{host}/mediawiki']) self.add(webserver) webserver = Webserver('webserver-mediawiki-freedombox', 'mediawiki-freedombox') self.add(webserver) daemon = Daemon('daemon-mediawiki', 'mediawiki-jobrunner') self.add(daemon) backup_restore = BackupRestore('backup-restore-mediawiki', **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=self._version, name=_('Minetest'), icon_filename='minetest', short_description=_('Block Sandbox'), description=_description, manual_page='Minetest', clients=manifest.clients, donation_url='https://www.minetest.net/get-involved/#donate') self.add(info) menu_item = menu.Menu('menu-minetest', info.name, info.short_description, info.icon_filename, 'minetest:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( 'shortcut-minetest', info.name, short_description=info.short_description, icon=info.icon_filename, description=info.description, configure_url=reverse_lazy('minetest:index'), clients=info.clients, login_required=False) self.add(shortcut) packages = Packages('packages-minetest', ['minetest-server'] + _mods) self.add(packages) firewall = Firewall('firewall-minetest', info.name, ports=['minetest-plinth'], is_external=True) self.add(firewall) daemon = Daemon('daemon-minetest', 'minetest-server', listen_ports=[(30000, 'udp4')]) self.add(daemon) users_and_groups = UsersAndGroups( 'users-and-groups-minetest', reserved_usernames=['Debian-minetest']) self.add(users_and_groups) backup_restore = BackupRestore('backup-restore-minetest', **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=self._version, name=_('Radicale'), icon_filename='radicale', short_description=_('Calendar and Addressbook'), description=_description, manual_page='Radicale', clients=manifest.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) packages = Packages('packages-radicale', ['radicale']) self.add(packages) firewall = Firewall('firewall-radicale', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) webserver = Webserver('webserver-radicale', 'radicale2-freedombox', urls=['https://{host}/radicale']) self.add(webserver) uwsgi = Uwsgi('uwsgi-radicale', 'radicale') self.add(uwsgi) users_and_groups = UsersAndGroups('users-and-groups-radicale', reserved_usernames=['radicale']) self.add(users_and_groups) backup_restore = BackupRestore('backup-restore-radicale', **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=self._version, name=_('Privoxy'), icon_filename='privoxy', short_description=_('Web Proxy'), description=_description, manual_page='Privoxy', donation_url='https://www.privoxy.org/faq/general.html#DONATE') 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) packages = Packages('packages-privoxy', ['privoxy']) self.add(packages) firewall = Firewall('firewall-privoxy', info.name, ports=['privoxy'], is_external=False) self.add(firewall) daemon = Daemon('daemon-privoxy', 'privoxy', 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) backup_restore = BackupRestore('backup-restore-privoxy', **manifest.backup) self.add(backup_restore)
def __init__(self): """Initialize the app components""" super().__init__() groups = {'minidlna': _('Media streaming server')} info = app_module.Info(app_id=self.app_id, version=version, name=_('MiniDLNA'), icon_filename='minidlna', short_description=_('Simple Media Server'), description=_description, manual_page='MiniDLNA', clients=manifest.clients) self.add(info) menu_item = menu.Menu( 'menu-minidlna', name=info.name, short_description=info.short_description, url_name='minidlna:index', parent_url_name='apps', icon=info.icon_filename, ) firewall = Firewall('firewall-minidlna', info.name, ports=['minidlna'], is_external=False) webserver = Webserver('webserver-minidlna', 'minidlna-freedombox', urls=['http://localhost:8200/']) shortcut = frontpage.Shortcut('shortcut-minidlna', info.name, short_description=info.short_description, description=info.description, icon=info.icon_filename, url='/_minidlna/', login_required=True, allowed_groups=list(groups)) daemon = Daemon('daemon-minidlna', managed_services[0]) backup_restore = BackupRestore('backup-restore-minidlna', **manifest.backup) self.add(backup_restore) self.add(menu_item) self.add(webserver) self.add(firewall) self.add(shortcut) self.add(daemon) users_and_groups = UsersAndGroups('users-and-groups-minidlna', groups=groups) 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, is_essential=is_essential, name=_('Cockpit'), icon='fa-wrench', icon_filename='cockpit', short_description=_('Server Administration'), description=_description, manual_page='Cockpit', clients=manifest.clients) self.add(info) menu_item = menu.Menu('menu-cockpit', info.name, info.short_description, info.icon, 'cockpit:index', parent_url_name='system') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-cockpit', info.name, short_description=info.short_description, icon=info.icon_filename, url='/_cockpit/', clients=info.clients, login_required=True, allowed_groups=['admin']) self.add(shortcut) firewall = Firewall('firewall-cockpit', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) webserver = Webserver('webserver-cockpit', 'cockpit-freedombox', urls=['https://{host}/_cockpit/']) self.add(webserver) daemon = Daemon('daemon-cockpit', managed_services[0]) self.add(daemon) backup_restore = BackupRestore('backup-restore-cockpit', **manifest.backup) self.add(backup_restore) domain_added.connect(on_domain_added) domain_removed.connect(on_domain_removed)
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=self._version, name=_('JSXC'), icon_filename='jsxc', short_description=_('Chat Client'), description=_description, manual_page='JSXC', clients=manifest.clients) self.add(info) menu_item = menu.Menu('menu-jsxc', info.name, info.short_description, info.icon_filename, 'jsxc:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-jsxc', name=info.name, short_description=info.short_description, icon=info.icon_filename, url=reverse_lazy('jsxc:jsxc'), clients=info.clients) self.add(shortcut) packages = Packages('packages-jsxc', ['libjs-jsxc']) self.add(packages) firewall = Firewall('firewall-jsxc', info.name, ports=['http', 'https'], is_external=True) self.add(firewall) directory_map = { '/static/jsxc/img': '/usr/share/libjs-jsxc/img/', '/static/jsxc/libjs-jsxc/lib': '/usr/share/javascript/jsxc/lib/', '/static/jsxc/libjs-jsxc/sound': '/usr/share/libjs-jsxc/sound/', '/static/jsxc/libjs-jsxc/': '/usr/share/libjs-jsxc/css/', } static_files = StaticFiles('static-files-jsxc', directory_map=directory_map) self.add(static_files) backup_restore = BackupRestore('backup-restore-jsxc', **manifest.backup) self.add(backup_restore)
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=self._version, name=_('I2P'), icon_filename='i2p', short_description=_('Anonymity Network'), description=_description, manual_page='I2P', clients=manifest.clients, donation_url='https://geti2p.net/en/get-involved/donate') 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) packages = Packages('packages-i2p', ['i2p']) self.add(packages) 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', 'i2p', listen_ports=[(7657, 'tcp6')]) self.add(daemon) users_and_groups = UsersAndGroups('users-and-groups-i2p', groups=groups) self.add(users_and_groups) backup_restore = BackupRestore('backup-restore-i2p', **manifest.backup) self.add(backup_restore)