• 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
SeaFile en Docker para compartir archivos
#1
Hola

Voy a describir como instalar un contenedor de SeaFile server en nuestra NAS.

Es te programa dispone de versión Pro comercial y versión Comunity.
El programa hace funciones muy similares a NextCLoudOwnCLoud de cara a sincronización y prestamos de archivos. Aunque estos tienen mas funciones.
Se parece mucho a Pydio, que ahora se llama Pydio Cells.

La función del programa es tener archivos que estarán contenidos en carpetas maestras que el programa denomina librerías.
Dentro de estas librerías podemos compartir  archivos puntuales de ellas o subcarpetas de su interior.

Para la creación de contenedor lo haremos usando Container Station en vez de la consola bash de unix.


Código:
version: '2.0'
services:
  db:
    image: mariadb:10.5
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=clave_de_MySQL
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - /share/DockerData/seafilesql:/var/lib/mysql  #ruta PERSISTENTE de la BBDD
    networks:
      - Dockers

  memcached:
    image: memcached:1.5.6
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - Dockers
         
  seafile:
    image: seafileltd/seafile-mc:latest
    container_name: seafile
    ports:
      - "8090:80"
#     - "8043:443"  # Si queremos activar SSL
    volumes:
      - /share/DockerData/seafile:/shared   # ruta PERSISTENTE de seafile
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=clave_de_MySQL
      - TIME_ZONE=Etc/UTC
      - SEAFILE_ADMIN_EMAIL=cuenta@protonmail.com # usuario admin
      - SEAFILE_ADMIN_PASSWORD=ClaveSecreta     # clave de admin
      - SEAFILE_SERVER_LETSENCRYPT=false   # si tenemos activado certiicado ssl
      - SEAFILE_SERVER_HOSTNAME=seafile.midominio.eu # nuestra dirección del servidor
    depends_on:
      - db
      - memcached
    networks:
      - Dockers

networks:
  Dockers:

En la propia definición está la creación de dos contenedores mas como son una base de datos y una de caché. Así nos evitamos definir otros contenedores de forma posterior.

Es importante definir la misma clave de la SQL  en en contenedor de seafile y en el de la base de datos (líneas 7 y 31).
He definido dos rutas persistentes para posteriores copias de seguridad de los contenedores
/share/DockerData/seafile y /share/DockerData/seafilesql. 
Suelo usar "/share/DockerData" como carpeta compartida previa. Y es donde ubico todas las rutas persistentes de los contenedores que uso.
De esa forma puedo centralizar la copia de todos mis contenedores.

El contenido de SeaFile lo podemos tener subiendo directamente los archivos por entorno web o bien instalarnos un cliente de sincronización en el ordenador para tener sincronizada una carpeta con SeaFile. Hasta aquí es similar a lo que hacen otros programas.

Para acceder al entorno web hemos de ir a un navegador web y escribir http://ip_de_nuestra_nas:8090.
Los datos de acceso iniciales son como usuario "cuenta@protonmail.com" y clave "ClaveSecreta". 
La gestión web es sencilla y permite incluso personalizarla a nivel de icono, imagen de fondo...

También podemos bloquear la creación de usuarios y crearlos manualmente como administrador. Yo evitaría dejarlo accesible a Internet sin proteger esto, por el riesgo que conlleva de se creen "n" usuarios 

Hay clientes para terminales móviles y equipos de escritorio que podéis descargar desde su página web.

Una de las funciones mas interesantes del cliente de Windows es que añade un cómodo menú contextual que permite generar un enlace de compartición.

Pero para hacer esto, recomiendo tener el contenedor lo mas seguro posible.
Por ejemplo tras un proxy inverso que aporte un certificado ssl. Por ejemplo un traefik, un ha proxy, unnNginx proxy manager,....o tras un servicio de cloudflare como se explica en este hilo de Yeraycito si no queréis un proxy inverso. Aunque es posible tener ambas cosas simultáneamente.
Y también podemos hacer que nos añadan contenido si generamos un enlace con "get upload link"

   

Y también hay un segundo cliente que llama "Client Drive".
Lo que hace es montar las librerías contenidos de SeaFile en una carpata de nuestro PC, pero NO ocupan espacio. Ellos lo denominan "carpeta de caché".

La función que hace es como si tuviésemos un acceso directo de los archivos y carpetas, pero sin ocupar el espacio.
   

Tendrán un pequeño icono de una nube cuando estén en el servidor y una marca verde cuando estén localmente.

En caso de querer trabajar con él, sólo hemos de hacer hacer doble pulsación. Al hacerlo, el archivo si se descarga a la carpeta, ocupando espacio de nuestro disco duro. Si queremos "liberar ese espacio"  haremos botón secundario sobre el archivo y tenemos la opción de dejar sólo el acceso con la opción de "liberar espacio".

   

De forma análoga, si queremos que un archivo siempre esté localmente, usaremos la opción "Mantener siempre en este dispositivo"

Una función que me ha gustado es que es posible sincronizar el carrete de fotos de los iPhone, cosa que no he visto que haga Qsync.

   

He de reconocer que las opciones de subida de carrete de la app, me parecen sospechosamente parecidas a las de NextCloud.

Como cualquier contenedor, es importante antes de lanzarse a llenarlo de datos, a hacer pruebas de backup y restauración.
Y planificad una política de copias.

Como lo he comenzado a usar recientemente, no puedo decir como se aplican las actualizaciones.
En general los contendores no se pueden actualizar a si mismo, hay que reinstalar.

Pero lo habitual a hacer es :
-detención del contenedor (no perdemos datos persistentes)
-eliminación del contenedor
-instalación del nuevo aprovechando los datos persistentes.

Esta aplicación y otra parecidas, NO trabajan con las carpetas compartidas de la NAS. 
Lo comento por aquellos que tienen ya grandes cantidades de datos en el sistema de archivos de la NAS. 
Aunque a primera vista parezca una desventaja, a nivel de seguridad es mejor, ya que no exponemos QTS a ataques, exponiendo sólo nuestro container SeaFile.


Bueno, creo que eso es todo lo básico de esta aplicación. Si veis alguna errata comentadme por privado para corregirlo.
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
  Responder




Usuarios navegando en este tema: 1 invitado(s)