Otras configuraciones - HostingChile/nextcloud GitHub Wiki
Si se quiere modificar alguna de las configuraciones se puede agregar un archivo de configuración de docker-compose en la carpeta /home/nextcloud/custom
con las directivas necesarias (https://docs.docker.com/compose/extends/). Estos archivos son ignorados por el control de versiones, por lo que hay que respaldarlos de manera manual.
Por ejemplo, para hacer que la base de datos sea accesible remotamente se puede crear el archivo /home/nextcloud/custom/docker-compose.database.yml
con el siguiente contenido:
version: '3'
services:
database:
ports:
- 3306:3306
Otro ejemplo interesante es querer cambiar la imagen con la cual se crean los contenedores, por ejemplo para que incluya alguna librería, script, software o extensión PHP adicional que use esta instalación de Nextcloud. En el siguiente ejemplo se muestran los archivos que hay que crear para agregar la extensión de PHP mailparse a las imágenes:
/home/nextcloud/custom/Dockerfile-Nextcloud
FROM nextcloud:latest
RUN pecl install mailparse \
&& docker-php-ext-enable mailparse
/home/nextcloud/custom/docker-compose.nextcloud.yml
version: '3'
services:
nextcloud:
image: nextcloud-custom
build:
context: ./custom
dockerfile: Dockerfile-Nextcloud
Recuerde modificar la variable de entorno COMPOSE_FILE
como aparece en las instrucciones de instalación. Se debe agregar incluyendo custom/
(custom/docker-compose.mysql.yml
en el primer ejemplo). Recuerde que se debe volver a levantar los contenedores con docker-compose up -d
para que los cambios hagan efecto.
- Eliminar la variables de entorno
LETSENCRYPT_*
de los archivosdocker-compose.*.yml
que corresponda. - Copiar en
/home/nextcloud/data/proxy/certs/
los archivos .crt y .key que componen el certificado. El nombre de estos archivos debe ser exactamente igual al nombre delVIRTUAL_HOST
del servicio, terminado con .crt y .key
Con esto el contendor proxy generará el virtualhost correspondiente para que use el certificado.
Para agregar extensiones de archivos que puedan ser editadas en el editor integrado (aplicación Text editor (files_texteditor)) se debe crear el archivo vim /home/nextcloud/data/nextcloud/config/mimetypemapping.json
y agregar extensiones siguiendo el formato:
{
"ext": ["text/plain"],
"ext2": ["text/plain"]
}
Esto hará que los archivos terminados en .ext
y .ext2
sean abiertos por el editor.
Importante: Este cambio afecta sólo a los archivos que sean subidos después del cambio. Para que afecte a los archivos que ya existian es necesario borrar estos archivos de la tabla filecache de la base de datos. Esto hará que los archivos ya no sean visualziados en Nextcloud, por lo que hay que volver a indexarlos con docker-compose exec --user www-data nextcloud php occ files:scan <usuario>
. En caso de que afecte a más de un usario, se debe usar docker-compose exec --user www-data nextcloud php occ files:scan --all
.
A veces es necesario agregar extensiones de PHP a Nextcloud para el uso de algunas apps. Para agregar extensiones se deben seguir las instrucciones indicadas en https://hub.docker.com/_/php/ en la sección How to install more PHP extensions. Para ver el listado de extensiones PHP actualmente activadas se puede usar el comando docker-compose exec nextcloud php -m
Los cambios que se hagan a los contenedores se pierden al eliminarlos, por lo tanto para hacer permanentes los cambios hay que considerar lo indicado en Modificar/agregar configuraciones a docker-compose.