This page in other versions: master
The most common location for the configuration files will be /etc/fusionforge/config.ini and the files under /etc/fusionforge/config.ini.d/*. Note that in that directory, only files with extension ".ini" and those without an extension will be taken into account (so that files such as foo.old, foo.bak and so on are ignored). Note also that you can reference other files and directories by adding extra_config_files and extra_config_dirs variables (see below) to one of the standard files.
If you're upgrading from a version of FusionForge before 5.1, the migrate-to-ini-files.sh script should take care of migrating your setting from the previous system. In this case, you'll get /etc/fusionforge/config.ini.d/zzz-migrated-old-config and /etc/fusionforge/config.ini.d/zzz-migrated-old-secrets.
The config files are standard *.ini files as widely used in Windows, PHP and other systems. It's basically a key/value store, where there are different namespaces for the keys called sections. The variables controlling the features in the core of FusionForge are in section [core], the variables controlling the "headermenu" plugin are in section [headermenu], and so on.
For values storing a string, quoting is required when the string contains spaces, or quotes, or any kind of special character. For boolean variables, some flexibility is available, and the value can be stored as "true", "1", "on", "yes", "false", "0", "off" or "no".
Comments start with a semicolon and extend to the end of the line. Empty lines are ignored.
Variables can reference one another with the "$section/variable" syntax. For instance, in section [scmsvn], the default value for repos_path is defined in relation to the value of chroot in section [core] with the following syntax: repos_path = "$core/chroot/scmrepos/svn". If the chroot variable is set to /srv/fusionforge/chroot, then the repos_path value will automatically contain /srv/fusionforge/chroot/scmrepos/svn; other variables will also be updated accordingly, without needing to set their individual values in the config files.
Overriding defaults for a local installation
Instead of changing the contents of the defaults.ini file (or other files shipped with the distribution), it may be better to add a /etc/fusionforge/config.ini.d/zzzz-local.ini (or a similar name to make sure it is the last one in alphabetical order) which will contain local settings overriding the defaults defined earlier in other files.
Included in the /etc/fusionforge/config.ini.d directory is one of two "ini" files, which depending on your installation host will be either debian-install.ini or rpm-install.ini. These are maintained exclusively by the packaging system (DEB or RPM).
Access and debugging
If you're confused as to what value a configuration variable ends up with at the end of the parsing of the (possibly many) config files and the interpolation of variables, there's a helper script forge_get_config (available in the utils directory) that displays this value. Its usage is: "forge_get_config web_host core" (change the location of the script if it's installed elsewhere, of course). The arguments are the variable name, and the section; the section can be omitted if it's "core". Another possible invocation is "forge_get_config list-all-variables", which will give you a list of all the configuration variables, and "forge_get_config list-all-variables-values" which will display all of their values too.
Note that this script tries to behave exactly like the rest of the forge in order for the returned results to be accurate. In some cases, though, the user running the script may not have the appropriate rights to read all configuration files, and the script will exit with an error because it tries to access the database. The fix is to run the script with a environment variable that disables the loading of plugins (and the database access): "FUSIONFORGE_NO_PLUGINS=true forge_get_config web_host".
Configuration variables for section core
- allow_multiple_scm (boolean): allow a project to create multiple types of SCM repositories simultaneously. Default is no.
- allow_project_without_template (boolean): allow users to not choose a template project when registering a new project. If false, then new projects will always be based on a template (unless no such template exists, of course).
- apache_group (string): automatically set by install script or distribution package. Adjust if you need to use specitif linux group.
- apache_user (string): automatically set by install script or distribution package. Adjust if you need to use specitif linux user.
- chroot (string): path where all chrooted elements are located. (See groupdir_prefix for instance). Default is $core/data_path/chroot
- check_password_strength (boolean): enforce password complexity check when user defines his password. Complexy is: at least one uppercase letter, one lowercase, one digit, one non-alphanumeric character. Default value is no.
- custom_path: path to a directory containing customizations to index_std.php
- data_path: path on the server to locate all fusionforge file data. By default: /var/lib/fusionforge
- database_host: hostname or IP address of the database server (or empty if the DB is accessed through the Unix-domain sockets).
- database_name (string): name of the database to use.
- database_password (string): connection password for the database.
- database_port (integer): connection port for the database.
- database_user (string): user for the database connection.
- extra_config_dirs: directories containing other configuration files to read.
- extra_config_files: other individual configuration files to read.
- force_login (boolean): forbid anonymous browsing. Requires users to be logged. Default value is no.
- forge_name (string): the "visible name" of the forge. Used in webpage titles, in emails, in feedback messages, and so on. Could be set to "YourCompanyForge" for instance.
- forge_homepage_widget (boolean): turn on the widget oriented display for the main Forge landing page.
- ftp_upload_dir (string): base path to ftp homedir of projects. Requires use_ftp to be set to yes.
- groupdir_prefix (string): path where the homedir of projects is located. Default is $core/chroot/home/groups
- homedir_prefix(string): path where the homedir of users is located. Default is $core/chroot/home/users
- http_port (integer): if your forge is on a non-standard HTTP port, you'll need to set this variable accordingly.
- https_port (integer): ditto for HTTP.
- images_secure_url (string): full valid URL of remote server to deliver images of the FusionForge installation. CDN URL for instance. i.e: https://yourcdn.com/
- images_url (string): full valid URL of remote server to deliver images of the FusionForge installation. CDN URL for instance. i.e: http://yourcdn.com/
- lists_host hostname of the mailing-lists. Set it to "$core/web_host" for instance, if you run mailman on the same domain as the rest for the forge (which needs other tuning to operate fully)
- mailman_path: Mailman code installation dir (usually /usr/lib/mailman)
- mailman_data_path: Mailman data installation dir (usually /var/lib/mailman)
- mailman_cgi_path: Mailman cgi-bin directory for use in Apache configuration (depends on distros)
- project_auto_approval (boolean): if true, when users submit a project, it's automatically approved (no need for admin review). This requires project_registration_restricted=false. Also disables "New Project Submitted" notifications to people with approve_projects privilege.
- project_auto_approval_user: if project_auto_approval=true, username of the effective FusionForge user that approves the project internally (default admin); this user needs to have approve_projects privilege.
- project_registration_restricted (boolean): if true, prevent users from registering projects - useful if you don't want to accept new project requests.
- require_unique_email (boolean): whether to require that user's email addresses are unique among all users, or not
- restrict_users_visibility (boolean): limit visibility on user detail to users that are sharing projects. meaning: a user must be part of a same project to see detail of another user. Default value: no.
- scm_host (string): default hosting SCM facility. Default value: scm.$core/web_host
- scm_tarballs_path (string): Path location on server of the nightly generated scm tarball. Default value is: $core/data_path/scmtarballs
- session_key (string): set session key use by hash_mac in cookie session. Must be >4 characters. Automatically generated by installer.
- session_expire (int): set session validity in seconds. By default, it is not set.
- shell_host: host users connect to in order to manage their group htdocs/ and incoming/ shared directories; used for documentation only
- sitestats_projects_count (all | visible): some site admins are pretty obnoxious about hiding any trace of private projects; all shows the real number of hosted projects, visible shows the number of projects that are visible to the current user.
- tracker_parser_type (string): enable markdown syntax in tracker: description, comment. Disabled by default. Valid string: markdown
- unix_cipher (string): cipher uses by crypt function to encrypt stored password in database. Valid values: Plain (means no encryption!!! Do NOT use), DES, MD5, SHA256, SHA512, Blowfish. Default value: SHA512
- upload_dir (string): FRS files location on server. Default value: $core/data_path/download
- url_prefix (string): set the url_prefix used to build all URL. FusionForge URL format is: hostname/url_prefix/path
- use_docman (boolean): whether to enable the document manager feature.
- use_docman_review (boolean): to enable the document review feature. Default value is no.
- use_forum (boolean): enable forums?
- use_frs (boolean): enable file release system?
- use_ftp (boolean): enable ftp server support for projects.
- use_mail: Wether to use mailing-lists, and to allow responding to forum notifications by mail
- use_manual_uploads (boolean): allow the FRS and the docman to work on files uploaded by hand (SSH/SCP).
- use_news (boolean): use announcements.
- use_people (boolean): use the "Project Openings" /people/ feature (recruiting contributors, etc.)
- use_pm (boolean): use task trackers?
- use_project_full_list: allow displaying the full list of projects?
- use_project_tags (boolean): enable the tagging feature on projects (and the tag cloud).
- use_project_multimedia (boolean): enable projects to upload images. To use image as icon in widget project summary.
- use_project_vhost (boolean): enable projects to set aliases (CNAME) to default project URL homepage.
- use_quicknav_default (boolean): use the default behavior or leverage usage page stats. default: yes.
- use_scm (boolean): enable source control management?
- use_shell (boolean): if yes, create Unix accounts and manage remote access through SSH keys
- use_shell_limited (boolean): if yes, use FusionForge provided limited_ssh.sh script wrapper on top of SSH. Default is no.
- use_snippet (boolean): enable repository of code snippets?
- use_ssl (boolean): whether to use https:// URLs (instead of http:// ones) when possible.
- use_survey (boolean): enable project surveys?
- use_tracker (boolean): enable the generic bug/patch/support request/etc. tracker?
- use_tracker_widget_display (boolean): turn on the widget oriented display of artifact (submit & detail pages)
- use_trove (boolean): enable the project categorisation in the trove map?
- use_webdav (boolean): enable webdav support (useful for webdav access in the docman module)
- user_default_shell (string, default
/bin/bash): default shell attributed to users on the system
- user_display_contact_info (boolean): display email in the user page and the compactview
- user_notification_on_activation (boolean): forge admins will receive emails when user has validated his account.
- user_registration_restricted (boolean): only forge admins can registrate new users
- users_host: e-mail domain for user personal e-mail (usually users.$core/web_host)
- web_host: hostname of the webserver, used in many URLs.
Configuration for other sections
See each plugin for configuration