Posts by chente

    "rsync" should work remotely. If you have errors, there is something in your configuration that is not right. The speed will depend on the internet connection in both locations, but I doubt it will be high for transferring large files.

    Another possibility for this use case is to use "syncthing". With "rsync" you copy files from one machine to another in one direction. With "syncthing" the two machines are automatically synchronized in both directions.

    I would need to see your docker-compose or yml file. Publish it by pressing the code button first </>. In this way:


    VERSION ORIGINAL EN ESPAÑOL


    Esta guía pretende establecer un método para instalar una aplicación en docker con éxito, evitando problemas de permisos, volúmenes o puertos.

    Se asume que el usuario ya ha configurado su sistema OMV y su sistema de archivos para datos. https://openmediavault.readthe…_guide/newuserguide.html#. Se asume que el acceso SSH está habilitado y disponible (en la GUI de OMV sección <<Servicios>> luego <<SSH>> luego pulsar en "Habilitar" y pulsar en "Guardar". Acceso mediante de putty (https://www.putty.org/) con el usuario root y la contraseña establecida durante la instalación de OMV)



    Teoría:



    Docker es una tecnología que permite la creación y uso de contenedores de Linux. Un contenedor es una o más aplicaciones y sus dependencias, agrupadas y aisladas entre sí, que se ejecutan en el mismo kernel del sistema operativo. Docker permite instalar, desinstalar, modificar, actualizar aplicaciones cuantas veces queramos sin causar daños al sistema.


    Para usar Docker, necesitamos definir los siguientes parámetros:


    - UN USUARIO con el que ejecutar docker. Por seguridad, es conveniente hacerlo así para no otorgar a la aplicación más permisos de los necesarios. Como mínimo debe tener acceso al espacio que le dedicamos a docker.

    - Un ESPACIO en nuestro sistema de archivos donde alojaremos los contenedores. Recomendable un SSD de 60GB o más, independiente de nuestro sistema de archivos de datos. Dividimos este espacio en dos partes, dedicadas a archivos de PROGRAMA y archivos de CONFIGURACIÓN.

    • Archivos de PROGRAMA: Se descargan y configuran automáticamente, son "prescindibles", se pueden descargar e instalar fácilmente de nuevo. Los guardaremos en una carpeta que llamaremos "docker" (es conveniente sacarlos del disco de sistema de OMV para evitar problemas).
    • Archivos de CONFIGURACIÓN: Se crean, modifican y personalizan durante el uso de la aplicación. Contraseñas, configuraciones personales, bases de datos, etc. según el caso. Estos archivos son insustituibles y debemos conservarlos si queremos mantener la aplicación en el mismo estado siempre. Los guardaremos en una carpeta que llamaremos "config". Es conveniente hacer copias de seguridad regulares de esta carpeta.


    Instrucciones:



    1. Crear el usuario "usuarioapp".

    En la GUI de OMV vamos a la sección << Permisos de acceso >> luego <<Usuario>> pulsamos en "+ Añadir" y creamos el usuario "usuarioapp", añadiéndolo previamente al grupo "docker" en la pestaña "Grupos" .

    Abrimos las columnas UID y GID y tomamos nota de los valores que tiene el usuario "usuarioapp". Ejemplo UID=1002 GID=100 Esto puede variar en tu sistema.


    2. Montar un disco SSD para docker.

    https://openmediavault.readthe…de.html#data-drive-set-up


    3. Para facilitar el acceso a los discos creamos dos enlaces simbólicos /SSD y /DATOS

    En la GUI de OMV vamos a la sección <<Sistema>> luego <<Plugins>> buscamos el plugin "openmediavault-symlinks" y lo instalamos.

    En la sección <<Almacenamiento>> luego << Sistema de archivos >>, abrimos la columna "Punto de montaje" y nos fijamos en cuál es el punto de montaje del disco SSD.

    En la sección <<Servicios>> luego <<Symlinks>> pulsamos en "+ Añadir".

    En la ventana pulsamos en el icono de carpeta a la derecha de "origen", buscamos la ruta de montaje del disco SSD y la seleccionamos. En "Destino" escribimos /SSD y pulsamos salvar.

    Repetimos el proceso en nuestro sistema de archivos con la carpeta donde tenemos los datos y creamos el enlace simbólico /DATOS


    4. Crear las carpetas "docker" y "config" en el disco SSD y otorgar permisos a userapp.

    Abrimos una terminal en putty con el usuario root y tecleamos:


    mkdir -m 770 /SSD/docker

    chgrp docker /SSD/docker

    mkdir -m 770 /SSD/config

    chgrp users /SSD/config


    5. Instalar omv-extras

    https://wiki.omv-extras.org/


    6. Cambiar la ubicación de los archivos de PROGRAMA de docker a la carpeta "docker" del SSD. Instalar Docker y Portainer.

    En la GUI de OMV, ir a la sección <<OMV-Extras>> pulsar en la pestaña "Docker" y en el campo "Almacenamiento de Dockers" sustituir el valor por /SSD/docker

    Para instalar docker, pulsar en la pestaña "Docker" en el menú superior y pulsar en "Instalar".

    Para instalar Portainer, pulsar en la pestaña "Portainer" en el menú superior y pulsar en "Instalar".



    Ejemplo de instalación:



    7. Escoger la pila de Docker

    En la página https://hub.docker.com/search?type=image hay miles de contenedores listos para configurar. Elegir uno y buscar la pila de docker-compose. Siempre que sea posible, elegir contenedores de editores de confianza o con muchas descargas y actuales.

    Elegimos el contenedor Jellyfin como ejemplo. En el buscador aparecen muchos resultados, elegimos el de linuxserver. https://hub.docker.com/r/linuxserver/jellyfin

    Buscamos la pila y la copiamos a un archivo de texto. En este caso sería esta:



    8. Personalizar la pila de Docker.

    Siempre es conveniente leer los comentarios del editor para familiarizarse con las opciones y comprobar que el contenedor es válido para nuestra arquitectura.

    Personalizamos nuestra pila para adaptarla a nuestro sistema. En este ejemplo, eliminamos todas las líneas opcionales y nos quedamos con lo esencial. Asumimos como ejemplo que en nuestro sistema de archivos dentro del enlace simbólico /DATOS creado en el punto 3 tenemos una carpeta llamada "multimedia" que contiene otras carpetas con películas, fotos, etc. Ajustamos la pila de la siguiente manera:



    Comentario 1: Estos dos valores están copiados del punto 1. Ajústalo a los valores que tengas en tu sistema, pueden variar.

    Comentario 2: Ajústalo a tu localización.

    Comentario 3: En la sección "volumes" le decimos a la aplicación dónde queremos que escriba y lea información. La sintaxis significa que a la izquierda de ":" definimos la ruta real del disco y a la derecha está la carpeta correspondiente dentro del contenedor. Por lo tanto, en la primera línea le estamos diciendo a la aplicación que todos los archivos de configuración los debe escribir en la ruta que establecimos en nuestro SSD en la carpeta config y además otra subcarpeta llamada Jellyfin. Definido así, tendremos subcarpetas para cada contenedor con sus archivos de configuración dentro de la carpeta config. No es necesario crear la carpeta "Jellyfin" de antemano, docker puede crear hasta un nivel de subcarpetas cuando se inicia el contenedor.

    En la segunda línea le decimos a la aplicación dónde se encuentran los datos a utilizar, películas, etc. Lógicamente debemos DAR PERMISOS al usuario usuarioapp en esta carpeta, o no podrá acceder a esta información. Podemos hacerlo desde la GUI editando los privilegios del usuario.

    Comentario 4: En la sección ports definimos los puertos para que la aplicación se comunique con el sistema. La sintaxis es la misma que en el punto anterior, a la izquierda de ":" está el puerto que realmente queremos usar y a la derecha está el puerto que la aplicación usa internamente. En este caso, para acceder a la aplicación, abriremos un navegador y escribiremos la IP de nuestro servidor seguida del puerto definido, es decir, 192.168.1.100:8096 por ejemplo. Si quisiéramos usar, por ejemplo, el puerto 8888 cambiaríamos el de la izquierda y quedaría así 8888: 8096


    9. Implementar la pila de Docker

    En la GUI de OMV en la sección <<OMV-Extras>> vamos a la pestaña "Docker" y pulsamos en la pestaña "Abrir Portainer".

    Si es la primera vez establecemos un usuario y contraseña e ingresamos.

    Pulsamos en la ballena, luego en contenedores, y luego en el menú de la izquierda pulsar en stacks (pilas), luego pulsar en el botón superior "+ Add stack"

    Copiamos la pila de nuestro archivo de texto en la ventana y arriba llenamos el campo "name" escribiendo jellyfin. Nos desplazamos en la ventana hacia abajo y buscamos el botón "Deploy the stack". Pulsamos y esperamos a que se implemente la pila. Cuando termine el proceso ya podemos ir a un navegador y acceder a la aplicación con la IP y puerto definidos en el punto anterior.


    10. Modificación de la pila.

    Podemos modificar los parámetros de la pila en cualquier momento. Para ello pulsamos sobre el nombre de la pila y luego en el botón "Editor" en la parte superior. Accedemos a la pila actual y podremos cambiar algún parámetro y actualizarla pulsando en el botón "Update the stack" en la parte inferior. Si queremos eliminar la configuración de la aplicación y empezar de cero podemos hacerlo borrando la carpeta /SSD/config/Jellyfin.

    VERSION ORIGINAL EN ESPAÑOL EN EL SIGUIENTE POST.

    ORIGINAL VERSION IN SPANISH IN THE FOLLOWING POST.


    This guide aims to establish a method to install an application in docker successfully, avoiding permissions, volumes or ports problems.

    It is assumed that the user has already configured their OMV system and file system for data. https://openmediavault.readthe…_guide/newuserguide.html#. It is assumed that SSH access is enabled and available (in the OMV GUI section <<Services>> then <<SSH>> then click "Enable" and click "Save". Access through putty (https://www.putty.org/) with the root user and the password set during OMV installation)



    Theory:



    Docker is a technology that enables the creation and use of Linux containers. A container is one or more applications and their dependencies, grouped and isolated from each other, that run on the same operating system kernel. Docker allows us to install, uninstall, modify, update applications as many times as we want without causing damage to the system.


    To use docker we need to define the following parameters:


    - A USER with which to run docker. For security reasons, it is convenient to do so so as not to grant the application more permissions than necessary. At least it must have access to the space that we dedicate to docker.

    - A SPACE in our file system where we will host the containers. Advisable an SSD of 60GB or more independent of our data file system. We divide this space into two parts, dedicated to PROGRAM files and CONFIGURATION files.

    • PROGRAM files: They are downloaded and configured automatically, they are "expendable", they can be easily downloaded and installed again. We will save them in a folder that we will call "docker" (it is convenient to remove them from the OMV system disk to avoid problems).
    • CONFIGURATION files: They are created, modified and customized during the use of the application. Passwords, personal settings, databases, etc. depending on the case. These files are irreplaceable and we must keep them if we want to keep the application in the same state always. We will save them in a folder that we will call "config". It is a good idea to make regular backup copies of this folder.


    Instructions:



    1. Create the user "userapp".

    In the OMV GUI we go to the << Access Permissions >> section then <<User>> click on "+ Add" and create the user "userapp", previously adding it to the "docker" group in the "Groups" tab.

    We open the UID and GID columns and take note of the values that the user "userapp" has. Example UID=1002 GID=100 This may vary on your system.


    2. Mount an SSD disk for docker.

    https://openmediavault.readthe…de.html#data-drive-set-up


    3. To facilitate access to the disks we create two accesses symlink /SSD and /DATA

    In the OMV GUI we go to the section <<System>> then <<Plugins>> we look for the plugin "openmediavault-symlinks" and we install it.

    In the section <<Storage>> then << File system >>, we open the column "Mount point" and we look at which is the mounting point of the SSD disk.

    In the section <<Services>> then <<Symlinks>> click "+ Add".

    In the window we click on the folder icon to the right of "origin", we look for the mounting path of the SSD disk and we select it. In "Destination" we write /SSD and press save.

    We repeat the process in our file system with the folder where we have the data and create the symlink /DATA


    4. Create the "docker" and "config" folders on the SSD disk and give userapp permissions.

    We open a terminal in putty with the root user and type:

    mkdir -m 770 /SSD/docker

    chgrp docker /SSD/docker

    mkdir -m 770 /SSD/config

    chgrp users /SSD/config


    5. Install omv-extras

    https://wiki.omv-extras.org/


    6. Change the location of the docker PROGRAM files to the "docker" folder on the SSD. Install Docker and Portainer.

    In the OMV GUI go to the <<OMV-Extras>> section click the "Docker" tab and in the "Dockers Storage" field replace the value with /SSD/docker

    To install docker, click on the "Docker" tab on the top menu and click on "Install".

    To install Portainer, click on the "Portainer" tab in the top menu and click on "Install".



    Installation example:



    7. Choose docker stack

    On the page https://hub.docker.com/search?type=image there are thousands of containers ready to configure. Choose one and find the docker-compose stack. Whenever possible choose containers from trusted publishers or with many downloads and current.

    We chose the Jellyfin container as an example. In the search engine many results appear, we choose the one for linuxserver. https://hub.docker.com/r/linuxserver/jellyfin

    We look for the stack and copy it to a text file. In this case it would be this:


    8. Customize the docker stack

    It is always a good idea to read the editor's comments to familiarize yourself with the options and to verify that the container is valid for our architecture.

    We customize our stack to suit our system. In this example we remove all optional lines and keep the essentials. We assume as an example that in our file system within the symlink /DATA created in point 3 we have a folder called "media" that contains other folders with movies, photos, etc. We adjust the stack as follows:


    Comment 1: These two values are copied from point 1. Adjust it to the values you have in your system, they may vary.

    Comment 2: Adjust it to your location

    Comment 3: In the "volumes" section we tell the application where we want it to write and read information. The syntax means that to the left of ":" we define the real path of the disk and to the right is the corresponding folder within docker. Therefore, in the first line we are telling the application that all the configuration files must be written in the path that we established on our SSD in the config folder and also another subfolder called Jellyfin. Defined like this we will have subfolders for each container with its configuration files inside the config folder. The "Jellyfin" folder does not need to be created beforehand, docker can create up to one level of subfolders when the container starts.

    In the second line we tell the application where the data to use, movies, etc. are located. Logically we must GIVE PERMISSIONS to the user userapp in this folder, or they will not be able to access this information. We can do that from the GUI by editing the user's privileges.

    Comment 4: In the ports section we define the ports for the application to communicate with the system. The syntax is the same as in the previous point, to the left of ":" is the port that we really want to use and to the right is the port that the application uses internally. In this case, to access the application, we will open a browser and write the IP of our server followed by the defined port, that is, 192.168.1.100:8096 for example. If we wanted to use, for example, port 8888 we would change the one on the left and it would look like this 8888: 8096


    9. Deploy the docker stack

    In the OMV GUI in the <<OMV-Extras>> section we go to the "Docker" tab and click on the "Open Portainer" tab.

    If it is the first time we establish a username and password and enter.

    Click on the whale, then on containers, and then on the left menu click on stacks, then click on the top button "+ Add stack"

    We copy the stack from our text file into the window and above we fill in the "name" field by typing jellyfin. We scroll the window down and look for the "Deploy the stack" button. We press and wait for the stack to be implemented. When the process is finished we can go to a browser and access the application with the IP and port defined in the previous point.


    10. Modification of the stack.

    We can modify stack parameters at any time. To do this, click on the name of the stack and then on the "Editor" button at the top. We access the current stack and we can change some parameter and update it by clicking on the "Update the stack" button at the bottom. If we want to delete the application configuration and start from scratch we can do so by deleting the /SSD/config/Jellyfin folder.

    What is the basis for this suggestion? What type of performance are you referring to?

    In general, I have always read that using a disk to the limit of its capacity leads to the fragmentation of files on any system, some more than others. It will also depend on how the disk is used. Copying files once and not moving them is not the same as writing and deleting continuously. It is true that linux and EXT4 is very efficient in this regard. But it is not free from this drawback either. Maybe 15% free space is over the top. Correct me if so, please. Always willing to learn. :thumbup:

    You are using a root directory for data. That I think will give permission problems.


    The first thing I would do is remove OMV's rclone installation and install it via docker. It is easier to configure permissions, routes, ports and avoid problems with the OMV system. I've never used rclone, sorry I can't help you on that.


    It would modify the location of your docker files. You have them in / var / lib / docker. It is advisable (although not essential) to place them on a different disk. I would create a directory on your disk / srv / dev-disk-by-uuid-e5e42561-9284-4395-b474-0d965f248de3 / docker and modify this in the OMV GUI section <<OMV-Extras>> in Docker Storage.


    Then I would create another folder on the same disk for the docker configuration files / srv / dev-disk-by-uuid-e5e42561-9284-4395-b474-0d965f248de3 / config where the persistent configuration files of each docker will be installed.


    Then I would make a folder where to store the information you want to synchronize from gdrive, which will be used for the two applications. / srv / dev-disk-by-uuid-e5e42561-9284-4395-b474-0d965f248de3 / data_gdrive


    The ideal situation to create applications in docker is to do it with a dedicated user: for example "userapp" or whatever you want. Create it in OMV GUI, section << Access Permissions >> <<user>>.


    Edit the "userapp" permissions, give it read and write permission on your config, docker and data folders.


    Determine PUID and PGID of "userapp", open UID column and GID column in OMV GUI. You will need them for docker stacks.


    Regarding the syncthing stack:


    - Modify PUID and PGID with docker user values (the rclone stack would edit it in the same way)


    - In volumes it is not necessary to set the volume - var / lib / docker / volumes / .... you can delete that line. If you need to say where the config folder and the data folder are. The volumes would be in your case:


    - / srv / dev-disk-by-uuid-e5e42561-9284-4395-b474-0d965f248de3 / config / syncthing: / config

    - / srv / dev-disk-by-uuid-e5e42561-9284-4395-b474-0d965f248de3 / data_gdrive: / data1


    I give you an example that works for me:


    The parity unit is not usable storage. The data units add up to their individual capacity.


    One HDD will obviousily be the parity drive and 4TB HDD has roughly about 3,64TB of useable storage. Times 3 of the left over HDDs wpuld be 10,91TB of useable storage excluding the parity drive right?

    Yes. 1 unit of parity (4TB) plus 3 units of data (4 + 4 + 4TB) = 12TB of data. Approximately 10.9 TB usable.


    It is advisable to always have at least 15% or 20% free space on the disks for best performance.

    I do not route Wireguard trough SWAG, what I wrote is that I use SWAG on port 443, I use Wireguard on port 80.

    If your swag configuration is standard, the traffic coming in through port 80 should automatically divert to port 443 and enter through swag. Therefore wireguard traffic routed through port 80 would go through swag. It may be necessary to configure swag to route this traffic to the docker "wireguard". That's why I asked what your swag configuration file for wireguard looks like. In the example swag setups there are none ready for wireguard. If there is a configuration example for openvpn, so I suppose there will be some way to configure wireguard as well.