# # This file is part of Plinth. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # from django.utils.translation import ugettext_lazy as _ from plinth.clients import validate clients = validate([{ 'name': _('Roundcube'), 'platforms': [{ 'type': 'web', 'url': '/roundcube' }] }])
# # This file is part of Plinth. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # from django.utils.translation import ugettext_lazy as _ from plinth.clients import validate clients = validate([{ 'name': _('MediaWiki'), 'platforms': [{ 'type': 'web', 'url': '/mediawiki' }] }])
from django.utils.translation import ugettext_lazy as _ from plinth.clients import store_url, validate from plinth.modules import diaspora from plinth.utils import format_lazy clients = validate([{ 'name': _('dandelion*'), 'description': _('It is an unofficial webview based client for the ' 'community-run, distributed social network diaspora*'), 'platforms': [{ 'type': 'store', 'os': 'android', 'store_name': 'f-droid', 'url': store_url('f-droid', 'com.github.dfa.diaspora_android'), }] }, { 'name': _('diaspora*'), 'platforms': [{ 'type': 'web', 'url': format_lazy('https://diaspora.{host}', host=diaspora.get_configured_domain_name() if diaspora.is_setup() else "<please-setup-domain-name>") }] }])
# # This file is part of Plinth. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # from django.utils.translation import ugettext_lazy as _ from plinth.clients import validate clients = validate([{ 'name': _('Shaarli'), 'platforms': [{ 'type': 'web', 'url': '/shaarli' }] }])
# SPDX-License-Identifier: AGPL-3.0-or-later from django.utils.translation import ugettext_lazy as _ from plinth.clients import validate from plinth.modules.backups.api import validate as validate_backups clients = validate([{ 'name': _('coquelicot'), 'platforms': [{ 'type': 'web', 'url': '/coquelicot' }] }]) backup = validate_backups({ 'data': { 'directories': ['/var/lib/coquelicot'] }, 'secrets': { 'files': ['/etc/coquelicot/settings.yml'] }, 'services': ['coquelicot'] })
# along with this program. If not, see <http://www.gnu.org/licenses/>. # from django.utils.translation import ugettext_lazy as _ from plinth.clients import store_url, validate clients = validate([{ 'name': _('Minetest'), 'platforms': [{ 'type': 'download', 'os': 'windows', 'url': 'https://github.com/minetest/minetest/releases' }, { 'type': 'store', 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', 'net.minetest.minetest') }, { 'type': 'store', 'os': 'android', 'store_name': 'f-droid', 'url': store_url('f-droid', 'net.minetest.minetest') }, { 'type': 'package', 'format': 'deb', 'name': 'minetest' }] }])
# published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # from django.utils.translation import ugettext_lazy as _ from plinth.clients import validate clients = validate([{ 'name': _('Deluge'), 'description': _('Bittorrent client written in Python/PyGTK'), 'platforms': [{ 'type': 'web', 'url': '/deluge' }, { 'type': 'package', 'format': 'deb', 'name': 'deluge', }] }])
clients = validate([{ 'name': _('Minetest'), 'platforms': [{ 'type': 'download', 'os': 'gnu-linux', 'url': 'https://www.minetest.net/downloads/' }, { 'type': 'download', 'os': 'macos', 'url': 'https://www.minetest.net/downloads/' }, { 'type': 'download', 'os': 'windows', 'url': 'https://www.minetest.net/downloads/' }, { 'type': 'store', 'os': 'android', 'store_name': 'f-droid', 'url': store_url('f-droid', 'net.minetest.minetest') }, { 'type': 'store', 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', 'net.minetest.minetest') }, { 'type': 'package', 'format': 'deb', 'name': 'minetest' }] }])
clients = validate([{ 'name': _('Syncthing'), 'platforms': [{ 'type': 'package', 'format': 'deb', 'name': 'syncthing', }, { 'type': 'package', 'format': 'brew', 'name': 'syncthing', }, { 'type': 'download', 'os': 'gnu-linux', 'url': _download_url, }, { 'type': 'download', 'os': 'macos', 'url': _download_url, }, { 'type': 'download', 'os': 'windows', 'url': _download_url, }, { 'type': 'store', 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', _package_id) }, { 'type': 'store', 'os': 'android', 'store_name': 'f-droid', 'url': store_url('f-droid', _package_id) }, { 'type': 'web', 'url': '/syncthing' }] }])
# You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # from django.utils.translation import ugettext_lazy as _ from plinth import cfg from plinth.clients import validate from plinth.utils import format_lazy clients = validate([{ 'name': _('Gobby'), 'description': _('Gobby is a collaborative text editor'), 'usage': format_lazy( _('Start Gobby and select "Connect to Server" and ' 'enter your {box_name}\'s domain name.'), box_name=_(cfg.box_name)), 'platforms': [{ 'type': 'download', 'os': 'windows', 'url': 'https://github.com/gobby/gobby/wiki/Download' }, { 'type': 'package', 'format': 'deb', 'name': 'gobby' }] }])
# # This file is part of Plinth. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # from django.utils.translation import ugettext_lazy as _ from plinth.clients import validate clients = validate([{ 'name': _('ikiwiki'), 'platforms': [{ 'type': 'web', 'url': '/ikiwiki' }] }])
from django.utils.translation import ugettext_lazy as _ from plinth.modules.backups.api import validate as validate_backup from plinth.clients import store_url, validate clients = validate([{ 'name': _('Tiny Tiny RSS (Fork)'), 'platforms': [{ 'type': 'store', 'os': 'android', 'store_name': 'f-droid', 'url': store_url('f-droid', 'org.fox.tttrss') }] }, { 'name': _('Tiny Tiny RSS'), 'platforms': [{ 'type': 'store', 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', 'org.fox.ttrss') }, { 'type': 'web', 'url': '/tt-rss' }] }]) backup = validate_backup({ 'data': { 'files': ['/var/lib/plinth/backups-data/ttrss-database.sql'] },
# # This file is part of Plinth. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # from django.utils.translation import ugettext_lazy as _ from plinth.clients import validate clients = validate([{ 'name': _('JSXC'), 'platforms': [{ 'type': 'web', 'url': '/jsxc' }] }])
clients = validate([{ 'name': _('Jitsi Meet'), 'description': _('Jitsi is a set of open-source projects that allows ' 'you to easily build and deploy secure ' 'videoconferencing solutions. At the heart of Jitsi ' 'are Jitsi Videobridge and Jitsi Meet, which let you ' 'have conferences on the internet, while other ' 'projects in the community enable other features ' 'such as audio, dial-in, recording, ' 'and simulcasting.'), 'platforms': [{ 'type': 'store', 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', _jitsi_package_id) }, { 'type': 'store', 'os': 'ios', 'store_name': 'app-store', 'url': 'https://itunes.apple.com/in/app/jitsi-meet/id1165103905' }, { 'type': 'download', 'os': 'gnu-linux', 'url': _jitsi_download_url }, { 'type': 'package', 'format': 'deb', 'name': 'jitsi' }, { 'type': 'download', 'os': 'macos', 'url': _jitsi_download_url }, { 'type': 'download', 'os': 'windows', 'url': _jitsi_download_url }] }, { 'name': _('CSipSimple'), 'platforms': [{ 'type': 'store', 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', _csipsimple_package_id) }] }])
clients = validate([{ 'name': _('DAVDroid'), 'usage': _('Enter the URL of the Radicale server (e.g. ' 'http://localhost:5232) and your user name. DAVdroid will ' 'show all existing calendars and address books and you can ' 'create new.'), 'platforms': [{ 'type': 'store', 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', 'at.bitfire.davdroid'), }] }, { 'name': _('GNOME Calendar'), 'platforms': [{ 'type': 'package', 'format': 'deb', 'name': 'gnome-calendar' }] }, { 'name': _('Evolution'), 'description': _('Evolution is a personal information management ' 'application that provides integrated mail, ' 'calendaring and address book functionality.'), 'usage': _('In Evolution add a new calendar and address book ' 'respectively with WebDAV. Enter the URL of the Radicale ' 'server (e.g. http://localhost:5232) and your user name. ' 'Clicking on the search button will list the existing ' 'calendars and address books.'), 'platforms': [{ 'type': 'package', 'format': 'deb', 'name': 'evolution' }] }])
clients = validate([{ 'name': _('WireGuard'), 'platforms': [{ 'type': 'download', 'os': 'windows', 'url': 'https://download.wireguard.com/windows-client/' 'wireguard-amd64-0.0.23.msi' }, { 'type': 'download', 'os': 'macos', 'url': 'https://itunes.apple.com/us/app/wireguard/id1451685025?ls=1&mt=12' }, { 'type': 'package', 'format': 'deb', 'name': 'wireguard' }, { 'type': 'store', 'os': 'android', 'store_name': 'f-droid', 'url': store_url('f-droid', _wireguard_package_id) }, { 'type': 'store', 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', _wireguard_package_id) }, { 'type': 'store', 'os': 'ios', 'store_name': 'app-store', 'url': 'https://itunes.apple.com/us/app/wireguard/id1441195209?ls=1&mt=8' }] }])
# # This file is part of Plinth. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # from django.utils.translation import ugettext_lazy as _ from plinth.clients import validate clients = validate([{ 'name': _('Transmission'), 'platforms': [{ 'type': 'web', 'url': '/transmission' }] }])
# SPDX-License-Identifier: AGPL-3.0-or-later """ Application manifest for Samba. """ from plinth.clients import validate from plinth.modules.backups.api import validate as validate_backup SHARES_CONF_BACKUP_FILE = '/var/lib/plinth/backups-data/samba-shares-dump.conf' clients = validate([]) backup = validate_backup({ 'data': { 'files': [SHARES_CONF_BACKUP_FILE] }, 'services': ['smbd', 'nmbd'] })
# # This file is part of Plinth. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # from django.utils.translation import ugettext_lazy as _ from plinth.clients import validate clients = validate([{ 'name': _('reStore'), 'platforms': [{ 'type': 'web', 'url': '/restore' }] }])
clients = validate([{ 'name': _('Riot'), 'platforms': [{ 'type': 'store', 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', _android_package_id) }, { 'type': 'store', 'os': 'android', 'store_name': 'f-droid', 'url': store_url('f-droid', _android_package_id) }, { 'type': 'web', 'url': 'https://riot.im/app/#/home' }, { 'type': 'download', 'os': 'gnu-linux', 'url': _riot_desktop_download_url, }, { 'type': 'download', 'os': 'macos', 'url': _riot_desktop_download_url, }, { 'type': 'download', 'os': 'windows', 'url': _riot_desktop_download_url, }] }])
_clients = validate([{ 'name': _('yaxim'), 'platforms': [{ 'type': 'store', 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', 'org.yaxim.androidclient'), }] }, { 'name': _('Bruno'), 'description': _('Bruno is a themed version of the open source ' 'yaxim app.'), 'platforms': [{ 'type': 'store', 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', 'org.yaxim.bruno') }] }, { 'name': _('ChatSecure'), 'description': _('ChatSecure is a free and open source ' 'messaging app that features OTR encryption ' 'over XMPP. You can connect to an existing ' 'Google account, create new accounts on ' 'public XMPP servers (including via Tor), ' 'or even connect to your own server for ' 'extra security.'), 'platforms': [{ 'type': 'store', 'os': 'ios', 'store_name': 'app-store', 'url': 'https://itunes.apple.com/us/app/chatsecure' '/id464200063' }] }, { 'name': _('Conversations'), 'platforms': [{ 'type': 'store', 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', 'eu.siacs.conversations') }] }, { 'name': _('Dino'), 'platforms': [{ 'type': 'download', 'os': 'gnu-linux', 'url': 'https://github.com/dino/dino/wiki/Distribution-Packages', }] }, { 'name': _('Gajim'), 'platforms': [{ 'type': 'package', 'format': 'deb', 'name': 'gajim' }, { 'type': 'download', 'os': 'windows', 'url': 'https://gajim.org/downloads.php' }] }])
clients = validate([{ 'name': _('Mumble'), 'platforms': [{ 'type': 'download', 'os': 'windows', 'url': 'https://wiki.mumble.info/wiki/Main_Page' }, { 'type': 'download', 'os': 'macos', 'url': 'https://wiki.mumble.info/wiki/Main_Page' }, { 'type': 'package', 'format': 'deb', 'name': 'mumble' }, { 'type': 'store', 'os': 'ios', 'store_name': 'app-store', 'url': 'https://itunes.apple.com/us/app/mumble/id443472808' }] }, { 'name': _('Plumble'), 'platforms': [{ 'type': 'store', 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', _plumble_package_id) }, { 'type': 'store', 'os': 'android', 'store_name': 'f-droid', 'url': store_url('f-droid', _plumble_package_id) }] }, { 'name': _('Mumblefly'), 'platforms': [{ 'type': 'store', 'os': 'ios', 'store_name': 'app-store', 'url': 'https://itunes.apple.com/dk/app/mumblefy/id858752232' }] }])
from plinth.utils import format_lazy clients = validate([{ 'name': _('dandelion*'), 'description': _('It is an unofficial webview based client for the ' 'community-run, distributed social network diaspora*'), 'platforms': [{ 'type': 'store', 'os': 'android', 'store_name': 'f-droid', 'url': store_url('f-droid', 'com.github.dfa.diaspora_android'), }] }, { 'name': _('diaspora*'), 'platforms': [{ 'type': 'web', 'url': format_lazy('https://diaspora.{host}', host=diaspora.get_configured_domain_name() if diaspora.is_setup() else "<please-setup-domain-name>") }] }])