build files for making podman containers
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1.8 KiB

Deploy Nextcloud Container

Configure System Settings for Redis

Redis depends on a few kernel/system parameters being set appropriately to run well. Since these are kernel parameters, they can only be set on the host (not the container), and must be configured as root.

Firstly, the overcommit_memory system setting being set to zero may cause Redis to fail to background save. Make sure it is set to 1 by running:

sysctl vm.overcommit_memory=1

Additionally, Redis has fairly serious latency issues with THP (Transparent Huge Pages) enabled, so it is best to disable it. Disable them by running:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

You can make these settings persistent accross reboots by adding them to the container start script in /etc/containers/startup.sh.

Configure HAproxy

Add the following directives to your HAproxy configuration:

frontend www
        bind :80
        mode http

        # Reroute caldav/carddav auto-discover to appropriate address (i.e. Nextcloud)
        # Put "code 301" after "redirect" to make it a 301 redirect
        http-request redirect location /nextcloud/remote.php/dav/ if { path /.well-known/caldav /.well-known/carddav }

        # Send to nextcloud if path begins with /nextcloud
        use_backend nextcloud if { path_beg /nextcloud }

backend nextcloud
        mode http
        option forwardfor
        http-request set-header X-Forwarded-Proto https if { ssl_fc }
        # Remove the "/nextcloud" part from the path
        # WARNING: due to limitations in the config parser, the characters ")","]", or ","
        # are NOT allowed in any regular expression
        http-request set-path "%[path,regsub(^/nextcloud,)]"
        server nc-1 127.0.0.1:9080

And make sure to reload the configuration by running:

service haproxy reload