nextcloud
: Install and manage Nextcloud
nextcloud::app_config
: Set configuration options for Nextcloud appsnextcloud::apps
: Manage Nextcloud appsnextcloud::config
: Set configuration options for Nextcloudnextcloud::cron
: Configure background cron jobs for Nextcloudnextcloud::hpb
: Configure Nextcloud's High Performance Back-end (HPB)nextcloud::install
: Download and extract the distribution archivenextcloud::pre_install
: Pre installation tasksnextcloud::update
: Perform required tasks to update Nextcloud
nextcloud::app_command
: Run a command for a Nextcloud appnextcloud::config_command
: Set or remove a single configuration valuenextcloud::install::distribution
: Download and extract the distribution archive
nextcloud::create_config_resources
: Create nextcloud::config_command resources from a nested hash (e.g. from hiera)
Install and manage Nextcloud
The following parameters are available in the nextcloud
class.
Data type: String
Specifies the initial password for the Nextcloud admin user.
Data type: String
Specifies the username for the Nextcloud admin.
Data type: Hash
Specifies a list of Nextcloud apps and their desired state.
Data type: Hash
A hash containing configuration options for Nextcloud apps. The hash should be in the format: { 'my_app_name' => { 'setting1' => 'xyz123', 'setting2' => 'blah', }, }
Data type: Integer
Specifies the time to wait for install/update/maintenance commands to complete. Keep in mind that several commands may take a few hours to complete, depending on the size of your installation.
Data type: Hash
A hash containing configuration options for Nextcloud.
Data type: Hash
Specifies a list of cron jobs that should be added when
$manage_cron
is enabled.
Data type: Stdlib::Compat::Absolute_path
Specifies the directory where Nextcloud will store user data. It MUST reside outside of Nextcloud's installation directory.
Data type: Stdlib::Compat::Absolute_path
A file that is required by the module to work properly. This value MUST NOT be changed, because the path is hardcoded in several places.
Data type: String
A date command that will be used when checking if $post_update_cmd
should be executed.
Data type: String
The database driver that Nextcloud should use.
Data type: String
The database host that Nextcloud should use.
Data type: String
The database name that Nextcloud should use.
Data type: String
The database password that Nextcloud should use.
Data type: String
The database user that Nextcloud should use.
Data type: Boolean
Whether to enable additional output for debugging purposes.
Data type: String
Specifies the name of the HPB app to be installed.
Data type: String
Specifies the relative path to the binary of the HPB app.
Data type: Stdlib::Compat::Absolute_path
Specifies the PID file for the HPB service.
Data type: Integer
Specifies the port for the HPB service.
Data type: Stdlib::Compat::Absolute_path
Specifies the full path to the HPB service config file.
Data type: Enum['running', 'stopped']
Specifies the desired state of the HPB service.
Data type: Stdlib::Compat::Absolute_path
Specifies the full path to the HPB service definition / startup script.
Data type: String
Specifies the file mode for the HPB service definition / startup script.
Data type: String
Specifies the name for the HPB service.
Data type: Boolean
Whether to download and extract the release distribution files, switch the symlink to the specified release. On new installs it also runs the required PHP commands to install Nextcloud. When disabled these commands need to be run manually and some features may not work as expected (not recommended).
Data type: Stdlib::Compat::Absolute_path
Specifies the base directory where Nextcloud should be installed. A new subdirectory for each version will be created.
Data type: Boolean
Whether to manage Nextcloud apps. They can be installed, removed, enabled or disabled.
Data type: Boolean
Whether to manage Nextcloud's background cron job(s).
Data type: Boolean
Whehter to manage Nextcloud's notify_push app, the High Performance Back-end (HPB).
Data type: Boolean
Whether to setup and maintain PHP (FPM/CLI) and install modules needed for Nextcloud.
Data type: Boolean
Whether to setup and maintain a local Redis server.
Data type: Boolean
Whether to maintain a symlink for the current version of Nextcloud. This must be enabled for the module to work as expected.
Data type: Variant[Stdlib::HTTPUrl,Stdlib::HTTPSUrl]
Specifies the base URL where the distribution archive can be downloaded.
Data type: String
Specifies the content of the PATH environment variable when running commands.
Data type: Hash
Specifies a list of PHP extensions that should be installed when
$manage_php
is enabled.
Data type: String
An optional command that should be executed after performing an update.
Data type: Enum['rc', 'systemd']
The operating system's service manager.
Data type: String
A stat command that will be used when checking if $post_update_cmd
should be executed.
Data type: Stdlib::Compat::Absolute_path
A file that is required by the module to work properly. This value MUST NOT be changed, because the path is hardcoded in several places.
Data type: String
Specifies the name of the symlink. This is considered to represent Nextcloud's home directory. It should be used as DocumentRoot and MUST NOT be changed after completing the Nextcloud installation.
Data type: String
Specifies the name of the group that is used by the webserver and/or PHP FPM. It will be used to set proper file permission for Nextcloud.
Data type: String
Specifies the name of the user that is used by the webserver and/or PHP FPM. It will be used as owner for the Nextcloud installation files and it will be used to run optional commands.
Data type: Variant[Boolean, Enum['none']]
Whether to run the required PHP commands to update Nextcloud. When disabled,
these commands need to be run manually and some features may not work as
expected. Note that this does NOT prevent the module from switching the
installation directory to a newer version, it just skips the execution of
Nextcloud's update commands. To completely disable all updates, the parameter
should be set to none
(not recommended).
Data type: Optional[String]
Optional parameter to specify the FQDN of the host where all critical operations should be performed. This includes operations such as the initial installation, update installations, config commands and all app commands. Limiting these operations to a single host should prevent race conditions.
Default value: undef
Data type: String
Specifies the version of Nextcloud that should be installed.
Run a command for a Nextcloud app
The following parameters are available in the nextcloud::app_command
defined type.
Data type: String
The name of the app.
Default value: $title
Data type: Enum['install','remove','enable','disable','install_disable','post_update']
The app command that should be executed.
Set or remove a single configuration value
The following parameters are available in the nextcloud::config_command
defined type.
Data type: Variant[Boolean, Integer, String]
The configuration key that should be altered. If prefixed with DELETE:
then the key will be completely removed from configuration.
Default value: $title
Data type: Enum['app', 'system']
Specifies whether it is a system or app configuration value.
Default value: 'system'
Data type: Variant[Boolean, Integer, String]
The configuration value that should be set.
Data type: Variant[Boolean, Integer, String]
The configuration key to find out whether it needs to be altered.
Data type: Variant[Boolean, Integer, String]
The configuration verify to find out whether it needs to be altered.
Download and extract the distribution archive
The following parameters are available in the nextcloud::install::distribution
defined type.
Data type: Optional[String]
An optional identifier that can be used to prevent the archive job from being executed multiple times by remembering its state. This is most useful to distinguish between an initial install and an update.
Default value: undef
Type: Puppet Language
Create nextcloud::config_command resources from a nested hash, suitable for conveniently loading values from hiera. The key-value pairs from the hash represent config keys and values passed to nextcloud::config_command for simple values, Hash and Array values recursively # create nested sections.
nextcloud::create_config_resources(Hash[String, NotUndef] $config_hash, Array[String] $sections = [])
Create nextcloud::config_command resources from a nested hash, suitable for conveniently loading values from hiera. The key-value pairs from the hash represent config keys and values passed to nextcloud::config_command for simple values, Hash and Array values recursively # create nested sections.
Returns: Any
Data type: Hash[String, NotUndef]
A hash of (non-hierarchical) key names mapped to values.
Data type: Array[String]
The section names of the hierarchical key, will usually only be specified on recursive calls from within this function itself.