_('To communicate, you can use the ' '<a href="https://matrix.org/docs/projects/">available clients</a> ' 'for mobile, desktop and the web. <a href="https://riot.im/">Riot</a> ' 'client is recommended.') ] web_clients = [web_client(name='Riot', url='https://riot.im/app/#/home')] desktop_clients = [desktop_client(name='Riot', url='https://riot.im/desktop.html'), desktop_client(name='WeeChat CLI', url='https://weechat.org/')] mobile_clients = [mobile_client(name='Riot', fully_qualified_name='im.vector.alpha', play_store_url='https://play.google.com/store/apps/' 'details?id=im.vector.alpha', fdroid_url='https://f-droid.org/packages/' 'im.vector.alpha/')] service = None logger = logging.getLogger(__name__) SERVER_NAME_PATH = "/etc/matrix-synapse/conf.d/server_name.yaml" CONFIG_FILE_PATH = '/etc/matrix-synapse/homeserver.yaml' def init(): """Initialize the matrix-synapse module.""" menu = main_menu.get('apps') menu.add_urlname(name, 'glyphicon-comment', 'matrixsynapse:index',
'<a href="https://f-droid.org/repository/browse/?fdid=com.csipsimple"> ' 'CSipSimple</a> (for Android phones).'), _('<strong>Note:</strong> Before using repro, domains and users will ' 'need to be configured using the <a href="/repro/domains.html">' 'web-based configuration panel</a>. Users in the <em>admin</em> group ' 'will be able to log in to the repro configuration panel. After setting ' 'the domain, it is required to restart the repro service. Disable the ' 'service and re-enable it.'), ] desktop_clients = [desktop_client(name='Jitsi',url='https://jitsi.org/')] mobile_clients = [ mobile_client(name='Csip Simple',fully_qualified_name='com.csipsimple', fdroid_url=None, play_store_url='https://play.google.com/store/apps/details' '?id=com.csipsimple')] reserved_usernames = ['repro'] service = None def init(): """Initialize the repro module.""" menu = main_menu.get('apps') menu.add_urlname(name, 'glyphicon-phone-alt', 'repro:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup':
_('When enabled, Syncthing\'s web interface will be available from ' '<a href="/syncthing/">/syncthing</a>. Desktop and mobile clients are ' 'also <a href="https://syncthing.net/">available</a>.'), ] web_clients = [web_client(name='Syncthing', url='/syncthing')] desktop_clients = [ desktop_client(name='Syncthing', url='https://syncthing.net/') ] mobile_clients = [ mobile_client( name='Syncthing', fully_qualified_name='com.nutomic.syncthingandroid', fdroid_url='https://f-droid.org/packages/com.nutomic.syncthingandroid/', play_store_url= 'https://play.google.com/store/apps/details?id=com.nutomic' '.syncthingandroid') ] service = None def init(): """Intialize the module.""" menu = main_menu.get('apps') menu.add_urlname(name, 'glyphicon-refresh', 'syncthing:index', short_description) global service
_('Mumble is an open source, low-latency, encrypted, high quality ' 'voice chat software.'), _('You can connect to your Mumble server on the regular Mumble port ' '64738. <a href="http://mumble.info">Clients</a> to connect to Mumble ' 'from your desktop and Android devices are available.') ] desktop_clients = [ desktop_client(name='Mumble', url='https://wiki.mumble.info/wiki/Main_Page') ] mobile_clients = [ mobile_client(name='Mumble', fully_qualified_name='com.morlunk.mumbleclient', fdroid_url='https://f-droid.org/packages/com.morlunk' '.mumbleclient/', play_store_url='https://play.google.com/store/apps/details' '?id=com.morlunk.mumbleclient.free') ] reserved_usernames = ['mumble-server'] def init(): """Intialize the Mumble module.""" menu = main_menu.get('apps') menu.add_urlname(name, 'glyphicon-headphones', 'mumble:index', short_description) global service setup_helper = globals()['setup_helper']
_('When enabled, Tiny Tiny RSS will be available from <a href="/tt-' 'rss">/tt-rss</a> path on the web server. It can be accessed by ' 'any <a href="/plinth/sys/users">user with a {box_name} login</a>.'), box_name=_(cfg.box_name)), format_lazy( _('When using a mobile or desktop application for Tiny Tiny RSS, use ' 'the URL <a href="/tt-rss-app/">/tt-rss-app</a> for connecting.')) ] web_clients = [web_client(name='TT-RSS', url='/tt-rss')] mobile_clients = [ mobile_client(name='TTRSS-Reader', fully_qualified_name='org.ttrssreader', play_store_url='https://play.google.com/store/apps/details' '?id=org.ttrssreader', fdroid_url='https://f-droid.org/packages/org.ttrssreader/')] service = None def init(): """Intialize the module.""" menu = main_menu.get('apps') menu.add_urlname(name, 'glyphicon-envelope', 'ttrss:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup':
box_name=_(cfg.box_name)), ] desktop_clients = [ desktop_client(name='GNOME Calendar', url='https://wiki.gnome.org/Apps/Calendar'), desktop_client(name='Contacts', url='https://wiki.gnome.org/Apps/Contacts'), desktop_client(name='Evolution', url='https://wiki.gnome.org/Apps/Evolution') ] mobile_clients = [ mobile_client(name='DAVdroid', fully_qualified_name='at.bitfire.davdroid', fdroid_url=None, play_store_url='https://play.google.com/store/apps/details' '?id=at.bitfire.davdroid') ] reserved_usernames = ['radicale'] CONFIG_FILE = '/etc/radicale/config' def init(): """Initialize the radicale module.""" menu = main_menu.get('apps') menu.add_urlname(name, 'glyphicon-calendar', 'radicale:index', short_description)
'Minetest is a multiplayer infinite-world block sandbox. This ' 'module enables the Minetest server to be run on this ' '{box_name}, on the default port (30000). To connect to the server, ' 'a <a href="http://www.minetest.net/downloads/">Minetest client</a> ' 'is needed.'), box_name=_(cfg.box_name)), ] desktop_clients = [ desktop_client(name='Minetest', url='https://www.minetest.net/downloads/') ] mobile_clients = [ mobile_client( name='Minetest', fully_qualified_name='net.minetest.mintest', fdroid_url='https://f-droid.org/packages/net.minetest.minetest/', play_store_url='https://play.google.com/store/apps/details?' 'id=net.minetest.minetest') ] reserved_usernames = ['Debian-minetest'] CONFIG_FILE = '/etc/minetest/minetest.conf' AUG_PATH = '/files' + CONFIG_FILE + '/.anon' def init(): """Initialize the module.""" menu = main_menu.get('apps') menu.add_urlname(name, 'glyphicon-th-large', 'minetest:index', short_description)
'disconnect from it.'), box_name=_(cfg.box_name)), _('You can connect to your Quassel core on the default Quassel port ' '4242. Clients to connect to Quassel from your ' '<a href="http://quassel-irc.org/downloads">desktop</a> and ' '<a href="http://quasseldroid.iskrembilen.com/">mobile</a> devices ' 'are available.'), ] desktop_clients = [ desktop_client(name='Quassel', url='http://quassel-irc.org/downloads')] mobile_clients = [ mobile_client(name='QuasselDroid', fully_qualified_name='com.iskrembilen.quasseldroid', fdroid_url=None, play_store_url='https://play.google.com/store/apps/details?' 'id=com.iskrembilen.quasseldroid')] reserved_usernames = ['quasselcore'] def init(): """Initialize the quassel module.""" menu = main_menu.get('apps') menu.add_urlname(name, 'glyphicon-retweet', 'quassel:index', short_description) global service setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup': service = service_module.Service(
'Project</a> website. For best protection when web surfing, the ' 'Tor Project recommends that you use the ' '<a href="https://www.torproject.org/download/download-easy.html.en">' 'Tor Browser</a>.') ] desktop_clients = [ desktop_client(name='Tor Browser', url='https://www.torproject.org/download/download-easy' '.html.en') ] mobile_clients = [ mobile_client(name='Orbot', fully_qualified_name='org.torproject.android', fdroid_url='https://guardianproject.info/fdroid/', play_store_url='https://play.google.com/store/apps/details' '?id=org.torproject.android') ] reserved_usernames = ['debian-tor'] socks_service = None bridge_service = None def init(): """Initialize the module.""" menu = main_menu.get('apps') menu.add_urlname(name, 'glyphicon-eye-close', 'tor:index', short_description)