====== 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 con permisos de lectura exclusivo para obtener métricas NEXTCLOUD_PASSWORD: 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: '/', '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.