@ -42,10 +42,12 @@
services.postgresql = {
<link linkend= "opt-services.postgresql.enable" > enable</link> = true;
<link linkend= "opt-services.postgresql.initialScript" > initialScript</link> = pkgs.writeText "psql-init" ''
CREATE ROLE nextcloud WITH LOGIN;
CREATE DATABASE nextcloud WITH OWNER nextcloud;
'';
<link linkend= "opt-services.postgresql.ensureDatabases" > ensureDatabases</link> = [ "nextcloud" ];
<link linkend= "opt-services.postgresql.ensureUsers" > ensureUsers</link> = [
{ name = "nextcloud";
ensurePermissions."DATABASE nextcloud" = "ALL PRIVILEGES";
}
];
};
# ensure that postgres is running *before* running the setup
@ -63,17 +65,22 @@
are used internally to configure an HTTP server using
<literal > <link xlink:href= "https://php-fpm.org/" > PHP-FPM</link> </literal>
and <literal > nginx</literal> . The <literal > config</literal> attribute set is
used for the <literal > config.php</literal> which is used for the
application's configuration. <emphasis > Beware: this isn't entirely pure
since the config is modified by the application's runtime!</emphasis>
used by the imperative installer and all values are written to an additional file
to ensure that changes can be applied by changing the module's options.
</para>
<para >
In case the application serves multiple host s (those are checked with
In case the application serves multiple domain s (those are checked with
<literal > <link xlink:href= "http://php.net/manual/en/reserved.variables.server.php" > $_SERVER['HTTP_HOST']</link> </literal> )
those can be added using
it's needed to add them to
<literal > <link linkend= "opt-services.nextcloud.config.extraTrustedDomains" > services.nextcloud.config.extraTrustedDomains</link> </literal> .
</para>
<para >
Auto updates for Nextcloud apps can be enabled using
<literal > <link linkend= "opt-services.nextcloud.autoUpdateApps.enable" > services.nextcloud.autoUpdateApps</link> </literal> .
</para>
</section>
<section xml:id= "module-services-nextcloud-pitfalls-during-upgrade" >
<title > Pitfalls</title>
@ -87,35 +94,24 @@
</para>
<para >
Right now changes to the <literal > services.nextcloud.config</literal>
attribute set won't take effect after the first install (except
<literal > <link linkend= "opt-services.nextcloud.config.extraTrustedDomains" > services.nextcloud.config.extraTrustedDomains</link> </literal> )
since the actual configuration file is generated by the NextCloud installer
which also sets up critical parts such as the database structure.
All configuration parameters are also stored in
<literal > /var/lib/nextcloud/config/override.config.php</literal> which is generated by
the module and linked from the store to ensure that all values from <literal > config.php</literal>
can be modified by the module.
However <literal > config.php</literal> manages the application's state and shouldn't be touched
manually because of that.
</para>
<para >
<emphasis > Warning: d on't delete <literal > config.php</literal> ! This file
<warning >
<para > D on't delete <literal > config.php</literal> ! This file
tracks the application's state and a deletion can cause unwanted
side-effects!</emphasis >
</para >
side-effects!</para >
</warning >
<para >
<emphasis > Warning: d on't rerun <literal > nextcloud-occ
<warning >
<para > D on't rerun <literal > nextcloud-occ
maintenance:install</literal> ! This command tries to install the application
and can cause unwanted side-effects!</emphasis>
</para>
<para >
The issues are known and reported in
<link xlink:href= "https://github.com/NixOS/nixpkgs/issues/49783" > #49783</link> ,
for now it's unfortunately necessary to manually work around these issues.
</para>
<para >
Right now app installation and configuration is done imperatively in the nextcloud web ui or via the <literal > nextcloud-occ</literal> command line utility.
You can activate auto updates for your apps via
<literal > <link linkend= "opt-services.nextcloud.autoUpdateApps.enable" > services.nextcloud.autoUpdateApps</link> </literal> .
</para>
and can cause unwanted side-effects!</para>
</warning>
</section>
</chapter>