Herramientas de usuario

Herramientas del sitio


nextcloud

Nextcloud

Nextcloud es una plataforma de almacenamiento y colaboración en la nube de código abierto que permite sincronizar, compartir y acceder a archivos desde cualquier dispositivo. Ofrece funcionalidades similares a servicios como Google Drive o Dropbox, pero con la ventaja de que los datos permanecen bajo control del usuario o la organización. Además, cuenta con integración de usuarios, aplicaciones adicionales, uso compartido seguro y una interfaz web moderna, lo que lo convierte en una excelente solución para entornos de trabajo colaborativo y educativos.


docker-compose.yml

El archivo docker-compose.yml se compone de la siguiente manera:

services:
  nextcloud:
    image: nextcloud
    container_name: nextcloud
    restart: unless-stopped
    ports:
      - 8090:80
    volumes:
      - datanextcloud:/var/www/html/data # Persistir archivos de usuarios
      - confignextcloud:/var/www/html/config # Persistir configuración de nexcloud
      - appsnextcloud:/var/www/html/custom_apps # Persistir apps agregadas
      - themenextcloud:/var/www/html/themes/mi_tema_personalizado # Persistir temas personalizados
    env_file: nextcloud.env
    networks:
      - internal_net
      - net_backend
 
# Exportador de metricas para prometheus
  nextcloud-exporter:
    container_name: nextcloud-exporter
    image: xperimental/nextcloud-exporter:latest
    environment:
      NEXTCLOUD_SERVER: https://nextcloud.TUDOMINIO.com.ar
      NEXTCLOUD_USERNAME: <USUARIO> # Usuario con permisos de lectura exclusivo para obtener métricas
      NEXTCLOUD_PASSWORD: <CONTRASEÑA>
    ports:
      - "9205:9205"
    networks:
      - net_backend

networks:
  internal_net:
    name: net_backend
    external: true
  net_backend:
    external: true

volumes:
  datanextcloud:
  confignextcloud:
  appsnextcloud:
  themenextcloud:

Variables de entorno

Las variables de entorno configuradas en el docker-compose.yml son las siguientes:

# Nombre del contenedor que corre la base de datos
POSTGRES_HOST: 'NOMBRE_HOST_DB'
# Nombre que utilizada la base de datos
POSTGRES_DB: 'NOMBRE_DB'
# Usuario a utilizar
POSTGRES_USER: 'USER'
# Contraseña
POSTGRES_PASSWORD: 'PASSWORD'
NEXTCLOUD_ADMIN_USER: 'USER'
NEXTCLOUD_ADMIN_PASSWORD: 'PASSWORD'
# Limite de carga de archivos
PHP_UPLOAD_LIMIT: '2G'
# Limite de memoria PHP
PHP_MEMORY_LIMIT: '4G'
# Conexión por HTTPS
OVERWRITEPROTOCOL: 'HTTPS'
# URL
OVERWRITECLIURL: 'nextcloud.TUDOMINIO.com.ar'

Configuración de Nextcloud

Para la configuración del servicio, utilizamos el archivo config.php, el cual es el archivo principal de configuración del sistema. Este archivo define cómo se comporta la instalación, incluyendo los dominios permitidos, conexiones a base de datos, almacenamiento, seguridad y otras opciones avanzadas. Se encuentra en la ruta /var/www/html/config/ dentro del contenedor de Nextcloud.

Para acceder al contenedor, ejecutamos el siguiente comando desde el host:

docker exec -it nextcloud /bin/bash

Una vez dentro del contenedor, editamos el archivo de configuración con:

nano /var/www/html/config/config.php

El archivo debe quedar configurado de la siguiente manera:

<?php
$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'apps_paths' =>
  array (
    0 =>
    array (
      'path' => '/var/www/html/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 =>
    array (
      'path' => '/var/www/html/custom_apps',
      'url' => '/custom_apps',
      'writable' => true,
    ),
  ),
  'overwriteprotocol' => 'HTTPS',
  'overwrite.cli.url' => 'nextcloud.TUDOMINIO.com.ar',
  'upgrade.disable-web' => true,
  'passwordsalt' => 'ICF9Hb9lNp5bt2jAmV2nrjNg0Qjm+q',
  'secret' => 'IPybR1aNDf8Y2v48rWs8AC85JEBLstwCr4oJa8pSTZWcjqC+',
  'trusted_domains' =>
  array (
    0 => 'nextcloud.TUDOMINIO.com.ar',
  ),
  'trusted_proxies' =>
  array (
    0 => 'IP_INTERNA_PROXY',
  ),
  'forwarded_for_headers' =>
  array (
    0 => 'HTTP_X_FORWARDED_FOR',
    1 => 'HTTP_X_FORWARDED',
    2 => 'HTTP_X_FORWARDED_PROTO',
  ),
  'default_phone_region' => 'AR',
  'datadirectory' => '/var/www/html/data',
  'dbtype' => 'MOTOR_DB',
  'version' => '31.0.9.1',
  'dbname' => 'NOMBRE_DB',
  'dbhost' => 'NOMBRE_HOST_DB',
  'dbport' => '5432',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'USUARIO_DB',
  'dbpassword' => 'PASSWORD',
  'installed' => true,
  'instanceid' => 'och9a9wf7sqs',
  'mail_smtpmode' => 'smtp',
  'mail_smtpsecure' => 'ssl',
  'mail_sendmailmode' => 'smtp',
  'mail_domain' => 'TUDOMINIO.com.ar',
  'mail_from_address' => 'TUDOMINIO',
  'mail_smtphost' => 'nextcloud.TUDOMINIO.com.ar',
  'mail_smtpport' => '443',
  'loglevel' => 3,
  'maintenance' => false,
);

Con esta configuración, Nextcloud queda completamente funcional y accesible desde el dominio:

https://nextcloud.TUDOMINIO.com.ar

El cual fue previamente definido en trusted_domains, utilizando la base de datos PostgreSQL configurada en el mismo entorno Docker.

nextcloud.txt · Última modificación: por romix