Cambios para el documento Instalacion (docker)

Última modificación por dFa el 2025/02/24 10:01

Desde la versión 20.2
editado por dFa
el 2025/02/22 15:35
Cambiar el comentario: No hay comentario para esta versión
Hasta la versión 5.1
editado por dFa
el 2025/02/22 09:31
Cambiar el comentario: No hay comentario para esta versión

Resumen

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:1740216653242-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