Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,18 @@ services:
networks:
- oc_network

# As alternative to Redis, you can enable Memcached.
# See the caching configuration documentation for more details.

# memcached:
# image: memcached:latest
# container_name: owncloud_memcached
# restart: always
# ports:
# - "11211:11211"
# networks:
# - oc_network

volumes:
oc_files:
driver: local
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ ownCloud’s Transactional File Locking mechanism locks files to avoid file corr
Transactional File locking will not prevent multiple users from editing the same document, nor give notice that other users are working on the same document. Multiple users can open and edit a file at the same time and Transactional File locking does not prevent this. Rather, it prevents simultaneous file saving.

File locking is enabled by default, using the database locking backend. This places a significant load on your database. Using `memcache.locking` relieves the database load and improves performance. Admins of ownCloud servers with heavy workloads should install xref:configuration/server/caching_configuration.adoc[a memory cache] .
File locking is enabled by default, using the database locking backend. This places a significant load on your database. Using `memcache.locking` (OWNCLOUD_MEMCACHE_LOCKING) relieves the database load and improves performance. Admins of ownCloud servers with heavy workloads should install a
xref:configuration/server/caching_configuration.adoc[memory cache].
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,16 @@ The caching backends supported by ownCloud are:
* xref:apcu[APCu] +
This is a data cache only and does *not* cache any opcode. APCu is part of the Docker image.
* xref:redis[Redis] +
This is an in-memory data structure store (cache) for single and multi-server ownCloud installations, which provides file locking and can be set up in local or distributed environments. The required `php-redis` extension is already part of the Docker image. Redis is used of the Docker Compose deployment example. For details see the xref:installation/installing_with_docker.adoc#docker-compose[Installing With Docker] documentation.
This is an in-memory data structure store (cache) for single and multi-server ownCloud installations, which provides file locking and can be set up in local or distributed environments. The required `php-redis` extension is already part of the Docker image. Redis is used in the Docker Compose deployment example. For details see the xref:installation/installing_with_docker.adoc#docker-compose[Installing With Docker] documentation.
* xref:memcached[Memcached] +
This is a distributed cache for multi-server ownCloud installations and has *very limited* file locking capabilities. +
Using Memcached for distributed locking is generally not recommended. Because its nodes do not communicate with each other and data isn't persistent, locks can be released unexpectedly or lost entirely if a server restarts. For reliable locking, Redis is the industry standard.
+
See the following page to learn more about the https://scalegrid.io/blog/redis-vs-memcached-2021-comparison/[Redis vs. Memcached – 2021 Comparison].

[NOTE]
====
You may use _both_ a local and a distributed cache. The recommended ownCloud caches are APCu and Redis. If you do not install and enable a local memory cache you will see a warning on your ownCloud admin page. If you enable only a distributed cache in your `config.php` (`memcache.distributed`) and not a local cache (`memcache.local`) you will still see the cache warning.
You may use _both_ a local and a distributed cache. The recommended ownCloud caches are APCu and Redis. If you do not install and enable a local memory cache you will see a warning on your ownCloud admin page. If you either enable Redis or Memcached, the distributed cache will be set automatically to the respective backend.
====

=== Cache Directory Location
Expand Down Expand Up @@ -97,13 +102,21 @@ NOTE: Out of the box, every Redis instance supports 16 databases so `<dbIndex>`

Please read more about the instructions for the {redis_select_url}[select] and {redis_flushdb_url}[flushdb] command.

=== Memcached

Memcached is a reliable old-timer for shared caching on distributed servers. It performs well with ownCloud with one exception: it is not suitable to use with Transactional File Locking. This is because it does not store locks, and data can disappear from the cache at any time. Given that, Redis is the best memory cache to use.

NOTE: The `memcached` PHP extension is already embedded in the Docker image and enabled.

== Configuring Memory Caching

Memory caches must be provided and explicitly configured in ownCloud by:

. When using Redis, it must be provided by either as described in the xref:installation/installing_with_docker.adoc#docker-compose[Docker Compose] example of the installation documentation or by other means.
. When using Redis or Memcached, it must be provided by either as described in the xref:installation/installing_with_docker.adoc#docker-compose[Docker Compose] example of the installation documentation or by other means.
. Configuring the caches used.

Note that the `OWNCLOUD_MEMCACHE_LOCKING` environment variable corresponds to the configuration setting `memcache.locking`. However, there is no counterpart for the setting `memcache.distributed`, as it is set automatically based on the caching type enabled.

See the
xref:configuration/server/config_sample_php_parameters.adoc#memory-caching-backend-configuration[Memory caching backend configuration]
for an overview of all possible config parameters, as the examples below only show basic configuration settings.
Expand All @@ -129,13 +142,14 @@ If you select Redis, you must enable it via environment variables. The example v
----
OWNCLOUD_REDIS_ENABLED=true
OWNCLOUD_REDIS_HOST=redis
OWNCLOUD_REDIS_PORT=6379
----

