WordPress en OpenMediaVault usando Docker y Portainer Raspberry Pi

Vamos a explicar «Cómo instalar WordPress en OpenMediaVault usando Docker y Portainer para  Raspberry Pi todos los modelos» *En proceso.

En el vídeo de arriba puedes ver todos los detalles para instarlo.

WordPress requiere MariaDB / MySQL

Para comenzar la configuración primero necesitamos instalar MariaDB y luego podemos continuar e instalar WordPress .

Instalación de OpenMediaVault 5

Lista de reproducción con todo lo necesario:

Instalar el Docker para MariaDB a través del comando

sudo docker pull linuxserver/mariadb

MariaDB

Variables de entorno

TZ
PUID
PGID
MYSQL_ROOT_PASSWORD
MYSQL_DATABASE
MYSQL_USER
CONTRASEÑA_MYSQL

WordPress

Variables de entorno

WORDPRESS_DB_HOST
WORDPRESS_DB_USER
WORDPRESS_DB_PASSWORD
WORDPRESS_DB_NAME
 
 

Cómo instalar MiniDLNA en Raspberry Pi

Usaremos los siguientes comandos:

Instalarlo: sudo apt-get install minidlna

Configurar y hacer copia del archivo original:

sudo cp /etc/minidlna.conf /etc/minidlna.conf.copia
sudo nano /etc/minidlna.conf

Rutas que añadir a la biblioteca DLNA. Podemos añadir tantas como queramos, por ejemplo, /mnt/ o /media/usb0 para las unidades usb.
media_dir=/home/pi/
media_dir=/media/usb0

Revisar permisos en las carpetas que hemos añadido de lectura y ejecución para otros.

Nombre de nuestro servidor en la red.
friendly_name=Raspi_DLNA

Tarjetas de red que se van a utilizar (separadas por coma).
network_interface=eth0,wlan0

sudo service minidlna restart

sudo minidlnad -R

Cómo: Cambiar / mover el directorio de datos en NEXTCLOUD

Configuración del servidor web Apache

Tenemos que comprobar si existe y si no es así crear un archivo en la siguiente ruta. Reemplazando el Directorio y otras rutas de archivos con sus propias rutas de archivos:

cd /etc/apache2/sites-available
nano nextcloud.conf

El contenido será el siguiente, donde lo que nos importa en esta parte es que esté Options +FollowSymlinks 

Alias /nextcloud "/var/www/nextcloud/"

<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud

</Directory>

Luego habilita el sitio recién creado:

a2ensite nextcloud.conf

Mover carpeta Data del usuario en cuestión.

  • Asegúrate de que no se esté ejecutando trabajos cron de Apache.
  • Parar ser servicio de Apache
    service apache2 stop
  • Mover la carpeta del usuario /data a la nueva ubicación usando este ejemplo y cambiándolo por tus rutas:
cd /var/www/html/nextcloud

cp -r data /srv/dev-disk-by-label-datos/nextcloud

mv data data.old
  • Cree un enlace simbólico desde la ubicación original a la nueva ubicación
    ln -s /srv/dev-disk-by-label-datos/nextcloud/data data
  • Asegúrate de que los permisos sigan siendo correctos en el enlace simbólico que hemos creado en /var/www/html/nextcloud. El propietario no puede ser Root, hay que verlo y cambiarlo con los siguientes comandos:
    ls -al

    chown -h www-data:www-data data

    chown -R www-data:www-data data
  • También comprueba los permisos de la carpeta que has movido:
cd /srv/dev-disk-by-label-datos/nextcloud/
chown -h www-data:www-data data
chown -R www-data:www-data data
  • Inciar servicio Apache
    service apache2 start

Fuentes:

https://help.nextcloud.com/t/howto-change-move-data-directory-after-installation/17170

https://help.nextcloud.com/t/is-there-a-safe-and-reliable-way-to-move-data-directory-out-of-web-root/3642/4

https://docs.nextcloud.com/server/13/admin_manual/installation/source_installation.html#apache-web-server-configuration

🔐 Cómo instalar OPENVPN en OpenMediaVault 5 DOCKER

¿Qué es OpenVPN?

OpenVPN es una herramienta de conectividad basada en software libreSSL (Secure Sockets Layer), VPN Virtual Private Network (red virtual privada). OpenVPN ofrece conectividad punto-a-punto con validación jerárquica de usuarios y host conectados remotamente. Resulta una muy buena opción en tecnologías Wi-Fi (redes inalámbricas IEEE 802.11) y soporta una amplia configuración, entre ellas balanceo de cargas. Está publicado bajo la licencia GPL, de software libre.

Guía de instalación de OpenMediaVault 5

   Equipamiento requerido :

 Raspberry Pi Todos los modelos

 Tarjeta Micro SD «Mínimo 8 GB»
 Fuente de alimentación
 Cable Ethernet para conexión LAN
 Disco duro externo o unidad USB

     Opcional :

 Raspberry Pi carcasa

 Teclado y Ratón  

Crear volumen OVPN_DATA

OVPN_DATA="ovpn-data-openvpn"
docker volume create --name $OVPN_DATA

Configurar DNS dinámico

Después de que el DNS dinámico se haya creado correctamente, podemos reemplazar el VPN.SERVERNAME.COM con nuestra dirección y ejecutar el contenedor desde el comando siguiente:

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm darathor/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM

Generar certificado de CA

Introduciendo el siguiente comando nos pedirá meter una contraseña dos veces.

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it darathor/openvpn ovpn_initpki

 

 

Inicie el proceso del servidor OpenVPN

