User:Maffblaster/Infrastructure

Article description::A place where I keep some infrastructure tips.

PHP
Check for the following PHP modules to be available (per upstream's installation document). There should be 16 modules available:

Verify one of three possible modules exist for the database connector. In this instance, MariaDB will be the application's database:

Generally recommended modules:

Recommended for instances hosting photos/images:

Recommended for enhanced server performance is to pair Nextcloud with memcached. This php module is a PECL extension and is installed separately from php itself. On Gentoo, the php module is available in the following package

memcached package must also be installed:

Verify the module is available to php.

Self sign SSL certificate
Good for a year:

Create the nginx snippets directory (if it does not exist):

Add the following files:

Fixing memory issue
From the commandline, first check for proper dependencies:

In this instance, the current PHP memory limited is advised to be adjusted up, so make the correction for the currently selected PHP implementation:

Restart PHP and then rerun the check above to verify the memory limit has been resolved.

Running the installer
Run the installer from the commandline:

Connecting to Nextcloud
Before connecting via HTTP on any host other than localhost, the trusted domain will need to be configured. This is located in the Nextcloud installation directory, followed by. Edit the file to add additional trusted domains or IP addresses to the array of values.

Modifying the production database location
Depending on the amount of users, a production database may grow quite large. By default, MySQL stories creates its data directory under the directory. This directory may be modified via the datadir variable in the file. Unless the is large enough to hold the database, consider modifying the the datadir path to a suitable location.

Configuring a production database
My default Nextcloud will use an SQLite database. While this database implementation may be good for single user testing purposes, it is not good if the system will be used in any level of production. MySQL will be the database used in this guide.

Install the package:

Add SQL to the default runlevel (OpenRC):

Configure a new SQL database. Follow the prompts as necessary. Be sure to record the root user's password in a place where it will not be lost.

Start the SQL server:

Configure PHP to use MySQL
Upstream's guide

MySqli

Fill in the following as necessary, substituting  with a new username and   with a strong, random passwords. As stated above, be sure to record this information in a secure place.

Then, from the web root, run:

Sadly a workaround is required for database conversion on Nextcloud 21.

hief image preview support
In order for Nextcloud to include render support for hief images in the web browser, Imagemagick must support the hief file format.