Cambios para el documento Instalacion (docker)
Última modificación por dFa el 2025/02/24 10:01
Resumen
-
Propiedades de página (1 modificado, 0 añadido, 0 eliminado)
-
Adjuntos (0 modificado, 0 añadido, 4 eliminado)
Detalles
- Propiedades de página
-
- Contenido
-
... ... @@ -74,11 +74,6 @@ 74 74 MYSQL_PASSWORD: Ko5b0sq977j1saaCQ3SD55 75 75 REDIS_HOST: redis 76 76 PHP_UPLOAD_LIMIT: 0 77 - command: > 78 - sh -c "chown -R www-data:www-data /var/nextcloud && 79 - chmod -R 770 /var/nextcloud && 80 - exec /entrypoint.sh php-fpm" 81 - 82 82 web: 83 83 image: nginx 84 84 container_name: nextcloud-web ... ... @@ -118,283 +118,18 @@ 118 118 119 119 Desplegamos los contenedores: 120 120 121 -[[image:1740216 653242-590.png]]116 +[[image:1740216587698-323.png]] 122 122 123 -Y vemos que se han creado los volumenes correctamente: 124 124 125 -[[image:1740216641833-376.png]] 126 126 127 -== Configuración == 120 + 121 +))) 128 128 129 -Con los volumenes creados, todavía nextcloud no es accesible, dado que debemos configurar tanto el config.php como como el nginx.conf. 130 130 131 -=== nginx.conf === 132 132 133 -El fichero nginx.conf se encuentra en el volumen nextcloud_nginx_conf. Realizamos previamente un backup y reemplazamos por el siguiente: 134 134 135 -{{code language="yaml"}} 136 -worker_processes auto; 137 - 138 -error_log /var/log/nginx/error.log warn; 139 -pid /var/run/nginx.pid; 140 - 141 -events { 142 - worker_connections 1024; 143 -} 144 - 145 -http { 146 - include mime.types; 147 - default_type application/octet-stream; 148 - types { 149 - text/javascript mjs; 150 - application/wasm wasm; 151 - } 152 - 153 - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 154 - '$status $body_bytes_sent "$http_referer" ' 155 - '"$http_user_agent" "$http_x_forwarded_for"'; 156 - 157 - access_log /var/log/nginx/access.log main; 158 - 159 - sendfile on; 160 - keepalive_timeout 65; 161 - 162 - # Define asset_immutable variable properly 163 - map $arg_v $asset_immutable { 164 - default ""; 165 - "" ", immutable"; 166 - } 167 - 168 - upstream php-handler { 169 - server app:9000; 170 - } 171 - 172 - server { 173 - listen 80; 174 - 175 - client_max_body_size 512M; 176 - client_body_timeout 300s; 177 - fastcgi_buffers 64 4K; 178 - 179 - client_body_buffer_size 512k; 180 - 181 - gzip on; 182 - gzip_vary on; 183 - gzip_comp_level 4; 184 - gzip_min_length 256; 185 - gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; 186 - gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; 187 - 188 - add_header Referrer-Policy "no-referrer" always; 189 - add_header X-Content-Type-Options "nosniff" always; 190 - add_header X-Frame-Options "SAMEORIGIN" always; 191 - add_header X-Permitted-Cross-Domain-Policies "none" always; 192 - add_header X-Robots-Tag "noindex, nofollow" always; 193 - add_header X-XSS-Protection "1; mode=block" always; 194 - 195 - fastcgi_hide_header X-Powered-By; 196 - 197 - root /var/www/html; 198 - 199 - index index.php index.html /index.php$request_uri; 200 - 201 - location = / { 202 - if ( $http_user_agent ~ ^DavClnt ) { 203 - return 302 /remote.php/webdav/$is_args$args; 204 - } 205 - } 206 - 207 - location = /robots.txt { 208 - allow all; 209 - log_not_found off; 210 - access_log off; 211 - } 212 - 213 - location ^~ /.well-known { 214 - location = /.well-known/carddav { return 301 /remote.php/dav/; } 215 - location = /.well-known/caldav { return 301 /remote.php/dav/; } 216 - location /.well-known/acme-challenge { try_files $uri $uri/ =404; } 217 - location /.well-known/pki-validation { try_files $uri $uri/ =404; } 218 - return 301 /index.php$request_uri; 219 - } 220 - 221 - location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; } 222 - location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; } 223 - 224 - location ~ \.php(?:$|/) { 225 - rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode(_arm64)?\/proxy) /index.php$request_uri; 226 - 227 - fastcgi_split_path_info ^(.+?\.php)(/.*)$; 228 - set $path_info $fastcgi_path_info; 229 - 230 - try_files $fastcgi_script_name =404; 231 - 232 - include fastcgi_params; 233 - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 234 - fastcgi_param PATH_INFO $path_info; 235 - fastcgi_param HTTPS on; 236 - 237 - fastcgi_param modHeadersAvailable true; 238 - fastcgi_param front_controller_active true; 239 - fastcgi_pass php-handler; 240 - 241 - fastcgi_intercept_errors on; 242 - fastcgi_request_buffering off; 243 - 244 - fastcgi_max_temp_file_size 0; 245 - } 246 - 247 - location ~ \.(?:css|js|mjs|svg|gif|ico|jpg|png|webp|wasm|tflite|map|ogg|flac)$ { 248 - try_files $uri /index.php$request_uri; 249 - add_header Cache-Control "public, max-age=15778463$asset_immutable"; 250 - access_log off; 251 - } 252 - 253 - location ~ \.wasm$ { 254 - default_type application/wasm; 255 - } 256 - 257 - location /remote { 258 - return 301 /remote.php$request_uri; 259 - } 260 - 261 - location / { 262 - try_files $uri $uri/ /index.php$request_uri; 263 - } 264 - } 265 -} 266 -{{/code}} 267 - 268 -Reiniciamos los contenedores para que apliquen todos los cambios y comprobamos si funciona correctamente accediendo a través del puerto expuesto, en este caso el 8080: 269 - 270 -* [[http:~~/~~/ipservidor:8080>>http://ipservidor:8080]] 271 - 272 -[[image:1740220925385-402.png]] 273 - 274 -Indicamos un usuario y contraseña y comenzará la instalación. 275 - 276 -=== config.php === 277 - 278 -Una vez realziada la instralación, hacemos lo mismo con el fichero config.php que se encuentra en el volumen app dentro del directorio config: 279 - 280 -{{code language="php"}} 281 -<?php 282 -$CONFIG = array ( 283 - 'memcache.local' => '\\OC\\Memcache\\APCu', 284 - 'apps_paths' => 285 - array ( 286 - 0 => 287 - array ( 288 - 'path' => '/var/www/html/apps', 289 - 'url' => '/apps', 290 - 'writable' => true, 291 - ), 292 - 1 => 293 - array ( 294 - 'path' => '/var/www/html/custom_apps', 295 - 'url' => '/custom_apps', 296 - 'writable' => true, 297 - ), 298 - ), 299 - 'memcache.distributed' => '\\OC\\Memcache\\Redis', 300 - 'memcache.locking' => '\\OC\\Memcache\\Redis', 301 - 'redis' => 302 - array ( 303 - 'host' => 'redis', 304 - 'password' => '', 305 - 'port' => 6379, 306 - ), 307 - 'upgrade.disable-web' => true, 308 - 'instanceid' => 'ocxuwrcpcats', 309 - 'passwordsalt' => 'bFuPjx3NMpliQCtY729Uob2SRp19xe', 310 - 'secret' => 'eFMG77LAdbjw6oPSJM7hL/IDPBnP3qDxE7xlX6/uPMOvQ/kG', 311 - 'trusted_domains' => 312 - array ( 313 - 0 => '10.100.200.35:8080', 314 - 1 => 'dfacloud.ddns.net', 315 - 316 - ), 317 - 'datadirectory' => '/var/nextcloud/data', 318 - 'dbtype' => 'mysql', 319 - 'version' => '30.0.6.2', 320 - 'overwrite.cli.url' => 'https://dfacloud.ddns.net', 321 - 'dbname' => 'nextcloud', 322 - 'dbhost' => 'db', 323 - 'dbport' => '', 324 - 'dbtableprefix' => 'oc_', 325 - 'mysql.utf8mb4' => true, 326 - 'dbuser' => 'nextcloud', 327 - 'dbpassword' => 'Ko5b0sq977j1saaCQ3SD55', 328 - 'installed' => true, 329 -); 330 -{{/code}} 331 - 332 -En este fichero php tendremos que tener en cuenta modificar los valores nuestra dirección ip:puerto y nuestra dns en consecuencia. 333 - 334 -Tambien debemos tener en cuenta la directiva: 335 - 336 -* 'datadirectory' => '/var/nextcloud/data', 337 - 338 -Dado que indica el directorio de datos dentro del contenedor. 339 - 340 -=== Permisos === 341 - 342 -Es importante tener en cuenta los permisos de los directorios, sobre todo los directorios de datos y perfiles de usuarios. 343 - 344 -En nuestro caso hemos montado el perfil de usuario en un directorio distinto dado que es una recomendación de seguridad de nextcloud, y además hemos expuesto nuestro disco /datos montando en el host anfitrión al contenedor, por lo que es posible que tengamos que revisar los permisos. 345 - 346 -El usuario y grupo desde el host anfitrión en nuestro caso son: 347 - 348 -* user: 33 (www-data) 349 -* group: tape (www-data) 350 - 351 -Y deben contener permisos 770 352 - 353 -Hemos ajustado el compose para que se adapten estos permisos de forma automática, no obstante es importante revisarles si nextcloud indica algún problema de permisos. 354 - 355 -== Acceso == 356 - 357 - 358 -= EXTRA = 359 - 360 -== Compartir recurso que se usa en docker por smb == 361 - 362 -Si vamos a compartir un directorio de datos usado por docker tambien a través de smb, es importante tener en cuenta los permisos. 363 - 364 -Para ello añadiremos nuestro usuario de smb al grupo tape e indicaremos en el recurso smb como usuario valido dicho grupo. 365 - 366 -Para añadir el usuario al grupo tape: 367 - 368 -{{code language="bash"}} 369 -usermod -a -G tape usuario 370 -{{/code}} 371 - 372 -Para configurar el grupo en smb: 373 - 374 -{{code language="bash"}} 375 -[datos] 376 - path = /datos/dFa 377 - browsable = yes 378 - writable = yes 379 - valid users = @tape 380 - #valid users = dFa 381 - read only = no 382 - force create mode = 0777 383 - force directory mode = 0777 384 - guest ok = no 385 -{{/code}} 386 - 387 -De esta manera tanto docker como el usuario de smb que hemos añadido al grupo tape tendrá permisos sobre el recurso. 388 - 389 -También para evitar problemas, es importante asignar ACL's para que el recurso siempre tenga los mismos permisos cuando se añade un nuevo fichero y además aseguramos que el contenido ya existente se encuentra en un estado correcto en cuanto a los mismos: 390 - 391 -{{code language="bash"}} 392 -setfacl -R -m g:tape:rwx /datos/ 393 -setfacl -R -d -m g:tape:rwx /datos/ 394 -{{/code}} 395 - 396 - 397 - 126 +(% class="col-xs-12 col-sm-4" %) 127 +((( 398 398 399 399 ))) 400 400 )))
- 1740216603834-462.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.dFa - Tamaño
-
... ... @@ -1,1 +1,0 @@ 1 -21.8 KB - Contenido
- 1740216641833-376.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.dFa - Tamaño
-
... ... @@ -1,1 +1,0 @@ 1 -4.6 KB - Contenido
- 1740216653242-590.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.dFa - Tamaño
-
... ... @@ -1,1 +1,0 @@ 1 -19.9 KB - Contenido
- 1740220925385-402.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.dFa - Tamaño
-
... ... @@ -1,1 +1,0 @@ 1 -173.2 KB - Contenido