Skip to main content

Development Environment

Requirements

Git/Composer Installation

The following guide describes a git based installation of the HumHub platform. Please note that this is only recommended for developers and testers and should not be used in production environments. For production environments, please follow the Installation Guide for Administrators.

Database Setup

Create a MySQL/MariaDB database:

 CREATE DATABASE `humhub` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Fore more infos check the Database Setup Section.

Clone HumHub

Clone the git repository into the htdocs directory of your webserver:

git clone https://github.com/humhub/humhub.git

Run Composer

Navigate to your HumHub web-root directory and fetch your composer dependencies:

composer install

Run web installer

The HumHub web installer should now be accessible e.g. under http://localhost/humhub. Please refer to the Installation Guide for further instructions as file permissions.

Configuration

Quick Notes

  • Make sure the debug mode is enabled (default), see Enable Production Mode
  • Disable caching under Administration -> Settings -> Advanced -> Caching -> None
  • Use file based mailing Administration -> Settings -> Advanced -> E-Mail

Queue configuration

Since HumHub makes heavy use of Queued Jobs you should configure the Instant or Sync Queue for your developement environment or setup the Cronjob for a production like environment. Otherwise you'll have to run queue/run command manually in order to execute queued tasks as notifications and summary mail.

Module Loader Path

The default path under which HumHub searches for installed modules is @humhub/protected/modules. Additional search paths can be configured within @humhub/protected/config/common.php as follows:

// @humhub/protected/config/common.php
return [
'params' => [
'moduleAutoloadPaths' => ['/some/folder/modules'],
],
]

This separation should be done for custom modules which are not in the marketplace (e.g, @app/custom-modules) or for your development environment in order to define a central module directory for different test installations and prevent interference with marketplace modules.

Yii Debug Module

You may want to enable the Yii Debug Module for detailed request and query debugging. Just add the following block to your local web configuration protected/config/web.php:

return [
'bootstrap' => ['debug'],
'modules' => [
'debug' => [
'class' => 'yii\debug\Module',
'allowedIPs' => ['127.0.0.1', '::1'],
],
]
];

Update your installation

Git based installations can be updated manually as follows:

  • Pull updates from git:
git pull origin master
  • Run database migrations within your HumHub protected directory:
php yii migrate/up --includeModuleMigrations=1
  • You may also need to also run a composer install after an update in order to update third party dependencies.

⚠️ Note that the HumHub Updater module won't work on git based installations, therefore you'll have to update and migrate your HumHub manually.

Production Mode

A git based installation won't run in production mode without building the production assets manually. This is also required in order to run acceptance tests.

Test Environment

Please refer to the Testing Guide for information about setting up a test environment and running tests on core custom modules.

HumHub Developer Tools

The devtools module provides some useful showcases and a module generator based on Gii.