Configuration

Web Server

Apache need the mod_rewrite extension to make XBackBone work properly.

If you do not use Apache, or the Apache .htaccess is not enabled, set your web server so that the static/ folder is the only one accessible from the outside, otherwise even private uploads and logs will be accessible!

If you are using NGINX, you can find an example configuration nginx.conf in the project repository.

Maintenance Mode

Maintenance mode is automatically enabled during an upgrade using the upgrade manager. You can activate it manually by editing the config.php, and adding this line:

return array(
    ...
    'maintenance' => true,
);

Database support

Currently, is supported MySQL/MariaDB and SQLite3.

For big installations, MySQL/MariaDB is recommended.

Example config:

return array(
    ...,
    'db' => array (
        'connection' => 'mysql', // sqlite or mysql
        'dsn' => 'host=localhost;port=3306;dbname=xbackbone', // the path to db, if sqlite
        'username' => 'xbackbone', // null, if sqlite
        'password' => 's3cr3t', // null, if sqlite
    ),
);

LDAP Authentication

Since the release 3.1, the LDAP integration can be configured.

Edit the config.php, and add the following lines: This configuration requires anonymous LDAP access

return array(
    ...
    'ldap' => array(
        'enabled' => true, // enable it
        'host' => 'ad.example.com', // set the ldap host
        'port' => 389, // ldap port
        'base_domain' => 'dc=example,dc=com', // the base_dn string
        'user_domain' => 'ou=Users', // the user dn string
        'rdn_attribute' => 'uid=', // the attribute to identify the user
    ),
);

The following configuration snippet enables authenticated LDAP user lookups

return array(
    ...
    'ldap' => array(
        'enabled' => true, // enable it
        'schema' => 'ldap', // use 'ldap' or 'ldaps' Default is 'ldap'
        'host' => 'ad.example.com', // set the ldap host
        'port' => 389, // ldap port
        'base_domain' => 'dc=example,dc=com', // the base_dn string
        'search_filter' => '(&(objectClass=user)(sAMAccountName=????))', // ???? is replaced with user provided username
        'rdn_attribute' => 'sAMAccountName', // the attribute to use as username
        'service_account_dn' => 'cn=xbackbone,cn=Users,dc=example,dc=com', // LDAP Service Account Full DN
        'service_account_password' => 'examplepassword',
    ),
);

Enabling LDAP over TLS. Make sure to update port number. Merge with your current LDAP configuration.

return array(
    ...
    'ldap' => array(
    	'schema' => 'ldaps',  //defaults to 'ldap'
    	'port' => 636, 
    ),
);

Enabling StartTLS upgrade. Merge with your current LDAP configuration.

return array(
    ...
    'ldap' => array(
    	...
    	'useStartTLS' => true,  //defaults to false 
    ),
);

The ‘schema’ => ‘ldaps’ and ‘useStartTLS’=> true configuration directives are mutually exclusive. Do no use them together.

By activating this function, it will not be possible for users logging in via LDAP to reset the password from the application (for obvious reasons), and it will also be possible to bring existing users under LDAP authentication.

Storage drivers

XBackBone supports these storage drivers (with some configuration examples):

  • Local Storage (default)
    return array(
      ...
      'storage' => array (
          'driver' => 'local',
          'path' => '/path/to/storage/folder',
      ),
    );
    
  • Amazon S3
    return array(
      ...
      'storage' => array (
          'driver' => 's3',
          'key' => 'the-key',
          'secret' => 'the-secret',
          'region' => 'the-region',
          'bucket' => 'bucket-name',
          'path' => 'optional/path/prefix',
      ),
    );
    

    For any filesystem S3-compatible, it’s possible to specify an endpoint (for i.e. Minio)

    return array(
      ...
      'storage' => array (
          'driver' => 's3',
          'endpoint' => 'my-custom-endpoint',
          'key' => 'the-key',
          'secret' => 'the-secret',
          'region' => 'the-region',
          'bucket' => 'bucket-name',
          'path' => 'optional/path/prefix',
      ),
    );
    
  • Dropbox
    return array(
      ...
      'storage' => array (
          'driver' => 'dropbox',
          'token' => 'the-token',
      ),
    );
    
  • FTP(s)
    return array(
      ...
      'storage' => array (
          'driver' => 'ftp',
          'host' => 'ftp.example.com',
          'port' => 21,
          'username' => 'the-username',
          'password' => 'the-password',
          'path' => 'the/prefix/path/',
          'passive' => true/false,
          'ssl' => true/false,
      ),
    );
    
  • Google Cloud Storage
    return array(
      ...
      'storage' => array (
          'driver' => 'google-cloud',
          'project_id' => 'the-project-id',
          'key_path' => 'the-key-path',
          'bucket' => 'bucket-name',
      ),
    );
    

Changing themes

XBackBone supports all bootswatch.com themes.

From the web UI:

  • Navigate to the web interface as admin -> System Menu -> Choose a theme from the dropdown.

From the CLI:

  • Run the command php bin/theme to see the available themes.
  • Use the same command with the argument name (php bin/theme <THEME-NAME>) to choose a theme.
  • If you want to revert back to the original bootstrap theme, run the command php bin/theme default.

Clear the browser cache once you have applied.

Change app install name

Add to the config.php file an array element like this:

return array(
    'app_name' => 'This line will overwrite "XBackBone"',
    ...
);