* If Redis is not enabled, none of the other Redis configurations will be taken into account.
* If Redis is enabled, two additional configurations are set automatically. Note that these configs are not configurable via environment variables:
* If Redis is enabled, two additional configurations are set automatically:
+
--
[source,.php]
[source,php]
----
'memcache.locking' => '\OC\Memcache\Redis'
'memcache.distributed' => '\OC\Memcache\Redis'
Expand All @@ -151,9 +165,52 @@ OWNCLOUD_FILELOCKING_ENABLED=true
OWNCLOUD_MEMCACHE_LOCAL='\OC\Memcache\Redis'
----


CAUTION: ownCloud provides many configuration options for Redis, including enhanced security features such as password protection. See the Redis security URL and the ownCloud environment variables for more details.

== Memcached Configuration

If you select Memcached, you must enable it via environment variables. The example value for the host setting assumes that you have used the ownCloud Docker Compose deployment example. Adapt this value for your setup.

[source,.env]
----
OWNCLOUD_MEMCACHED_ENABLED=true
OWNCLOUD_MEMCACHED_HOST=memcached
OWNCLOUD_MEMCACHED_PORT=11211
----

////
[NOTE]
====
If you are using multiple memcached servers, omit `OWNCLOUD_MEMCACHED_PORT` and use the following notation:

`OWNCLOUD_MEMCACHED_HOST="'host_1',port1,host_2',port_2"`
====
////

Additional memcached options can be set with the environment variable `OWNCLOUD_MEMCACHED_OPTIONS`.

* If Memcached is not enabled, none of the other Memcached configurations will be taken into account.
* If Memcached is enabled, two additional configurations are set automatically:
+
--
[source,php]
----
'memcache.locking' => '\OC\Memcache\Memcached'
'memcache.distributed' => '\OC\Memcache\Memcached'
----
--

=== Clearing the Memcached Cache

The Memcached cache can be flushed from the command line, using a range of common Linux/Unix tools including netcat and telnet. The following example uses telnet to log in, run the flush_all command, and log out:

[source,bash]
----
telnet <memcached-hostname> 11211
flush_all
quit
----

== Deployment Type Configuration Examples

These examples provide an overview. Adapt them to suit your environment and needs.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1667,7 +1667,7 @@ Server details for one or more memcached servers to use for memory caching
....

=== Define connection options for memcached
For more details please see http://apprize.info/php/scaling/15.html
For more details please see https://www.php.net/manual/en/memcached.constants.php

