testwiki: Home

Readme for Hubzilla addon: Default Apps

Addon Default Apps features and introduction

This inofficial addon is targeted at hub admins who want to provide a pre-defined collection of apps for some or all of their hub members. This addon extends the service_class function to System Apps and Addon Apps and may include basic app configurations. It can also initiate automated connection requests.

  • automatically activate / install apps available on the hub
  • automatically mark apps as "pinned" or "featured". ("Featured" apps appear in the Hamburger Menu, "pinned" in the Navbar on desktop view, on top of the Hamburger Menu on mobile.)
  • configure basic settings for apps, if not already set by hub member (Check if "pconfig variable is set, else set value pre-defined by service_class)
  • as service_class is used admins can create different settings for different service classes
  • automated connection requests can be preconfigured using Default Apps

More info on basic use of Hubzilla service classes

As the Default Apps addon builds upon the Hubzilla core feature "Service Classes" please refer to the main documentation for an introduction to this feature. [observer.baseurl/help/en-au/admin/administrator_guide#Service_Classes https://framagit.org/hubzilla/core/blob/master/doc/admin/administrator_guide.md#service-classes

Hubzilla hooks and database table used by Default Apps

The plugin uses the following top level settings in the service_class array:

  • default_addons
  • pinned_addons
  • featured_addons default_system_apps
  • pinned_system_apps / featured_system_apps
  • app settings (pconfig)


  • As of now a member must visit the settings page in order to activate these predefined settings. Just visiting the channel's settings page will do. This may change and be also automated to require no member interaction in a future release. /settings https://examplehub.com/settings
  • As of now the commandline output for Defaults Apps is not yet as detailed as for core service classes, instead of the app name it shows "Array". This should be simple to implement and is a recommended task for dev beginners.
  • Because Default Apps modifies channel settings without direct user intervention, use of this inofficial addon may result in seemingly unpredictable behavior with cloned channels. When an app is activated or a pconfig variable is changed on a local channel, it will also be updated on all the clones of that channel. There are no known problems with this fact, but it is something to be aware of. Settings for apps which have been installed by the admin on one hub but are not installed on another will very likely be lost on that clone's hub.

Installation and configuration Default Apps Hubzilla addon

Login to your webserver via SSH, cd to your hub's root directory and manually add the dm24 repository.

util/add_addon_repo https://framagit.org/dentm42/dm42-hz-addons dm24

After that you can either go to your admin page /admin/addons to install the Default Apps addon, or install Default Apps using the commandline.

util/addon install defaultapps

More information: help/admin/administrator_guide#Official_addons https://framagit.org/hubzilla/core/blob/master/doc/admin/administrator_guide.md#official-addons

Configuration example for system app

Add the CalDAV System App and set the "cal_first_day" feature option to true. Mark the CalDAV app as both featured and pinned.:

App::$config['service_class']['my_service_class'] = Array( 'default_system_apps' => ['CalDAV' => [ 'feature' => [ 'cal_first_day' => 1 ] ] ], 'pinned_system_apps' => ['CalDAV'], 'featured_system_apps' => ['CalDAV'] );

Configuration example for addon app

The cart addon provides an ordering and checkout cart for Hubzilla based shops. It is used as an example for admin installed addon configuration within Default Apps. The respective addon repository needs to have already been added to the hub and the respective addon installed to the hub by the admin.

App::$config['service_class']['standard'] = array('photo_upload_limit'=>2097152, 'total_identities' =>33, 'total_items' =>0, 'total_pages' =>100, 'total_channels' =>100, 'attach_upload_limit' =>2097152, 'chatters_inroom' =>20, 'default_system_apps' => ['CalDAV' => [ 'feature' => [ 'cal_first_day' => 1 ] ] ], 'pinned_system_apps' => ['CalDAV'], 'featured_system_apps' => ['CalDAV'], );

Configuration example for automated channel default_connections

Default Apps can also automate channel connections. This feature can be useful in order not to present new members with an empty channel but automatically connect them to support and announcement channels or other forums where they in turn might find other interesting channels to connect.

App::$config['service_class']['my_service_class'] = Array( 'default_connections' => ['newusers@myhub.com','usersupport@myhub.com'] );

Combining Default Apps service classes with core system classes

Certainly it is possible to combine Default Apps and core system classes.

App::$config['service_class']['my_service_class'] = Array( 'default_system_apps' => ['CalDAV' => [ 'feature' => [ 'cal_first_day' => 1 ] ] ], 'pinned_system_apps' => ['CalDAV'], 'featured_system_apps' => ['CalDAV'] ); App::$config['service_class']['my_service_class'] = Array( 'default_connections' => ['newusers@myhub.com','usersupport@myhub.com'] );