Inicio Tutorial: Monta tu propio Google Drive con NextCloud
Artículo
Cancelar

Tutorial: Monta tu propio Google Drive con NextCloud

Introducción

Para desplegar este contenedor primero debes tener un servidor con Docker instalado. En mi caso yo tengo un OpenMediaVault sobre un Debian, pero es irrelevante. Lo que si es relevante es tener un Ngnix Proxy Manager funcionando para poder acceder a los datos desde Internet.

Crear contenedor de NextCloud

El Docker compose es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
services:
  db:
    image: mariadb:10.11
    restart: always
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    volumes:
      - db:/var/lib/mysql
    environment:
      - MARIADB_RANDOM_ROOT_PASSWORD=yes
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  redis:
    image: redis:alpine
    restart: always

  app:
    image: nextcloud:apache
    restart: always
    ports:
      - 8080:80
    volumes:
      - ${STORAGE_LOCATION}:/var/www/html/data
      - nextcloud:/var/www/html
    environment:
      - VIRTUAL_HOST=${DOMAIN_NAME}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
      - REDIS_HOST=redis
    depends_on:
      - db
      - redis
    networks:
      - default

  cron:
    image: nextcloud:apache
    restart: always
    volumes:
      - nextcloud:/var/www/html:z
    entrypoint: /cron.sh
    depends_on:
      - db
      - redis

volumes:
  nextcloud:
  db:

networks:
  proxy-tier:

Las variables de entorno son las siguientes (deberás modificarlas según tu caso):

1
2
3
MYSQL_PASSWORD=<pon aquí tu contraseña>
STORAGE_LOCATION=/srv/dev-disk-by-uuid-7ba5953f-3094-44b9-9875-98f1dac73873/elements1/nextcloud
DOMAIN_NAME=<pon aquí tu dominio aunque creo que no vale para nada>

Con esto ya deberías poder ir al navegador y acceder a través de la IP y el puerto <IP>:8080, por ejemplo 192.168.1.140:8080.

El usuario que se utiliza es el www-data, por lo tanto todo lo que haya en /srv/dev-disk-by-uuid-7ba5953f-3094-44b9-9875-98f1dac73873/elements1/nextcloud/ deberá ser propiedad de dicho usuario.

En mi caso he copiado varios datos a /srv/dev-disk-by-uuid-7ba5953f-3094-44b9-9875-98f1dac73873/elements1/nextcloud/mruizg/files y para que se vean en la web he tenido que ejecutar el siguiente comando:

1
$docker exec -u www-data <id del contenedor> php occ files:scan --all

Configurar Nginx Proxy Manager

Crear un Proxy Host nuevo.

Habilitar nuevo dominio

En la máquina host debes ir a /var/lib/docker/volumes/nextcloud_nextcloud/_data/config/config.php y añadir la siguiente línea dentro de la array de trusted_domains:

1
  1 => '<dominio>'

En mi caso queda tal que así:

1
2
3
4
5
'trusted_domains' =>
  array (
    0 => 'nipogi:8080',
    1 => 'nextcloud.chirihop.duckdns.org'
  ),

Posteriormente se reinicia el contenedor con docker restart <id del contenedor>. El id del contenedor se saca con docker ps.

Bibliografía

Este artículo está licenciado bajo CC BY 4.0 por el autor.

WCAG

Tutorial: Vue