Tenemos primero que abrir el puerto en nuestro Router, podemos usar este vídeo como ejemplo pero poniendo el puerto 1194 interno y externo, y protocolo UDP. En el primer vídeo está también.

docker run -v $OVPN_DATA:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN darathor/openvpn

Metemos este comando de arriba con le puerto.

Generar un certificado de cliente sin una frase de contraseña

Con esto creamos un usuario para el cliente sin contraseña. Se puede cambiar CLIENTNAME por el nombre que queráis.

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it darathor/openvpn easyrsa build-client-full CLIENTNAME nopass

Cree y descargue la configuración del cliente con certificados incrustados

Aquí pondremos el mismo nombre que arriba.

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm darathor/openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn

 

Descargar archivo de cliente

Para descargarlo, la opción más fácil es descargar WinSCP u otro programa FTP y conectarnos a nuestra IP como hacemos con Putty. 

Podemos pasarlo al móvil con Google Drive por ejemplo.

Configurar el cliente OpenVPN

Nos bajamos OpenVPN Client e importamos el archivo.


Iniciar contenedor docker automaticamente al encender

Vamos a crear un archivo con el siguiente contenido:

[Unit]
Description=NOMBRE_DOCKER  
Requires=docker.service  
After=docker.service

[Service]
Restart=always  
ExecStart=/usr/bin/docker start -a NOMBRE_DOCKER
ExecStop=/usr/bin/docker stop -t 2 NOMBRE_DOCKER

[Install]
WantedBy=default.target

Podemos crear el archivo conectando por Putty o por WinSCP.

Crear archivo:

touch docker-NOMBRE_DOCKER.service

Lo abrimos con nano y pegamos el contenido de arriba ya personalizado:

nano docker-NOMBRE_DOCKER.service

Copiamos el archivo a la carpeta especial de systemd:

sudo cp docker-NOMBRE_DOCKER.service /etc/systemd/system/

Lo habilitamos:

systemctl enable docker-NOMBRE_DOCKER.service

Al reiniciar nuestro SO debería de levantarse automáticamente nuestro contenedor.

 

Fuentes:

  • https://pcmac.biz/openvpn-on-openmediavault-5-raspberry-pi-4/
  • https://www.ingenieroperales.com/iniciar-un-contenedor-de-docker-automaticamente-al-reiniciar/

☁️ Como instalar NEXTCLOUD en Openmediavault

Hola, vamos a instalar NEXTCLOUD en Openmediavault, aunque este tutorial también vale para otros sistemas Linux como Debian, u otros adaptando los comandos.

Como una imagen vale más que mil palabras, os dejo primero el vídeo por si lo queréis ver.

A continuación, os dejo la lista de comandos que he usado, por si lo quieres ir copiando y pegando, por ejemplo si estás conectado con el buen Putty.

Es importante que si estás en OpenMediavault instalándolo, cambies el puerto 80 y si lo usas, el 443, por otros.

Instalar el servidor HTTP Apache2, MariaDB, PHP y módulos relacionados

sudo su – Para poder ejecutar todo con permisos.

apt-get install apache2
apt-get install apache2 mariadb-server libapache2-mod-php7.
apt-get install php7.3-gd php7.3-json php7.3-mysql php7.3-curl php7.3-mbstring
apt-get install php7.3-intl php-imagick php7.3-xml php7.3-zip

apt-get -y install gcc make autoconf libc-dev pkg-config
apt-get -y install libmcrypt-dev

apt-get install php-dev libmcrypt-dev php-pear
pecl install mcrypt
service apache2 restart

Descargar NextCloud

cd /var/www/html

wget https://download.nextcloud.com/server/releases/nextcloud-19.0.0.zip

* Puedes ver la última versión en su web y cambiarla por la 19.0.0, https://download.nextcloud.com/server/releases

apt-get install unzip

unzip nextcloud-19.0.0.zip

mkdir -p /var/www/html/nextcloud/data

chown -R www-data:www-data /var/www/html/nextcloud/

chmod 750 /var/www/html/nextcloud/data

Ver la IP de nuestro equipo: hostname -I

Crear la base de datos NextCloud

Ahora que ha instalado todos los paquetes necesarios, continúe a continuación para comenzar a configurar los servidores. Primero ejecute los siguientes comandos para crear una base de datos en blanco de NextCloud.

Para iniciar sesión en el servidor MariaDB, ejecute los siguientes comandos

sudo mysql -u root -p

Luego crea una base de datos llamada nextcloud

CREATE DATABASE nextcloud;

Cree un usuario de base de datos llamado nextclouduser con una nueva contraseña

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'NUEVACONTRASEÑA';

Luego otorgue al usuario acceso completo a la base de datos.

GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'CONTRASEÑAANTERIOR' WITH GRANT OPTION;

Finalmente, guarde sus cambios y salga.

FLUSH PRIVILEGES;
EXIT;

☁️ Como ACCEDER desde INTERNET NEXTCLOUD y con las APLICACIONES – Parte 2️⃣

El archivo que hay que modificar es: /var/www/html/nextcloud/config

Hay que añadir una línea debajo de 0 => ‘192.168.1.96’, que en vuestro caso tendrá vuestra IP. Poniendo 1 => ‘IP o dominio’ como la anterior.

$CONFIG = array (
  'instanceid' => '',
  'passwordsalt' => '',
  'secret' => '/YQtPMrC3g5f7dr',
  'trusted_domains' =>
  array (
    0 => '192.168.1.96',
    1 => 'IP o dominio'

🖪 NextCloud instalar DISCO DURO EXTERNO USB 🖫 Parte 3️⃣