==== Code Sample

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,11 @@ image:configuration/server/import-ssl-cert-2.png[Click 'More information' in Fir

== Site-Wide SSL Import

The personal imports only work for individual users. You can enable site-wide SSL certificates for all of your users on your ownCloud admin page. To enable this, you must add this line to your `config.php` file:
The personal imports only work for individual users. You can enable site-wide SSL certificates for all of your users on your ownCloud admin page. To enable this, you must add this environment variable:

[source,.env]
----
_CERTIFICATE_MANAGEMENT=true
OWNCLOUD_ENABLE_CERTIFICATE_MANAGEMENT=true
----

Then you’ll have an btn:[Import root certificate] button on your admin page, just like the one on your personal page. Navigate to it by clicking menu:Settings[General > SSL Root Certificates] which is located almost at the bottom.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Logging level parameters are set in the config/config.php file, or on the Admin

=== ownCloud

All log information will be written to a separate log file which can be viewed using the log viewer on your Admin page. By default, a log file named *owncloud.log* will be created in the directory which has been configured by the *datadirectory* parameter in config/config.php. As an example see:
All log information will be written to a separate log file which can be viewed using the log viewer on your Admin page. By default, a log file named *owncloud.log* will be created in the directory which has been configured by the *datadirectory* parameter in config/config.php.

The path assigned to the `datadirectory` configuration key is the value of the `OWNCLOUD_VOLUME_FILES` environment variable.

Expand Down Expand Up @@ -78,7 +78,7 @@ The following example demonstrates how the conditions can look like.
[source,.env]
----
OWNCLOUD_LOG_CONDITIONS=\
'[{"apps":["files_external"],\
'[{"apps":["comments"],\
'users':['user1','user2'],\
"loglevel":0},\
'log_secret':57b58edb6637fe3059b3595cf9c41b9'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@

== Installation

Install and enable the {oc-marketplace-url}/apps/customgroups[Custom Groups] app if not already installed with your bundle. The Custom Groups app requires the email settings to be configured in your ownCloud setup, because you need to be able to invite the group members by email.
Enable the `Custom Groups` app if not already done so. The Custom Groups app requires the email settings to be configured in your ownCloud setup, because you need to be able to invite the group members by email.

== Configuration

Check your Custom Groups app's configuration in menu:Settings[Admin > Sharing > Custom Groups]. There you can set the following items:

image::configuration/user/custom_groups/custom_groups.png[]
image::configuration/user/custom_groups/custom_groups.png[image, width=350]

=== Overriding Default Behavior

Expand Down Expand Up @@ -54,4 +54,4 @@ Assigning custom group admins can only be done via the browser. In case the grou

See the following image as example of user related settings and the https://doc.owncloud.com/webui/next/classic_ui/personal_settings/custom_groups.html[Custom Groups] section in the user manual for details:

image::configuration/user/custom_groups/user_settings_custom_groups.png[]
image::configuration/user/custom_groups/user_settings_custom_groups.png[image, width=350]
8 changes: 3 additions & 5 deletions modules/admin_manual/pages/configuration/user/guests_app.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,19 @@ NOTE: Guest users do not have storage space and can only work on content that is

// video::L42PBHgqKVI[youtube,width=640,height=360]

== Installation
== Enable the App

Install and enable the {oc-marketplace-url}/apps/guests[Guests] app if not already installed with your bundle. The Guests app requires the email settings to be configured in your ownCloud setup, because you need to be able to invite your guests by email.
Enable the `Guests` app if not already done so. The Guests app requires the email settings to be configured in your ownCloud setup, because you need to be able to invite your guests by email.

== Configuration

Check your Guests app's configuration in menu:Settings[Admin > Sharing]. There you can change the Guest's **group name** and add to or exclude apps from the app **whitelist** of the Guests app. Guests cannot access apps that are not on that list.

With a blocklist, an admin can block domains for guest invitations:

* Up to Guests 0.12.1, the blocklist entries were a suffix match. An entry like `example.com` would also block `user@otherexample.com` -- this was considered an error and admins relying on this feature must review their blocklists when upgrading to Guests 0.12.2.

* Starting with Guests 0.12.2, the entries in the blocklist are exact matches. That means, that an entry `example.com` blocks `user@example.com`, but `user@mail.example.com` is *not* blocked. Admins are advised to list all possible subdomains explicitly.

image::configuration/user/guest_app/guest_app_settings.png[width=470]
image::configuration/user/guest_app/guest_app_settings.png[width=350]

== Troubleshooting

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ Login policies are handled via groups that users are members of and maintained v

If no login policy is activated in the `loginPolicy.order` list, ownCloud will work normally. Only the policies in the `loginPolicy.order` list are used.

To enable login policies, use the following example:
To enable login policies, use the following example. Multiple values are comma separated without blanks:

[source,php]
[source,.env]
----
'loginPolicy.order' => ['OC\Authentication\LoginPolicies\GroupLoginPolicy'],
OWNCLOUD_LOGIN_POLICY_ORDER='OC\Authentication\LoginPolicies\GroupLoginPolicy'
----

After enabling the `loginPolicy.order`, the configuration of the `groupLoginPolicy` can be made. The key definition below must be set according to the needs and the description in xref:configuration/server/config_sample_php_parameters.adoc#configuration-of-the-group-login-policy[Configuration of the Group Login Policy]:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,16 +35,15 @@ TIP: Kopano Konnect can be set up via Docker. Images are available on Docker Hub

To set up ownCloud Server to work with OpenID Connect, you have to:

1. Install the {oc-marketplace-url}/apps/openidconnect[OpenID Connect App]
2. Configure `config.php`
1. Enable the OpenID Connect App
2. Configure via environment variables
3. Set up service discovery

TIP: It is recommended to first figure out all configurations on a test system and to bring it to the production system once it's proven to work. Enabling the OpenID Connect app on the production system should be the last step in this process as it will then advertise OpenID Connect to all clients.

==== List of OpenID Connect config.php Parameters

Follow this link to read more about the
xref:configuration/server/config_apps_sample_php_parameters.adoc#app-openid-connect-oidc[OIDC config.php parameters] available to configure OpenID Connect on ownCloud Server.
Follow this link to read more about the xref:configuration/server/config_apps_sample_php_parameters.adoc#app-openid-connect-oidc[OIDC config.php parameters] available to configure OpenID Connect on ownCloud Server.

==== Example config.php

Expand All @@ -65,9 +64,9 @@ An example snippet that can be added to `config.php` is shown below.
],
----

=== Register ownCloud Clients
=== Register ownCloud Mobile and Desktop App

To allow the ownCloud clients (Web/Desktop/Android/iOS) to interact with the identity provider, you have to register them as clients. In the case of Kopano Konnect, you can do this using Konnect's `identifier-registration.yaml`. The default values for the regular ownCloud clients are shown below. Other environments might require a different set of values.
To allow the ownCloud apps (Web/Desktop/Android/iOS) to interact with the identity provider, you have to register them as clients. In the case of Kopano Konnect, you can do this using Konnect's `identifier-registration.yaml`. The default values for the regular ownCloud clients are shown below. Other environments might require a different set of values.

[TIP]
====
Expand Down
Loading