diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json
index ab8a99f..6ebb703 100644
--- a/.obsidian/workspace.json
+++ b/.obsidian/workspace.json
@@ -4,21 +4,21 @@
"type": "split",
"children": [
{
- "id": "fe53232fa26b8f11",
+ "id": "689e84465cf5c511",
"type": "tabs",
"children": [
{
- "id": "5ff6ca2da58ba6f5",
+ "id": "f65aae4ade40d7e9",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
- "file": "DIX-Notes/script_bash_servers/crontab.md",
+ "file": "DIX-Notes/Install_n8n_wsl.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
- "title": "crontab"
+ "title": "Install_n8n_wsl"
}
}
]
@@ -53,7 +53,7 @@
"state": {
"type": "search",
"state": {
- "query": "pagos",
+ "query": "sudo apt update",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
@@ -169,26 +169,38 @@
"command-palette:Abrir paleta de comandos": false
}
},
- "active": "db862854e8b7e53a",
+ "active": "f65aae4ade40d7e9",
"lastOpenFiles": [
+ "DIX-Notes/SERVERS - DIX/adjuntos/B7380100",
+ "DIX-Notes/script_bash_servers/crontab.md",
+ "DIX-Notes/n8n en ubuntu server.md",
+ "DIX-Notes/Install_n8n_wsl.md",
+ "ELIMINAR/notas_express.md",
+ "Sin título.md",
+ "DIX-Notes/SERVERS - DIX/adjuntos/~$servers.xlsm",
+ "DIX-Notes/bash profile.md",
+ "DIX-Notes/RCLONE Y DRIVE/Enviar archivos del servidor a google drive..md",
+ "DIX-Notes/Otras_varias/Visualización carga de trabajo servers.md",
+ "DIX-Notes/Otras_varias/SSL red local con HAProxy.md",
+ "DIX-Notes/Otras_varias/Servidor SAMBA.md",
+ "DIX-Notes/Otras_varias/Installr xrdp (Remote Desktop).md",
+ "DIX-Notes/Otras_varias/Add User Ubuntu with sudo properties.md",
+ "DIX-Notes/Otras_varias/23.03.2025.md",
+ "DIX-Notes/IP_Estatica_DHCP_Telmex/IP Estática.md",
+ "DIX-Notes/trabajar_script_mc_backup.md",
+ "DIX-Notes/DDNS RASTREO CON CLOUDFLARE.md",
+ "DIX-Notes/corregir error ip.xala.dev vs dix-ip.duckdns.org.md",
+ "DIX-Notes/Bash_functions/Script_sincronizar_obsidian.md",
+ "DIX-Notes/Distribución servicios en las RP.md",
+ "DIX-Notes/DIX_Cluster.canvas",
+ "DIX-Notes/dns arrancar con el sistema.md",
+ "DIX-Notes/INSTALAR TESSERACT-OCT.md",
+ "DIX-Notes/Raspberry Pi as Router Wireguard Client.md",
"ELIMINAR/FIVE_MUSEO.docx.md",
"ELIMINAR/Sin título.md",
"ELIMINAR/DOF_LINEAMIENTOS para el ciclo de gestión de los programas y proyectos de inversión, a cargo de las dependencias y entidades de la Administración Pública Federal..md",
- "DIX-Notes/Otras_varias/Pagos Jesús.md",
"ELIMINAR",
- "eliminar.md",
- "Agencia_Espacial_Mexicana/Excel-Macros_AEM/Tabla de Excel a Markdown.md",
- "DIX-Notes/INSTALAR TESSERACT-OCT.md",
- "DIX-Notes/dns arrancar con el sistema.md",
- "DIX-Notes/notas_express.md",
- "DIX-Notes/bash profile.md",
- "Agencia_Espacial_Mexicana/Registro_Proyecto_Cartera_Inversion/1.- Análisis Financiero Sistema Satelital de Telecomunicaciones..md",
- "DIX-Notes/DDNS RASTREO CON CLOUDFLARE.md",
- "DIX-Notes/Wireguard con obfuscación.md",
- "DIX-Notes/script_bash_servers/crontab.md",
- "DIX-Notes/SERVERS - DIX/adjuntos/~$servers.xlsm",
"DIX-Notes/SERVERS - DIX/adjuntos/C87ED000",
- "DIX-Notes/SERVERS - DIX/SERVERS DIX.md",
"DIX-Notes/script_bash_servers/scripts_linux/shutdown_weekends.sh",
"DIX-Notes/script_bash_servers/scripts_linux/shutdown.sh",
"DIX-Notes/script_bash_servers/scripts_linux/cron.log",
@@ -196,19 +208,7 @@
"DIX-Notes/script_bash_servers/scripts_linux/history_log.txt",
"DIX-Notes/script_bash_servers/scripts_linux",
"DIX-Notes/script_bash_servers",
- "Agencia_Espacial_Mexicana/notas_express.md",
- "Agencia_Espacial_Mexicana/ELIMINAR_NOTAS/3. Museo de las Telecomunicaciones - PPI_.md",
- "Agencia_Espacial_Mexicana/DEFINICIONES Y EXPLICACIONES PROYECTOS CARTERA DE INVERSIÓN.md",
- "DIX-Notes/Transcribir Videos (WSL).md",
- "DIX-Notes/DIX_Cluster.canvas",
"Sin título.canvas",
- "DIX-Notes/corregir error ip.xala.dev vs dix-ip.duckdns.org.md",
- "Agencia_Espacial_Mexicana/Excel-Macros_AEM/Prorrateo.md",
- "Agencia_Espacial_Mexicana/Estatuto Orgánico AEM/Estatuto Orgánico AEM.md",
- "trabajar_script_mc_backup.md",
- "n8n en ubuntu server.md",
- "Install_n8n.md",
- "bash profile.md",
"DIX_Cluster.canvas",
"Agencia_Espacial_Mexicana/Cursos_Capacitación/Introducción a la Administración Pública Federal/adjuntos/Pasted image 20250801164816.png",
"Agencia_Espacial_Mexicana/Cursos_Capacitación/Introducción a la Administración Pública Federal/adjuntos/Pasted image 20250801164759.png",
diff --git a/DIX-Notes/Bash_functions/Script_sincronizar_obsidian.md b/DIX-Notes/Bash_functions/Script_sincronizar_obsidian.md
index fa28a37..7495b4f 100644
--- a/DIX-Notes/Bash_functions/Script_sincronizar_obsidian.md
+++ b/DIX-Notes/Bash_functions/Script_sincronizar_obsidian.md
@@ -1,20 +1,20 @@
-
-```bash
-obsidian_notes_sync() {
- # Sincronizar notas de Obsidian en Google Drive con rclone
-
- fecha=$(date +"D%d-%m-%Y-T%H-%M")
- file_name="dix-notes-$fecha"
- origen="/mnt/c/Users/davic/desktop/dix_notes"
- destino="obsidian_personal_dix:/obsidian/$file_name"
-
- rclone copy "$origen" "$destino" -P -v
-
- if [ $? -eq 0 ]; then
- echo "✅ Sincronización completada correctamente."
- else
- echo "❌ Error durante la sincronización."
- fi
-}
-
+
+```bash
+obsidian_notes_sync() {
+ # Sincronizar notas de Obsidian en Google Drive con rclone
+
+ fecha=$(date +"D%d-%m-%Y-T%H-%M")
+ file_name="dix-notes-$fecha"
+ origen="/mnt/c/Users/davic/desktop/dix_notes"
+ destino="obsidian_personal_dix:/obsidian/$file_name"
+
+ rclone copy "$origen" "$destino" -P -v
+
+ if [ $? -eq 0 ]; then
+ echo "✅ Sincronización completada correctamente."
+ else
+ echo "❌ Error durante la sincronización."
+ fi
+}
+
```
\ No newline at end of file
diff --git a/DIX-Notes/DIX_Cluster.canvas b/DIX-Notes/DIX_Cluster.canvas
index 8a9650f..a011dfa 100644
--- a/DIX-Notes/DIX_Cluster.canvas
+++ b/DIX-Notes/DIX_Cluster.canvas
@@ -1,42 +1,42 @@
-{
- "nodes":[
- {"id":"84eea27a1ba629c8","x":-134,"y":-349,"width":250,"height":60,"type":"text","text":""},
- {"id":"0196141ff4288b26","type":"text","text":"Web Server 1\n- NOT WORKING","x":-940,"y":-100,"width":300,"height":120,"color":"4"},
- {"id":"21f14a45f938153b","type":"text","text":"Web Server 2\n- tacrecruitment","x":-560,"y":-100,"width":275,"height":160,"color":"4"},
- {"id":"1cbfc86bc270e4b7","type":"text","text":"Web Server 3\n- tacrecruitment","x":-160,"y":-100,"width":300,"height":160,"color":"4"},
- {"id":"9031059888e87fd2","type":"text","text":"Web Server 4\n- tacrecruitment","x":220,"y":-100,"width":300,"height":160,"color":"4"},
- {"id":"6b94f426bec0518d","type":"text","text":"Web Server 5\n- NOT WORKING","x":600,"y":-100,"width":290,"height":160,"color":"4"},
- {"id":"aa754eec2e32009a","type":"text","text":"DB Server","x":-410,"y":220,"width":250,"height":60,"color":"6"},
- {"id":"f848b43274fcb59b","type":"text","text":"Load Balancer\n- ntfy: 8080\n- uk: 3001\n- gitea: 3000","x":-410,"y":-500,"width":250,"height":180,"color":"1"},
- {"id":"3e79a9f2644708b5","type":"text","text":"Git Server\n- dnsmasq\n- haproxy","x":60,"y":-500,"width":250,"height":180,"color":"2"},
- {"id":"eb5c7fcba435d5b3","type":"text","text":"Metabase Server","x":60,"y":220,"width":250,"height":60,"color":"5"},
- {"id":"00e0a1844c5114ee","type":"text","text":"Web Server 6\n- Minecraft","x":980,"y":-100,"width":250,"height":120},
- {"id":"5f334013938f0378","type":"text","text":"Router / VPN","x":-160,"y":-820,"width":250,"height":60}
- ],
- "edges":[
- {"id":"65decefa61be0132","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"0196141ff4288b26","toSide":"top"},
- {"id":"c821c7786b13de56","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"21f14a45f938153b","toSide":"top"},
- {"id":"bbdfbe93eca7f66e","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"1cbfc86bc270e4b7","toSide":"top"},
- {"id":"c1c443e22eb76535","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"9031059888e87fd2","toSide":"top"},
- {"id":"da2fc4f2409d4434","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"6b94f426bec0518d","toSide":"top"},
- {"id":"3514ce6bf3a91d92","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"0196141ff4288b26","toSide":"top"},
- {"id":"6c8f88c449b3dfb0","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"21f14a45f938153b","toSide":"top"},
- {"id":"8f098e34313079db","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"1cbfc86bc270e4b7","toSide":"top"},
- {"id":"3688e3ecf3d65c2e","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"9031059888e87fd2","toSide":"top"},
- {"id":"e755c1693a630d84","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"6b94f426bec0518d","toSide":"top"},
- {"id":"6d605db470858423","fromNode":"0196141ff4288b26","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
- {"id":"19bc3af06c0ee01e","fromNode":"21f14a45f938153b","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
- {"id":"212566b2a3648a29","fromNode":"1cbfc86bc270e4b7","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
- {"id":"84408076278e5fd7","fromNode":"9031059888e87fd2","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
- {"id":"f5bd632c66dd0a12","fromNode":"6b94f426bec0518d","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
- {"id":"3c991428822f7b13","fromNode":"aa754eec2e32009a","fromSide":"right","toNode":"eb5c7fcba435d5b3","toSide":"left"},
- {"id":"ec8c3cac6f8bafe4","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"0196141ff4288b26","toSide":"bottom"},
- {"id":"22f6b8593f8efeb2","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"21f14a45f938153b","toSide":"bottom"},
- {"id":"23e09f848ef4230b","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"1cbfc86bc270e4b7","toSide":"bottom"},
- {"id":"a1067b326a889f90","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"9031059888e87fd2","toSide":"bottom"},
- {"id":"2fa114fbbdbdd63a","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"6b94f426bec0518d","toSide":"bottom"},
- {"id":"29808fd2d4d62166","fromNode":"00e0a1844c5114ee","fromSide":"top","toNode":"3e79a9f2644708b5","toSide":"bottom"},
- {"id":"3031b8c0b36366a7","fromNode":"f848b43274fcb59b","fromSide":"right","toNode":"3e79a9f2644708b5","toSide":"left"},
- {"id":"d313ffd8360f70fc","fromNode":"5f334013938f0378","fromSide":"bottom","toNode":"f848b43274fcb59b","toSide":"top"}
- ]
+{
+ "nodes":[
+ {"id":"84eea27a1ba629c8","x":-134,"y":-349,"width":250,"height":60,"type":"text","text":""},
+ {"id":"0196141ff4288b26","type":"text","text":"Web Server 1\n- NOT WORKING","x":-940,"y":-100,"width":300,"height":120,"color":"4"},
+ {"id":"21f14a45f938153b","type":"text","text":"Web Server 2\n- tacrecruitment","x":-560,"y":-100,"width":275,"height":160,"color":"4"},
+ {"id":"1cbfc86bc270e4b7","type":"text","text":"Web Server 3\n- tacrecruitment","x":-160,"y":-100,"width":300,"height":160,"color":"4"},
+ {"id":"9031059888e87fd2","type":"text","text":"Web Server 4\n- tacrecruitment","x":220,"y":-100,"width":300,"height":160,"color":"4"},
+ {"id":"6b94f426bec0518d","type":"text","text":"Web Server 5\n- NOT WORKING","x":600,"y":-100,"width":290,"height":160,"color":"4"},
+ {"id":"aa754eec2e32009a","type":"text","text":"DB Server","x":-410,"y":220,"width":250,"height":60,"color":"6"},
+ {"id":"f848b43274fcb59b","type":"text","text":"Load Balancer\n- ntfy: 8080\n- uk: 3001\n- gitea: 3000","x":-410,"y":-500,"width":250,"height":180,"color":"1"},
+ {"id":"3e79a9f2644708b5","type":"text","text":"Git Server\n- dnsmasq\n- haproxy","x":60,"y":-500,"width":250,"height":180,"color":"2"},
+ {"id":"eb5c7fcba435d5b3","type":"text","text":"Metabase Server","x":60,"y":220,"width":250,"height":60,"color":"5"},
+ {"id":"00e0a1844c5114ee","type":"text","text":"Web Server 6\n- Minecraft","x":980,"y":-100,"width":250,"height":120},
+ {"id":"5f334013938f0378","type":"text","text":"Router / VPN","x":-160,"y":-820,"width":250,"height":60}
+ ],
+ "edges":[
+ {"id":"65decefa61be0132","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"0196141ff4288b26","toSide":"top"},
+ {"id":"c821c7786b13de56","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"21f14a45f938153b","toSide":"top"},
+ {"id":"bbdfbe93eca7f66e","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"1cbfc86bc270e4b7","toSide":"top"},
+ {"id":"c1c443e22eb76535","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"9031059888e87fd2","toSide":"top"},
+ {"id":"da2fc4f2409d4434","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"6b94f426bec0518d","toSide":"top"},
+ {"id":"3514ce6bf3a91d92","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"0196141ff4288b26","toSide":"top"},
+ {"id":"6c8f88c449b3dfb0","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"21f14a45f938153b","toSide":"top"},
+ {"id":"8f098e34313079db","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"1cbfc86bc270e4b7","toSide":"top"},
+ {"id":"3688e3ecf3d65c2e","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"9031059888e87fd2","toSide":"top"},
+ {"id":"e755c1693a630d84","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"6b94f426bec0518d","toSide":"top"},
+ {"id":"6d605db470858423","fromNode":"0196141ff4288b26","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
+ {"id":"19bc3af06c0ee01e","fromNode":"21f14a45f938153b","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
+ {"id":"212566b2a3648a29","fromNode":"1cbfc86bc270e4b7","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
+ {"id":"84408076278e5fd7","fromNode":"9031059888e87fd2","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
+ {"id":"f5bd632c66dd0a12","fromNode":"6b94f426bec0518d","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
+ {"id":"3c991428822f7b13","fromNode":"aa754eec2e32009a","fromSide":"right","toNode":"eb5c7fcba435d5b3","toSide":"left"},
+ {"id":"ec8c3cac6f8bafe4","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"0196141ff4288b26","toSide":"bottom"},
+ {"id":"22f6b8593f8efeb2","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"21f14a45f938153b","toSide":"bottom"},
+ {"id":"23e09f848ef4230b","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"1cbfc86bc270e4b7","toSide":"bottom"},
+ {"id":"a1067b326a889f90","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"9031059888e87fd2","toSide":"bottom"},
+ {"id":"2fa114fbbdbdd63a","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"6b94f426bec0518d","toSide":"bottom"},
+ {"id":"29808fd2d4d62166","fromNode":"00e0a1844c5114ee","fromSide":"top","toNode":"3e79a9f2644708b5","toSide":"bottom"},
+ {"id":"3031b8c0b36366a7","fromNode":"f848b43274fcb59b","fromSide":"right","toNode":"3e79a9f2644708b5","toSide":"left"},
+ {"id":"d313ffd8360f70fc","fromNode":"5f334013938f0378","fromSide":"bottom","toNode":"f848b43274fcb59b","toSide":"top"}
+ ]
}
\ No newline at end of file
diff --git a/DIX-Notes/Distribución servicios en las RP.md b/DIX-Notes/Distribución servicios en las RP.md
index 25928e8..62c3674 100644
--- a/DIX-Notes/Distribución servicios en las RP.md
+++ b/DIX-Notes/Distribución servicios en las RP.md
@@ -1,9 +1,9 @@
-uk:
-- ntfy (no ervice):8080
-- uptimekuma (no service):3001
-- gitea:3000
-
-lb:
-- dnsmasq
-- haproxy
-
+uk:
+- ntfy (no ervice):8080
+- uptimekuma (no service):3001
+- gitea:3000
+
+lb:
+- dnsmasq
+- haproxy
+
diff --git a/DIX-Notes/IP_Estatica_DHCP_Telmex/IP Estática.md b/DIX-Notes/IP_Estatica_DHCP_Telmex/IP Estática.md
index a6ac054..8754734 100644
--- a/DIX-Notes/IP_Estatica_DHCP_Telmex/IP Estática.md
+++ b/DIX-Notes/IP_Estatica_DHCP_Telmex/IP Estática.md
@@ -1,148 +1,148 @@
-En el navegador web ir a http://192.168.1.254/
-
-**Red** > **Red Doméstica** > **Estática DHCP Entrada**
-Pegar la dirección MAC y la IP a asignar
-
-
-
-
-
-Ejemplo:
-Dirección MAC: 80:af:ca:76:e3:de
-Dirección IP: 192.168.1.71
-
-La IP y la Dirección MAC del dispositivo la puedes ver en:
-
-**Estado** > **Dispositivos Conectados**
-
-
-
- Categoria |
- Valores |
-
-
- Activar |
- True |
-
-
- Protocolo |
- Servidor Wireguard |
-
-
- Acceso de cliente |
- Internet y Red Local |
-
-
- Host de punto final |
- 192.168.1.64 |
-
-
- Puerto de escucha |
- 51820 |
-
-
- Dirección IP |
- 10.10.10.1 |
-
-
- MTU |
- 1420 |
-
-
-
-VPN:
-van_laptop
-dix_laptop
-dix_tablet
-dix_work_pc
-yarelis_cub_cell
-
-
-Puertos:
-
-
- Nombre |
- Protocolo |
- Interfaz |
- Puerto externo |
- Dirección IP interna |
- Puerto interno |
-
-
- lb |
- TCP |
- WAN |
- 80 |
- 192.168.10.234 |
- 80 |
-
-
- gitea |
- TCP |
- WAN |
- 3000 |
- 192.168.10.234 |
- 3000 |
-
-
-
-
-TELMEX Port Forwarding
-
-
-
- Nombre de la Aplicación |
- Puerto WAN |
- Puerto LAN |
- Nombre del Dispositivo |
- Cliente Interno |
- Protocolo |
- Descripción |
-
-
- Configuración de Usuario |
- 51820~51820 |
- 51820~51820 |
- WR3000 |
- 192.168.1.64 |
- UDP |
- vpn |
-
-
- Configuración de Usuario |
- 80~80 |
- 80~80 |
- WR3000 |
- 192.168.1.64 |
- TCP |
- web |
-
-
- Configuración de Usuario |
- 3000~3000 |
- 3000~3000 |
- WR3000 |
- 192.168.1.64 |
- TCP |
- gitea server |
-
-
-
-
-
-En cudy el activador de puerto vpn hago esto:
-Nombre: VPN
-Protocolo de activación: TCP+UDP
-Puerto de Activación: 51820
-Protocolo Externo:
-
-VPN Clientes:
-
-
-| IP Cliente | Usuario |
-| ---------- | --------------- |
-| 10.10.10.2 | dix-lenovo |
-| 10.10.10.3 | router_zandunga |
-
-
-
+En el navegador web ir a http://192.168.1.254/
+
+**Red** > **Red Doméstica** > **Estática DHCP Entrada**
+Pegar la dirección MAC y la IP a asignar
+
+
+
+
+
+Ejemplo:
+Dirección MAC: 80:af:ca:76:e3:de
+Dirección IP: 192.168.1.71
+
+La IP y la Dirección MAC del dispositivo la puedes ver en:
+
+**Estado** > **Dispositivos Conectados**
+
+
+
+ Categoria |
+ Valores |
+
+
+ Activar |
+ True |
+
+
+ Protocolo |
+ Servidor Wireguard |
+
+
+ Acceso de cliente |
+ Internet y Red Local |
+
+
+ Host de punto final |
+ 192.168.1.64 |
+
+
+ Puerto de escucha |
+ 51820 |
+
+
+ Dirección IP |
+ 10.10.10.1 |
+
+
+ MTU |
+ 1420 |
+
+
+
+VPN:
+van_laptop
+dix_laptop
+dix_tablet
+dix_work_pc
+yarelis_cub_cell
+
+
+Puertos:
+
+
+ Nombre |
+ Protocolo |
+ Interfaz |
+ Puerto externo |
+ Dirección IP interna |
+ Puerto interno |
+
+
+ lb |
+ TCP |
+ WAN |
+ 80 |
+ 192.168.10.234 |
+ 80 |
+
+
+ gitea |
+ TCP |
+ WAN |
+ 3000 |
+ 192.168.10.234 |
+ 3000 |
+
+
+
+
+TELMEX Port Forwarding
+
+
+
+ Nombre de la Aplicación |
+ Puerto WAN |
+ Puerto LAN |
+ Nombre del Dispositivo |
+ Cliente Interno |
+ Protocolo |
+ Descripción |
+
+
+ Configuración de Usuario |
+ 51820~51820 |
+ 51820~51820 |
+ WR3000 |
+ 192.168.1.64 |
+ UDP |
+ vpn |
+
+
+ Configuración de Usuario |
+ 80~80 |
+ 80~80 |
+ WR3000 |
+ 192.168.1.64 |
+ TCP |
+ web |
+
+
+ Configuración de Usuario |
+ 3000~3000 |
+ 3000~3000 |
+ WR3000 |
+ 192.168.1.64 |
+ TCP |
+ gitea server |
+
+
+
+
+
+En cudy el activador de puerto vpn hago esto:
+Nombre: VPN
+Protocolo de activación: TCP+UDP
+Puerto de Activación: 51820
+Protocolo Externo:
+
+VPN Clientes:
+
+
+| IP Cliente | Usuario |
+| ---------- | --------------- |
+| 10.10.10.2 | dix-lenovo |
+| 10.10.10.3 | router_zandunga |
+
+
+
diff --git a/DIX-Notes/Install_n8n.md b/DIX-Notes/Install_n8n_wsl.md
similarity index 93%
rename from DIX-Notes/Install_n8n.md
rename to DIX-Notes/Install_n8n_wsl.md
index e5567b2..e05153e 100644
--- a/DIX-Notes/Install_n8n.md
+++ b/DIX-Notes/Install_n8n_wsl.md
@@ -1,227 +1,231 @@
-¡Claro, David! Aquí tienes una guía clara para instalar **n8n** en **WSL (Windows Subsystem for Linux)**. Usaremos Node.js (v18 LTS o superior) y npm para instalarlo directamente.
-
----
-
-### ✅ **Requisitos previos**
-
-Asegúrate de tener lo siguiente:
-
-1. **WSL** ya instalado (preferentemente Ubuntu).
-
-2. **Node.js** (v18 o superior).
-
-3. **npm** (gestor de paquetes de Node.js).
-
-
----
-
-### 🔧 **Pasos para instalar n8n en WSL**
-
-#### 1. Actualiza tu sistema
-
-```bash
-sudo apt update && sudo apt upgrade -y
-```
-
-#### 2. Instala Node.js (vía nvm recomendado)
-
-```bash
-curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
-source ~/.bashrc
-nvm install --lts
-nvm use --lts
-```
-
-==Para ubuntu server la instalación de Node.js==
-```bash
-curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
-sudo apt install -y nodejs
-```
-
-
-Verifica que estén bien instalados:
-
-```bash
-node -v
-npm -v
-```
-
-#### 3. Instala n8n globalmente
-
-```bash
-npm install -g n8n
-```
-
-Esto instalará el CLI de n8n de forma global.
-
-#### 4. Ejecuta n8n
-
-```bash
-n8n
-```
-
-Verás un mensaje como:
-
-```
-n8n ready on 127.0.0.1, port 5678
-```
-
-Desde Windows, abre tu navegador y ve a:
-📍 `http://localhost:5678`
-
----
-
-### 🛡️ Opcional: Configurar credenciales y seguridad
-
-Por defecto, n8n se instala sin autenticación. Para producción o pruebas seguras, puedes establecer una contraseña así:
-
-```bash
-export N8N_BASIC_AUTH_ACTIVE=true
-export N8N_BASIC_AUTH_USER=admin
-export N8N_BASIC_AUTH_PASSWORD=mi_contraseña_segura
-n8n
-```
-
----
-
-### 🛠️ ¿Quieres levantarlo en segundo plano?
-
-Puedes usar `tmux`, `screen` o `pm2`:
-
-Ejemplo con `pm2`:
-
-```bash
-npm install -g pm2
-pm2 start n8n
-pm2 startup
-pm2 save
-```
-
----
-
-¿Quieres que n8n arranque automáticamente al iniciar WSL o levantarlo con Docker también? Puedo ayudarte con eso también si gustas.
-
-
-# ejecutar en segundo plano n8n en wsl:
-
-Sí, el enfoque que muestras con `systemd` para levantar un servidor de Minecraft **es perfectamente replicable** para **n8n**, con unas pequeñas adaptaciones.
-
-### 🚫 PERO HAY UN DETALLE IMPORTANTE:
-
-WSL **no soporta `systemd` por defecto** en versiones antiguas. Sin embargo, **WSL2 en Windows 11** ya permite activarlo.
-
----
-
-## ✅ OPCIÓN A: Si tienes WSL2 con systemd habilitado
-
-### 1. Verifica que `systemd` esté habilitado
-
-En `/etc/wsl.conf`, debe decir:
-
-```ini
-[boot]
-systemd=true
-```
-
-Luego reinicia WSL:
-
-```bash
-wsl --shutdown
-```
-
----
-
-### 2. Crear servicio systemd para n8n
-
-```bash
-sudo nano /etc/systemd/system/n8n.service
-```
-
-Contenido del archivo (ajusta tu nombre de usuario y la ruta si es necesario):
-
-```ini
-[Unit]
-Description=n8n workflow automation
-After=network.target
-
-[Service]
-User=web # <- tu usuario de WSL
-Environment=PATH=/home/web/.nvm/versions/node/v18.XX.X/bin:/usr/bin:/bin
-Environment=NODE_ENV=production
-WorkingDirectory=/home/web
-ExecStart=/home/web/.nvm/versions/node/v18.XX.X/bin/n8n
-Restart=on-failure
-
-[Install]
-WantedBy=default.target
-```
-
-📌 Reemplaza `v18.XX.X` con la versión exacta que tienes (`node -v` y `which n8n` te ayudan a saberlo).
-
----
-
-==Para ubuntu server==
-```bash
-ExecStart=/usr/bin/n8n
-```
-### 3. Habilita y levanta el servicio
-
-```bash
-sudo systemctl daemon-reload
-sudo systemctl enable n8n
-sudo systemctl start n8n
-```
-
-Verifica que esté funcionando:
-
-```bash
-systemctl status n8n
-```
-
-
-==Para ubuntu server==
-
-Para que puedas acceder a `n8n` desde otro equipo (navegador o API):
-
-- Asegúrate de configurar el host:
-```bash
-export N8N_HOST=0.0.0.0
-```
-
-- O en el archivo de servicio:
-```bash
-Environment=N8N_HOST=0.0.0.0
-```
-
-- Y abre el puerto 5678:
-
-```bash
-sudo ufw allow 5678/tcp
-```
-
----
-
-## 🟡 OPCIÓN B: Si NO tienes systemd activado (por ejemplo en Windows 10 o WSL1)
-
-Usa mejor **PM2** para ejecutar en segundo plano:
-
-```bash
-npm install -g pm2
-pm2 start n8n
-pm2 startup
-pm2 save
-```
-
-Con eso n8n se ejecutará como demonio cada vez que abras WSL.
-
----
-
-## 🔄 ¿Cómo reiniciar n8n con systemd?
-
-```bash
-sudo systemctl restart n8n
-```
-
-¿Quieres que también tenga autenticación, log de errores o conecte a PostgreSQL? Puedo ayudarte a extender el servicio según tus necesidades.
-
-¿Te gustaría saber cómo revisar logs o cómo incluir variables de entorno como el webhook URL base?
+¡Claro, David! Aquí tienes una guía clara para instalar **n8n** en **WSL (Windows Subsystem for Linux)**. Usaremos Node.js (v18 LTS o superior) y npm para instalarlo directamente.
+
+---
+
+### ✅ **Requisitos previos**
+
+Asegúrate de tener lo siguiente:
+
+1. **WSL** ya instalado (preferentemente Ubuntu).
+
+2. **Node.js** (v18 o superior).
+
+3. **npm** (gestor de paquetes de Node.js).
+
+
+---
+
+### 🔧 **Pasos para instalar n8n en WSL**
+
+#### 1. Actualiza tu sistema
+
+```bash
+sudo apt update && sudo apt upgrade -y
+```
+
+#### 2. Instala Node.js (vía nvm recomendado)
+
+```bash
+curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
+source ~/.bashrc
+nvm install --lts
+nvm use --lts
+```
+
+==Para ubuntu server la instalación de Node.js==
+```bash
+curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
+sudo apt install -y nodejs
+```
+
+
+Verifica que estén bien instalados:
+
+```bash
+node -v
+npm -v
+```
+
+#### 3. Instala n8n globalmente
+
+```bash
+#sudo npm install -g n8n
+mkdir ~/.npm-global
+npm config set prefix '~/.npm-global'
+export PATH=$PATH:~/.npm-global/bin
+
+```
+
+Esto instalará el CLI de n8n de forma global.
+
+#### 4. Ejecuta n8n
+
+```bash
+n8n
+```
+
+Verás un mensaje como:
+
+```
+n8n ready on 127.0.0.1, port 5678
+```
+
+Desde Windows, abre tu navegador y ve a:
+📍 `http://localhost:5678`
+
+---
+
+### 🛡️ Opcional: Configurar credenciales y seguridad
+
+Por defecto, n8n se instala sin autenticación. Para producción o pruebas seguras, puedes establecer una contraseña así:
+
+```bash
+export N8N_BASIC_AUTH_ACTIVE=true
+export N8N_BASIC_AUTH_USER=admin
+export N8N_BASIC_AUTH_PASSWORD=mi_contraseña_segura
+n8n
+```
+
+---
+
+### 🛠️ ¿Quieres levantarlo en segundo plano?
+
+Puedes usar `tmux`, `screen` o `pm2`:
+
+Ejemplo con `pm2`:
+
+```bash
+npm install -g pm2
+pm2 start n8n
+pm2 startup
+pm2 save
+```
+
+---
+
+¿Quieres que n8n arranque automáticamente al iniciar WSL o levantarlo con Docker también? Puedo ayudarte con eso también si gustas.
+
+
+# ejecutar en segundo plano n8n en wsl:
+
+Sí, el enfoque que muestras con `systemd` para levantar un servidor de Minecraft **es perfectamente replicable** para **n8n**, con unas pequeñas adaptaciones.
+
+### 🚫 PERO HAY UN DETALLE IMPORTANTE:
+
+WSL **no soporta `systemd` por defecto** en versiones antiguas. Sin embargo, **WSL2 en Windows 11** ya permite activarlo.
+
+---
+
+## ✅ OPCIÓN A: Si tienes WSL2 con systemd habilitado
+
+### 1. Verifica que `systemd` esté habilitado
+
+En `/etc/wsl.conf`, debe decir:
+
+```ini
+[boot]
+systemd=true
+```
+
+Luego reinicia WSL:
+
+```bash
+wsl --shutdown
+```
+
+---
+
+### 2. Crear servicio systemd para n8n
+
+```bash
+sudo nano /etc/systemd/system/n8n.service
+```
+
+Contenido del archivo (ajusta tu nombre de usuario y la ruta si es necesario):
+
+```ini
+[Unit]
+Description=n8n workflow automation
+After=network.target
+
+[Service]
+User=web # <- tu usuario de WSL
+Environment=PATH=/home/web/.nvm/versions/node/v18.XX.X/bin:/usr/bin:/bin
+Environment=NODE_ENV=production
+WorkingDirectory=/home/web
+ExecStart=/home/web/.nvm/versions/node/v18.XX.X/bin/n8n
+Restart=on-failure
+
+[Install]
+WantedBy=default.target
+```
+
+📌 Reemplaza `v18.XX.X` con la versión exacta que tienes (`node -v` y `which n8n` te ayudan a saberlo).
+
+---
+
+==Para ubuntu server==
+```bash
+ExecStart=/usr/bin/n8n
+```
+### 3. Habilita y levanta el servicio
+
+```bash
+sudo systemctl daemon-reload
+sudo systemctl enable n8n
+sudo systemctl start n8n
+```
+
+Verifica que esté funcionando:
+
+```bash
+systemctl status n8n
+```
+
+
+==Para ubuntu server==
+
+Para que puedas acceder a `n8n` desde otro equipo (navegador o API):
+
+- Asegúrate de configurar el host:
+```bash
+export N8N_HOST=0.0.0.0
+```
+
+- O en el archivo de servicio:
+```bash
+Environment=N8N_HOST=0.0.0.0
+```
+
+- Y abre el puerto 5678:
+
+```bash
+sudo ufw allow 5678/tcp
+```
+
+---
+
+## 🟡 OPCIÓN B: Si NO tienes systemd activado (por ejemplo en Windows 10 o WSL1)
+
+Usa mejor **PM2** para ejecutar en segundo plano:
+
+```bash
+npm install -g pm2
+pm2 start n8n
+pm2 startup
+pm2 save
+```
+
+Con eso n8n se ejecutará como demonio cada vez que abras WSL.
+
+---
+
+## 🔄 ¿Cómo reiniciar n8n con systemd?
+
+```bash
+sudo systemctl restart n8n
+```
+
+¿Quieres que también tenga autenticación, log de errores o conecte a PostgreSQL? Puedo ayudarte a extender el servicio según tus necesidades.
+
+¿Te gustaría saber cómo revisar logs o cómo incluir variables de entorno como el webhook URL base?
diff --git a/DIX-Notes/Otras_varias/23.03.2025.md b/DIX-Notes/Otras_varias/23.03.2025.md
index e342b07..0bb66e7 100644
--- a/DIX-Notes/Otras_varias/23.03.2025.md
+++ b/DIX-Notes/Otras_varias/23.03.2025.md
@@ -1,72 +1,72 @@
-# Soluciones
-Modal
-
-
-# Navbar
-- [x] Cambiar tipo de letra (Calibri ó Aptos)
-- [x] Cambiar el tamaño de fuente
-- [ ] Cambiar el estilo de Contacto
-- [x] Footer y Navbar hacer letra más grande
-https://www.buk.mx/
-
-trabajar en sección de
-
-- Publicaciones:
-- [ ] Añadir
-- [ ] Modificar
-- [ ] Eliminar
-
-- Administrador
-- [ ] Crear usuario
-- [ ] Eliminar usuario
-
-https://codepen.io/david-felipe-huertas/pen/PoNqJgM
-
-uw | main
-80 x 90
-
-Soluciones
-
-65 - 70 Letra más grande
-- checar relación imagen
-
-QR que mande a la página web
-
-![[Pasted image 20250401111621.png]]
-
-
-Readme file forma
-
-# Modificaciones en producción
-
-1. Debes de asegurar que el sitio tenga https.
-2. Cambiar la configuración en el archivo main.py:
- 1.
- 2. response.set_cookie('access_token_cookie', access_token, httponly=True, **secure=True**, samesite='Lax')
-
-
-soluciones > fondo blanco.
-
-Letra Open-Sans
-
-gradient
-
-pinkelephant-latam.com
-https://pinkelephant-latam.com/
-
-### Montserrat, Source Sans Pro, sans-serif
-
--> Gráficas de algo
-
-
-
-
-
-- logo vueltas en navbar
-- logo en horizontal.
-- ojo en contraseña
-- re checar arroba
-
-
-
-
+# Soluciones
+Modal
+
+
+# Navbar
+- [x] Cambiar tipo de letra (Calibri ó Aptos)
+- [x] Cambiar el tamaño de fuente
+- [ ] Cambiar el estilo de Contacto
+- [x] Footer y Navbar hacer letra más grande
+https://www.buk.mx/
+
+trabajar en sección de
+
+- Publicaciones:
+- [ ] Añadir
+- [ ] Modificar
+- [ ] Eliminar
+
+- Administrador
+- [ ] Crear usuario
+- [ ] Eliminar usuario
+
+https://codepen.io/david-felipe-huertas/pen/PoNqJgM
+
+uw | main
+80 x 90
+
+Soluciones
+
+65 - 70 Letra más grande
+- checar relación imagen
+
+QR que mande a la página web
+
+![[Pasted image 20250401111621.png]]
+
+
+Readme file forma
+
+# Modificaciones en producción
+
+1. Debes de asegurar que el sitio tenga https.
+2. Cambiar la configuración en el archivo main.py:
+ 1.
+ 2. response.set_cookie('access_token_cookie', access_token, httponly=True, **secure=True**, samesite='Lax')
+
+
+soluciones > fondo blanco.
+
+Letra Open-Sans
+
+gradient
+
+pinkelephant-latam.com
+https://pinkelephant-latam.com/
+
+### Montserrat, Source Sans Pro, sans-serif
+
+-> Gráficas de algo
+
+
+
+
+
+- logo vueltas en navbar
+- logo en horizontal.
+- ojo en contraseña
+- re checar arroba
+
+
+
+
diff --git a/DIX-Notes/Otras_varias/Add User Ubuntu with sudo properties.md b/DIX-Notes/Otras_varias/Add User Ubuntu with sudo properties.md
index 8281274..18342cc 100644
--- a/DIX-Notes/Otras_varias/Add User Ubuntu with sudo properties.md
+++ b/DIX-Notes/Otras_varias/Add User Ubuntu with sudo properties.md
@@ -1,95 +1,95 @@
-En **Ubuntu Server**, puedes crear un nuevo usuario con privilegios de administrador siguiendo estos pasos:
-
-### 📌 1. Crear el usuario
-
-Ejecuta el siguiente comando, reemplazando `nuevo_usuario` con el nombre que quieras:
-
-```bash
-sudo adduser nuevo_usuario
-```
-
-Te pedirá que configures una contraseña y opcionalmente algunos datos adicionales.
-
----
-
-### 📌 2. Otorgarle permisos de administrador (sudo)
-
-Agrega el usuario al grupo `sudo`:
-
-```bash
-sudo usermod -aG sudo nuevo_usuario
-```
-
-Esto le permite ejecutar comandos administrativos con `sudo`.
-
----
-
-### 📌 3. Verificar que tiene privilegios
-
-Inicia sesión con el nuevo usuario:
-
-```bash
-su - nuevo_usuario
-```
-
-Luego, prueba ejecutar un comando con permisos de administrador:
-
-```bash
-sudo whoami
-```
-
-Si devuelve **"root"**, el usuario tiene permisos de administrador correctamente. 🚀
-
-# Eliminar usuario
-
-Para eliminar un usuario en **Ubuntu (o cualquier Linux basado en Debian)**, puedes usar el comando `deluser` o `userdel`.
-
----
-
-### ✅ **1. Eliminar el usuario pero conservar su carpeta personal**
-
-```bash
-sudo deluser usuario
-```
-
-Esto **elimina al usuario** pero deja su **directorio `/home/usuario/`** intacto.
-
----
-
-### ✅ **2. Eliminar el usuario y su carpeta personal**
-
-```bash
-sudo deluser --remove-home usuario
-```
-
-Esto **elimina al usuario** y también **su directorio `/home/usuario/`**.
-
----
-
-### ✅ **3. Forzar eliminación con `userdel` (método alternativo)**
-
-Si `deluser` no está disponible, usa:
-
-```bash
-sudo userdel -r usuario
-```
-
-🔹 **`-r`** → Elimina la carpeta `/home/usuario/`.
-
-⚠️ **Cuidado:** Esto borra todos los archivos del usuario.
-
----
-
-### ✅ **4. Verificar que el usuario fue eliminado**
-
-Después de eliminarlo, verifica que ya no exista:
-
-```bash
-cat /etc/passwd | grep usuario
-```
-
-Si no muestra nada, significa que fue eliminado correctamente.
-
----
-
+En **Ubuntu Server**, puedes crear un nuevo usuario con privilegios de administrador siguiendo estos pasos:
+
+### 📌 1. Crear el usuario
+
+Ejecuta el siguiente comando, reemplazando `nuevo_usuario` con el nombre que quieras:
+
+```bash
+sudo adduser nuevo_usuario
+```
+
+Te pedirá que configures una contraseña y opcionalmente algunos datos adicionales.
+
+---
+
+### 📌 2. Otorgarle permisos de administrador (sudo)
+
+Agrega el usuario al grupo `sudo`:
+
+```bash
+sudo usermod -aG sudo nuevo_usuario
+```
+
+Esto le permite ejecutar comandos administrativos con `sudo`.
+
+---
+
+### 📌 3. Verificar que tiene privilegios
+
+Inicia sesión con el nuevo usuario:
+
+```bash
+su - nuevo_usuario
+```
+
+Luego, prueba ejecutar un comando con permisos de administrador:
+
+```bash
+sudo whoami
+```
+
+Si devuelve **"root"**, el usuario tiene permisos de administrador correctamente. 🚀
+
+# Eliminar usuario
+
+Para eliminar un usuario en **Ubuntu (o cualquier Linux basado en Debian)**, puedes usar el comando `deluser` o `userdel`.
+
+---
+
+### ✅ **1. Eliminar el usuario pero conservar su carpeta personal**
+
+```bash
+sudo deluser usuario
+```
+
+Esto **elimina al usuario** pero deja su **directorio `/home/usuario/`** intacto.
+
+---
+
+### ✅ **2. Eliminar el usuario y su carpeta personal**
+
+```bash
+sudo deluser --remove-home usuario
+```
+
+Esto **elimina al usuario** y también **su directorio `/home/usuario/`**.
+
+---
+
+### ✅ **3. Forzar eliminación con `userdel` (método alternativo)**
+
+Si `deluser` no está disponible, usa:
+
+```bash
+sudo userdel -r usuario
+```
+
+🔹 **`-r`** → Elimina la carpeta `/home/usuario/`.
+
+⚠️ **Cuidado:** Esto borra todos los archivos del usuario.
+
+---
+
+### ✅ **4. Verificar que el usuario fue eliminado**
+
+Después de eliminarlo, verifica que ya no exista:
+
+```bash
+cat /etc/passwd | grep usuario
+```
+
+Si no muestra nada, significa que fue eliminado correctamente.
+
+---
+
🚀 **¿Necesitas eliminar usuarios en masa o algo más específico?** Dime y te ayudo. 😃🔥
\ No newline at end of file
diff --git a/DIX-Notes/Otras_varias/Installr xrdp (Remote Desktop).md b/DIX-Notes/Otras_varias/Installr xrdp (Remote Desktop).md
index 9669d06..5fbff61 100644
--- a/DIX-Notes/Otras_varias/Installr xrdp (Remote Desktop).md
+++ b/DIX-Notes/Otras_varias/Installr xrdp (Remote Desktop).md
@@ -1,8 +1,8 @@
-sudo apt install xrdp -y
-sudo systemctl status xrdp
-sudo adduser xrdp ssl-cert
-sudo systemctl restart xrdp
-sudo ufw allow from 192.168.10.0/24 to any port 3389
-
-conectarse a través de remote desktop
-ingresar la ip del equipop remoto en la ui de windows remote desktop
+sudo apt install xrdp -y
+sudo systemctl status xrdp
+sudo adduser xrdp ssl-cert
+sudo systemctl restart xrdp
+sudo ufw allow from 192.168.10.0/24 to any port 3389
+
+conectarse a través de remote desktop
+ingresar la ip del equipop remoto en la ui de windows remote desktop
diff --git a/DIX-Notes/Otras_varias/SSL red local con HAProxy.md b/DIX-Notes/Otras_varias/SSL red local con HAProxy.md
index eeebc1b..a848215 100644
--- a/DIX-Notes/Otras_varias/SSL red local con HAProxy.md
+++ b/DIX-Notes/Otras_varias/SSL red local con HAProxy.md
@@ -1,99 +1,99 @@
-Sí, puedes usar **Let's Encrypt** para generar certificados SSL gratuitos y configurarlos en **HAProxy** para tus distintos sitios. Aquí tienes un resumen de cómo hacerlo:
-
----
-
-### 1️⃣ **Instalar Certbot en tu Servidor**
-
-Certbot es la herramienta oficial de Let's Encrypt para generar certificados.
-
-```bash
-sudo apt update && sudo apt upgrade -y
-sudo apt install certbot -y
-```
-
-Si HAProxy está en la misma máquina donde se servirán los sitios, puedes usar **Certbot en modo standalone**.
-
----
-
-### 2️⃣ **Generar Certificados para cada Dominio**
-
-Ejecuta el siguiente comando para generar un certificado para tu dominio:
-
-```bash
-sudo certbot certonly --standalone -d ejemplo.com -d www.ejemplo.com
-# Ejemplo:
-sudo certbot certonly --standalone -d ai-reports.1.temporal.work -d www.ai-reports.1.temporal.work
-```
-
-Si tienes varios dominios en tu HAProxy, repite el comando para cada uno.
-
-Esto generará los certificados en:
-
-```
-/etc/letsencrypt/live/ejemplo.com/fullchain.pem
-/etc/letsencrypt/live/ejemplo.com/privkey.pem
-```
-
----
-
-### 3️⃣ **Combinar los Certificados para HAProxy**
-
-HAProxy requiere que el certificado y la clave privada estén en un solo archivo. Usa este comando para combinarlos:
-
-```bash
-cat /etc/letsencrypt/live/ejemplo.com/fullchain.pem \
- /etc/letsencrypt/live/ejemplo.com/privkey.pem > \
- /etc/haproxy/certs/ejemplo.com.pem
-```
-
-Repite esto para cada dominio y asegúrate de que HAProxy pueda leer los archivos:
-
-```bash
-sudo chmod 600 /etc/haproxy/certs/*.pem
-```
-
----
-
-### 4️⃣ **Configurar HAProxy para HTTPS**
-
-Edita el archivo de configuración de HAProxy (generalmente en `/etc/haproxy/haproxy.cfg`) y agrega la configuración SSL para cada dominio:
-
-```haproxy
-frontend https_front
- bind *:443 ssl crt /etc/haproxy/certs/ejemplo.com.pem crt /etc/haproxy/certs/
- mode http
- use_backend backend_ejemplo if { hdr(host) -i ejemplo.com }
-
-backend backend_ejemplo
- server srv1 192.168.1.100:80 check
-```
-
-Esto permite que HAProxy seleccione el certificado correcto según el **hostname** de la solicitud.
-
----
-
-### 5️⃣ **Renovación Automática**
-
-Let's Encrypt requiere renovar los certificados cada 90 días. Configura una tarea en **cron** para renovar y actualizar los archivos automáticamente:
-
-Edita el crontab:
-
-```bash
-sudo crontab -e
-```
-
-Añade esta línea:
-
-```bash
-0 3 * * * certbot renew --quiet && systemctl reload haproxy
-```
-
-Esto intentará renovar los certificados diariamente a las **3 AM** y recargará HAProxy si hay cambios.
-
----
-
-### ✅ **Conclusión**
-
-Con esto, HAProxy gestionará múltiples sitios con SSL gratuito de Let's Encrypt. Cada dominio tendrá su propio certificado y la renovación será automática. 🚀
-
+Sí, puedes usar **Let's Encrypt** para generar certificados SSL gratuitos y configurarlos en **HAProxy** para tus distintos sitios. Aquí tienes un resumen de cómo hacerlo:
+
+---
+
+### 1️⃣ **Instalar Certbot en tu Servidor**
+
+Certbot es la herramienta oficial de Let's Encrypt para generar certificados.
+
+```bash
+sudo apt update && sudo apt upgrade -y
+sudo apt install certbot -y
+```
+
+Si HAProxy está en la misma máquina donde se servirán los sitios, puedes usar **Certbot en modo standalone**.
+
+---
+
+### 2️⃣ **Generar Certificados para cada Dominio**
+
+Ejecuta el siguiente comando para generar un certificado para tu dominio:
+
+```bash
+sudo certbot certonly --standalone -d ejemplo.com -d www.ejemplo.com
+# Ejemplo:
+sudo certbot certonly --standalone -d ai-reports.1.temporal.work -d www.ai-reports.1.temporal.work
+```
+
+Si tienes varios dominios en tu HAProxy, repite el comando para cada uno.
+
+Esto generará los certificados en:
+
+```
+/etc/letsencrypt/live/ejemplo.com/fullchain.pem
+/etc/letsencrypt/live/ejemplo.com/privkey.pem
+```
+
+---
+
+### 3️⃣ **Combinar los Certificados para HAProxy**
+
+HAProxy requiere que el certificado y la clave privada estén en un solo archivo. Usa este comando para combinarlos:
+
+```bash
+cat /etc/letsencrypt/live/ejemplo.com/fullchain.pem \
+ /etc/letsencrypt/live/ejemplo.com/privkey.pem > \
+ /etc/haproxy/certs/ejemplo.com.pem
+```
+
+Repite esto para cada dominio y asegúrate de que HAProxy pueda leer los archivos:
+
+```bash
+sudo chmod 600 /etc/haproxy/certs/*.pem
+```
+
+---
+
+### 4️⃣ **Configurar HAProxy para HTTPS**
+
+Edita el archivo de configuración de HAProxy (generalmente en `/etc/haproxy/haproxy.cfg`) y agrega la configuración SSL para cada dominio:
+
+```haproxy
+frontend https_front
+ bind *:443 ssl crt /etc/haproxy/certs/ejemplo.com.pem crt /etc/haproxy/certs/
+ mode http
+ use_backend backend_ejemplo if { hdr(host) -i ejemplo.com }
+
+backend backend_ejemplo
+ server srv1 192.168.1.100:80 check
+```
+
+Esto permite que HAProxy seleccione el certificado correcto según el **hostname** de la solicitud.
+
+---
+
+### 5️⃣ **Renovación Automática**
+
+Let's Encrypt requiere renovar los certificados cada 90 días. Configura una tarea en **cron** para renovar y actualizar los archivos automáticamente:
+
+Edita el crontab:
+
+```bash
+sudo crontab -e
+```
+
+Añade esta línea:
+
+```bash
+0 3 * * * certbot renew --quiet && systemctl reload haproxy
+```
+
+Esto intentará renovar los certificados diariamente a las **3 AM** y recargará HAProxy si hay cambios.
+
+---
+
+### ✅ **Conclusión**
+
+Con esto, HAProxy gestionará múltiples sitios con SSL gratuito de Let's Encrypt. Cada dominio tendrá su propio certificado y la renovación será automática. 🚀
+
Si necesitas ayuda con algún paso, dime cómo tienes configurado tu HAProxy y lo ajustamos. 😃
\ No newline at end of file
diff --git a/DIX-Notes/Otras_varias/Servidor SAMBA.md b/DIX-Notes/Otras_varias/Servidor SAMBA.md
index 99b18b9..d82bf58 100644
--- a/DIX-Notes/Otras_varias/Servidor SAMBA.md
+++ b/DIX-Notes/Otras_varias/Servidor SAMBA.md
@@ -1,38 +1,38 @@
-El comando que has proporcionado realiza lo siguiente:
-
-### **Explicación del comando:**
-```bash
-sudo apt install samba samba-common-bin -y
-```
-
-1. **`sudo`**: Ejecuta el comando con permisos de administrador (root), necesario para instalar software en sistemas basados en Debian/Ubuntu.
-
-2. **`apt install`**: Usa el gestor de paquetes APT (Advanced Package Tool) para instalar software desde los repositorios configurados en el sistema.
-
-3. **`samba`**: Es el paquete principal de Samba, un software que permite compartir archivos e impresoras entre sistemas Linux/Unix y Windows mediante los protocolos SMB/CIFS.
-
-4. **`samba-common-bin`**: Este paquete incluye utilidades adicionales para Samba, como herramientas de configuración (`smbpasswd`, `testparm`, etc.) que son útiles para administrar el servidor Samba.
-
-5. **`-y`**: Responde automáticamente "sí" (yes) a cualquier pregunta de confirmación durante la instalación, evitando interrupciones.
-
----
-
-### **¿Para qué sirve Samba?**
-- Permite compartir archivos y carpetas entre Linux y Windows en una red local.
-- Habilita la autenticación de usuarios (puede integrarse con usuarios del sistema o con un dominio Windows Active Directory).
-- Es útil para crear servidores de archivos en entornos mixtos (Linux/Windows).
-
----
-
-### **Pasos posteriores típicos:**
-1. **Configurar Samba**: Editar el archivo de configuración `/etc/samba/smb.conf` para definir los recursos compartidos.
-2. **Reiniciar el servicio**:
- ```bash
- sudo systemctl restart smbd
- ```
-3. **Añadir usuarios de Samba**:
- ```bash
- sudo smbpasswd -a [usuario]
- ```
-
+El comando que has proporcionado realiza lo siguiente:
+
+### **Explicación del comando:**
+```bash
+sudo apt install samba samba-common-bin -y
+```
+
+1. **`sudo`**: Ejecuta el comando con permisos de administrador (root), necesario para instalar software en sistemas basados en Debian/Ubuntu.
+
+2. **`apt install`**: Usa el gestor de paquetes APT (Advanced Package Tool) para instalar software desde los repositorios configurados en el sistema.
+
+3. **`samba`**: Es el paquete principal de Samba, un software que permite compartir archivos e impresoras entre sistemas Linux/Unix y Windows mediante los protocolos SMB/CIFS.
+
+4. **`samba-common-bin`**: Este paquete incluye utilidades adicionales para Samba, como herramientas de configuración (`smbpasswd`, `testparm`, etc.) que son útiles para administrar el servidor Samba.
+
+5. **`-y`**: Responde automáticamente "sí" (yes) a cualquier pregunta de confirmación durante la instalación, evitando interrupciones.
+
+---
+
+### **¿Para qué sirve Samba?**
+- Permite compartir archivos y carpetas entre Linux y Windows en una red local.
+- Habilita la autenticación de usuarios (puede integrarse con usuarios del sistema o con un dominio Windows Active Directory).
+- Es útil para crear servidores de archivos en entornos mixtos (Linux/Windows).
+
+---
+
+### **Pasos posteriores típicos:**
+1. **Configurar Samba**: Editar el archivo de configuración `/etc/samba/smb.conf` para definir los recursos compartidos.
+2. **Reiniciar el servicio**:
+ ```bash
+ sudo systemctl restart smbd
+ ```
+3. **Añadir usuarios de Samba**:
+ ```bash
+ sudo smbpasswd -a [usuario]
+ ```
+
Si necesitas ayuda con la configuración de Samba, ¡avísame!
\ No newline at end of file
diff --git a/DIX-Notes/Otras_varias/Visualización carga de trabajo servers.md b/DIX-Notes/Otras_varias/Visualización carga de trabajo servers.md
index 7bfd7e7..dedecb1 100644
--- a/DIX-Notes/Otras_varias/Visualización carga de trabajo servers.md
+++ b/DIX-Notes/Otras_varias/Visualización carga de trabajo servers.md
@@ -1,95 +1,95 @@
-Sí, hay varias herramientas que pueden ayudarte a interpretar mejor el estado del sistema en consola con una visualización más clara y estructurada. Aquí te dejo algunas opciones:
-
-### 1️⃣ **htop** (Mejor visualización que `top`)
-
-- Es una alternativa mejorada a `top`, con una interfaz en colores y barras gráficas para CPU, memoria y swap.
-
-- Puedes desplazarte por los procesos, ordenarlos y matarlos fácilmente.
-
-- **Instalación**:
-
- ```bash
- sudo apt install htop # Debian/Ubuntu
- sudo yum install htop # CentOS/RHEL
- sudo pacman -S htop # Arch Linux
- ```
-
-- **Uso**:
-
- ```bash
- htop
- ```
-
-
-### 2️⃣ **glances** (Monitoreo de sistema en tiempo real)
-
-- Proporciona información detallada de CPU, memoria, disco, red y procesos en una sola pantalla.
-
-- Se adapta automáticamente al tamaño de la pantalla y tiene colores para facilitar la lectura.
-
-- **Instalación**:
-
- ```bash
- sudo apt install glances # Debian/Ubuntu
- pip install glances # Alternativa con Python
- ```
-
-- **Uso**:
-
- ```bash
- glances
- ```
-
-
-### 3️⃣ **nmon** (Análisis detallado del rendimiento)
-
-- Muestra CPU, memoria, disco, red y más en tiempo real con gráficos ASCII.
-
-- Ideal para diagnósticos de rendimiento.
-
-- **Instalación**:
-
- ```bash
- sudo apt install nmon # Debian/Ubuntu
- ```
-
-- **Uso**:
-
- ```bash
- nmon
- ```
-
- Luego presiona **c, m, d, n** para ver CPU, memoria, disco y red respectivamente.
-
-
-### 4️⃣ **btop** (Interfaz moderna y colorida)
-
-- Es una evolución de `htop`, con una interfaz más visual y amigable.
-
-- Muestra gráficos en tiempo real de CPU, RAM, disco y red.
-
-- **Instalación**:
-
- ```bash
- sudo apt install btop # Debian/Ubuntu
- ```
-
-- **Uso**:
-
- ```bash
- btop
- ```
-
-
-### ¿Cuál elegir?
-
-- **Para algo simple y rápido:** `htop`
-
-- **Para información detallada en una pantalla:** `glances`
-
-- **Para análisis de rendimiento:** `nmon`
-
-- **Para una interfaz moderna y visualmente atractiva:** `btop`
-
-
+Sí, hay varias herramientas que pueden ayudarte a interpretar mejor el estado del sistema en consola con una visualización más clara y estructurada. Aquí te dejo algunas opciones:
+
+### 1️⃣ **htop** (Mejor visualización que `top`)
+
+- Es una alternativa mejorada a `top`, con una interfaz en colores y barras gráficas para CPU, memoria y swap.
+
+- Puedes desplazarte por los procesos, ordenarlos y matarlos fácilmente.
+
+- **Instalación**:
+
+ ```bash
+ sudo apt install htop # Debian/Ubuntu
+ sudo yum install htop # CentOS/RHEL
+ sudo pacman -S htop # Arch Linux
+ ```
+
+- **Uso**:
+
+ ```bash
+ htop
+ ```
+
+
+### 2️⃣ **glances** (Monitoreo de sistema en tiempo real)
+
+- Proporciona información detallada de CPU, memoria, disco, red y procesos en una sola pantalla.
+
+- Se adapta automáticamente al tamaño de la pantalla y tiene colores para facilitar la lectura.
+
+- **Instalación**:
+
+ ```bash
+ sudo apt install glances # Debian/Ubuntu
+ pip install glances # Alternativa con Python
+ ```
+
+- **Uso**:
+
+ ```bash
+ glances
+ ```
+
+
+### 3️⃣ **nmon** (Análisis detallado del rendimiento)
+
+- Muestra CPU, memoria, disco, red y más en tiempo real con gráficos ASCII.
+
+- Ideal para diagnósticos de rendimiento.
+
+- **Instalación**:
+
+ ```bash
+ sudo apt install nmon # Debian/Ubuntu
+ ```
+
+- **Uso**:
+
+ ```bash
+ nmon
+ ```
+
+ Luego presiona **c, m, d, n** para ver CPU, memoria, disco y red respectivamente.
+
+
+### 4️⃣ **btop** (Interfaz moderna y colorida)
+
+- Es una evolución de `htop`, con una interfaz más visual y amigable.
+
+- Muestra gráficos en tiempo real de CPU, RAM, disco y red.
+
+- **Instalación**:
+
+ ```bash
+ sudo apt install btop # Debian/Ubuntu
+ ```
+
+- **Uso**:
+
+ ```bash
+ btop
+ ```
+
+
+### ¿Cuál elegir?
+
+- **Para algo simple y rápido:** `htop`
+
+- **Para información detallada en una pantalla:** `glances`
+
+- **Para análisis de rendimiento:** `nmon`
+
+- **Para una interfaz moderna y visualmente atractiva:** `btop`
+
+
¿Quieres que te ayude con la configuración de alguna de ellas? 😊
\ No newline at end of file
diff --git a/DIX-Notes/RCLONE Y DRIVE/Enviar archivos del servidor a google drive..md b/DIX-Notes/RCLONE Y DRIVE/Enviar archivos del servidor a google drive..md
index 068d1c2..8bd6759 100644
--- a/DIX-Notes/RCLONE Y DRIVE/Enviar archivos del servidor a google drive..md
+++ b/DIX-Notes/RCLONE Y DRIVE/Enviar archivos del servidor a google drive..md
@@ -1,236 +1,236 @@
-1.- Instalar `rclone` en el servidor (si el servidor no tiene interfaz gráfica también instalalo en tu PC o laptop )
-
-```bash
-sudo apt install rclone
-```
-
-2.- Para poder usar la herramienta y mandar archivos al servidor debemos hacer la configuración inicial mediante el comando:
-```bash
-rclone config
-```
-
-Primero debemos crear un repositorio remoto, para ello la herramienta nos hará una serie de preguntas y en algunos casos nos dará opciones, en la consola deberás ingresar cada una de las opciones seguida de la tecla enter:
-
-2.1.- La primera vez debemos crear nuestro primer remoto, así que ingresa la letra **n** y **enter**:
-```bash
-No remotes found, make a new one?
-n) New remote
-s) Set configuration password
-q) Quit config
-n/s/q> n
-```
-
-2.2.- Nombre de nuevo remoto (no dejes espacios, mejor usa guion bajo):
-```bash
-Enter name for new remote.
-name> db_backups
-```
-
-2.3.- Selección de la opción 18, es la opción de Google Drive
-```bash
-Option Storage.
-Type of storage to configure.
-Choose a number from below, or type in your own value.
-
-18 / Google Drive
- \ (drive)
-
-Storage> 18
-```
-
-2.4.- Te pedirá tu id de cliente de Google pero si no lo tienes solo da enter:
-```bash
-Option client_id.
-Google Application Client Id
-Setting your own is recommended.
-See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
-If you leave this blank, it will use an internal key which is low performance.
-Enter a value. Press Enter to leave empty.
-client_id>
-```
-
-2.5.- Solicitará tu clave de OAuth pero lo puedes dejar vacío, solo da enter:
-```bash
-Option client_secret.
-OAuth Client Secret.
-Leave blank normally.
-Enter a value. Press Enter to leave empty.
-client_secret>
-```
-
-2.6.- Te pedirá el tipo de acceso que le darás a Drive, para esta caso yo elegiré la 1 que es acceso total a archivos.
-
-```bash
-Option scope.
-Scope that rclone should use when requesting access from drive.
-Choose a number from below, or type in your own value.
-Press Enter to leave empty.
- 1 / Full access all files, excluding Application Data Folder.
- \ (drive)
- 2 / Read-only access to file metadata and file contents.
- \ (drive.readonly)
- / Access to files created by rclone only.
- 3 | These are visible in the drive website.
- | File authorization is revoked when the user deauthorizes the app.
- \ (drive.file)
- / Allows read and write access to the Application Data folder.
- 4 | This is not visible in the drive website.
- \ (drive.appfolder)
- / Allows read-only access to file metadata but
- 5 | does not allow any access to read or download file content.
- \ (drive.metadata.readonly)
-scope> 1
-```
-
-2.7.- Te pedirá la ruta de las credenciales en formato JSON pero lo puedes dejar en blanco y solo dar enter:
-```bash
-Option service_account_file.
-Service Account Credentials JSON file path.
-Leave blank normally.
-Needed only if you want use SA instead of interactive login.
-Leading `~` will be expanded in the file name as will environment variables such as `${RCLONE_CONFIG_DIR}`.
-Enter a value. Press Enter to leave empty.
-service_account_file>
-```
-
-2.8- Preguntará si quieres editar la configuración avanzada, la opción es no (n):
-```bash
-Edit advanced config?
-y) Yes
-n) No (default)
-y/n> n
-```
-
-2.9.- Te preguntara si quieres usar el método de configuración automática, pero **ingresa que no, ya que usa una UI y el servidor no tiene interfaz gráfica**.
-
-```bash
-Use auto config?
- * Say Y if not sure
- * Say N if you are working on a remote or headless machine
-
-y) Yes (default)
-n) No
-y/n> n
-```
-
-2.9.1.- Del comando anterior en consola te mostrará un mensaje como este:
-```bash
-Option config_token.
-For this to work, you will need rclone available on a machine that has
-a web browser available.
-For more help and alternate methods see: https://rclone.org/remote_setup/
-Execute the following on the machine with the web browser (same rclone
-version recommended):
- rclone authorize "drive" "ayXzY01uSSI8ImRiaXZlIm0"
-Then paste the result.
-Enter a value.
-config_token>
-```
-
-
-En tu computadora local, **NO EN EL SERVIDOR**, deberás abrir una terminal (previamente debiste instalar rclone en esa maquina), y pegar el comando que te da la terminal del servidor que en este caso es:
-```bash
-rclone authorize "drive" "ayXzY01uSSI8ImRiaXZlIm0"
-```
-
-De ese comando verás que te despliega la consola una respuesta como esta:
-```bash
-2025/06/03 13:12:35 NOTICE: Config file "/home/dave/.config/rclone/rclone.conf" not found - using defaults
-2025/06/03 13:12:35 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=VQQBIGPyiSNLYReNNPIXmj
-2025/06/03 13:12:35 NOTICE: Log in and authorize rclone for access
-2025/06/03 13:12:35 NOTICE: Waiting for code...
-```
-
-En la segunda línea del mensaje, copia y pega en tu navegador la URL que aparece despues de link, en este caso es: http://127.0.0.1:53682/auth?state=VQQBIGPyiSNLYReNNPIXmj
-
-En tu navegador te aparecerán las cuentas de gmail, selecciona la cuenta de gmail que corresponde al DRIVE que le darás acceso a rclone, de forma inmediata el navegador te dará un mensaje de **SUCCESS** y debes regresar a tu consola de tu maquina local y te dará un hash largo similar a este:
-```bash
-Paste the following into your remote machine --->
-eyJ0b2tlbiI6IntcImFjY2Vzc19....[muchos-caracteres]....NjowMFwifSJ9
-<---End paste
-```
-Copia lo que esta entre las flechas (---> hash <---) y pégalo en la terminal de tu servidor VPS.
-
-2.10.- Te preguntará que si es un drive compartido, en este caso es no:
-
-```bash
-Configure this as a Shared Drive (Team Drive)?
-
-y) Yes
-n) No (default)
-y/n> n
-```
-
-2.11.- Finalmente te hará la pregunta de si quieres mantener la configuración hecha, debes ingresar la y:
-```bash
-Configuration complete.
-Options:
-- type: drive
-- scope: drive
-- token: {"access_token":"datos-de-tu-token-de-acceso","token_type":"tu-tipo-de-token","refresh_token":"hash-del-token","expiry":"time-stamp-expiracion"}
-- team_drive:
-Keep this "db_backups" remote?
-y) Yes this is OK (default)
-e) Edit this remote
-d) Delete this remote
-y/e/d> y
-```
-
-Listo, tu configuración ya esta hecha, ahora solo debes salir de rclone ingresando la letra `q` seguida del enter, y en
-
-### Subir carpeta con `rclone copy`
-
-Este comando copia los archivos de origen a destino, sin borrar nada en destino.
-
-```bash
-rclone copy /ruta/local/de/la/carpeta formha_db_backups:/carpeta-en-drive
-```
-
-rclone copy /home/dix/backups-db/ formha_db_backups:/formha-db-backups
-
-
-* `/ruta/local/de/la/carpeta` → la carpeta en tu VPS que quieres subir.
-* `formha_db_backups:/carpeta-en-drive` → la carpeta en tu Google Drive (se creará si no existe).
-
-Ejemplo:
-
-```bash
-rclone copy /home/dix/backups formha_db_backups:/backups-vps -p --v
-```
-
-Esto copiará todo el contenido de `/home/dix/backups` a la carpeta `backups-vps` en Google Drive.
-
----
-
-### Subir carpeta con `rclone sync`
-
-Si quieres que la carpeta en Google Drive **quede idéntica** a la local (borra archivos en Drive que no estén en local):
-
-```bash
-rclone sync /ruta/local/de/la/carpeta formha_db_backups:/carpeta-en-drive
-```
-
-Ten cuidado con `sync` porque puede eliminar archivos en Drive.
-
----
-
-### Otros tips útiles
-
-* Para ver el contenido en Drive:
-
-```bash
-rclone ls formha_db_backups:/carpeta-en-drive
-```
-
-* Para hacer dry-run (simular qué pasaría sin cambios reales):
-
-```bash
-rclone copy --dry-run /home/dix/backups formha_db_backups:/backups-vps
-```
-
----
-
-¿Quieres que te ayude con un script automático o programación de backups?
-
-
-
+1.- Instalar `rclone` en el servidor (si el servidor no tiene interfaz gráfica también instalalo en tu PC o laptop )
+
+```bash
+sudo apt install rclone
+```
+
+2.- Para poder usar la herramienta y mandar archivos al servidor debemos hacer la configuración inicial mediante el comando:
+```bash
+rclone config
+```
+
+Primero debemos crear un repositorio remoto, para ello la herramienta nos hará una serie de preguntas y en algunos casos nos dará opciones, en la consola deberás ingresar cada una de las opciones seguida de la tecla enter:
+
+2.1.- La primera vez debemos crear nuestro primer remoto, así que ingresa la letra **n** y **enter**:
+```bash
+No remotes found, make a new one?
+n) New remote
+s) Set configuration password
+q) Quit config
+n/s/q> n
+```
+
+2.2.- Nombre de nuevo remoto (no dejes espacios, mejor usa guion bajo):
+```bash
+Enter name for new remote.
+name> db_backups
+```
+
+2.3.- Selección de la opción 18, es la opción de Google Drive
+```bash
+Option Storage.
+Type of storage to configure.
+Choose a number from below, or type in your own value.
+
+18 / Google Drive
+ \ (drive)
+
+Storage> 18
+```
+
+2.4.- Te pedirá tu id de cliente de Google pero si no lo tienes solo da enter:
+```bash
+Option client_id.
+Google Application Client Id
+Setting your own is recommended.
+See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
+If you leave this blank, it will use an internal key which is low performance.
+Enter a value. Press Enter to leave empty.
+client_id>
+```
+
+2.5.- Solicitará tu clave de OAuth pero lo puedes dejar vacío, solo da enter:
+```bash
+Option client_secret.
+OAuth Client Secret.
+Leave blank normally.
+Enter a value. Press Enter to leave empty.
+client_secret>
+```
+
+2.6.- Te pedirá el tipo de acceso que le darás a Drive, para esta caso yo elegiré la 1 que es acceso total a archivos.
+
+```bash
+Option scope.
+Scope that rclone should use when requesting access from drive.
+Choose a number from below, or type in your own value.
+Press Enter to leave empty.
+ 1 / Full access all files, excluding Application Data Folder.
+ \ (drive)
+ 2 / Read-only access to file metadata and file contents.
+ \ (drive.readonly)
+ / Access to files created by rclone only.
+ 3 | These are visible in the drive website.
+ | File authorization is revoked when the user deauthorizes the app.
+ \ (drive.file)
+ / Allows read and write access to the Application Data folder.
+ 4 | This is not visible in the drive website.
+ \ (drive.appfolder)
+ / Allows read-only access to file metadata but
+ 5 | does not allow any access to read or download file content.
+ \ (drive.metadata.readonly)
+scope> 1
+```
+
+2.7.- Te pedirá la ruta de las credenciales en formato JSON pero lo puedes dejar en blanco y solo dar enter:
+```bash
+Option service_account_file.
+Service Account Credentials JSON file path.
+Leave blank normally.
+Needed only if you want use SA instead of interactive login.
+Leading `~` will be expanded in the file name as will environment variables such as `${RCLONE_CONFIG_DIR}`.
+Enter a value. Press Enter to leave empty.
+service_account_file>
+```
+
+2.8- Preguntará si quieres editar la configuración avanzada, la opción es no (n):
+```bash
+Edit advanced config?
+y) Yes
+n) No (default)
+y/n> n
+```
+
+2.9.- Te preguntara si quieres usar el método de configuración automática, pero **ingresa que no, ya que usa una UI y el servidor no tiene interfaz gráfica**.
+
+```bash
+Use auto config?
+ * Say Y if not sure
+ * Say N if you are working on a remote or headless machine
+
+y) Yes (default)
+n) No
+y/n> n
+```
+
+2.9.1.- Del comando anterior en consola te mostrará un mensaje como este:
+```bash
+Option config_token.
+For this to work, you will need rclone available on a machine that has
+a web browser available.
+For more help and alternate methods see: https://rclone.org/remote_setup/
+Execute the following on the machine with the web browser (same rclone
+version recommended):
+ rclone authorize "drive" "ayXzY01uSSI8ImRiaXZlIm0"
+Then paste the result.
+Enter a value.
+config_token>
+```
+
+
+En tu computadora local, **NO EN EL SERVIDOR**, deberás abrir una terminal (previamente debiste instalar rclone en esa maquina), y pegar el comando que te da la terminal del servidor que en este caso es:
+```bash
+rclone authorize "drive" "ayXzY01uSSI8ImRiaXZlIm0"
+```
+
+De ese comando verás que te despliega la consola una respuesta como esta:
+```bash
+2025/06/03 13:12:35 NOTICE: Config file "/home/dave/.config/rclone/rclone.conf" not found - using defaults
+2025/06/03 13:12:35 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=VQQBIGPyiSNLYReNNPIXmj
+2025/06/03 13:12:35 NOTICE: Log in and authorize rclone for access
+2025/06/03 13:12:35 NOTICE: Waiting for code...
+```
+
+En la segunda línea del mensaje, copia y pega en tu navegador la URL que aparece despues de link, en este caso es: http://127.0.0.1:53682/auth?state=VQQBIGPyiSNLYReNNPIXmj
+
+En tu navegador te aparecerán las cuentas de gmail, selecciona la cuenta de gmail que corresponde al DRIVE que le darás acceso a rclone, de forma inmediata el navegador te dará un mensaje de **SUCCESS** y debes regresar a tu consola de tu maquina local y te dará un hash largo similar a este:
+```bash
+Paste the following into your remote machine --->
+eyJ0b2tlbiI6IntcImFjY2Vzc19....[muchos-caracteres]....NjowMFwifSJ9
+<---End paste
+```
+Copia lo que esta entre las flechas (---> hash <---) y pégalo en la terminal de tu servidor VPS.
+
+2.10.- Te preguntará que si es un drive compartido, en este caso es no:
+
+```bash
+Configure this as a Shared Drive (Team Drive)?
+
+y) Yes
+n) No (default)
+y/n> n
+```
+
+2.11.- Finalmente te hará la pregunta de si quieres mantener la configuración hecha, debes ingresar la y:
+```bash
+Configuration complete.
+Options:
+- type: drive
+- scope: drive
+- token: {"access_token":"datos-de-tu-token-de-acceso","token_type":"tu-tipo-de-token","refresh_token":"hash-del-token","expiry":"time-stamp-expiracion"}
+- team_drive:
+Keep this "db_backups" remote?
+y) Yes this is OK (default)
+e) Edit this remote
+d) Delete this remote
+y/e/d> y
+```
+
+Listo, tu configuración ya esta hecha, ahora solo debes salir de rclone ingresando la letra `q` seguida del enter, y en
+
+### Subir carpeta con `rclone copy`
+
+Este comando copia los archivos de origen a destino, sin borrar nada en destino.
+
+```bash
+rclone copy /ruta/local/de/la/carpeta formha_db_backups:/carpeta-en-drive
+```
+
+rclone copy /home/dix/backups-db/ formha_db_backups:/formha-db-backups
+
+
+* `/ruta/local/de/la/carpeta` → la carpeta en tu VPS que quieres subir.
+* `formha_db_backups:/carpeta-en-drive` → la carpeta en tu Google Drive (se creará si no existe).
+
+Ejemplo:
+
+```bash
+rclone copy /home/dix/backups formha_db_backups:/backups-vps -p --v
+```
+
+Esto copiará todo el contenido de `/home/dix/backups` a la carpeta `backups-vps` en Google Drive.
+
+---
+
+### Subir carpeta con `rclone sync`
+
+Si quieres que la carpeta en Google Drive **quede idéntica** a la local (borra archivos en Drive que no estén en local):
+
+```bash
+rclone sync /ruta/local/de/la/carpeta formha_db_backups:/carpeta-en-drive
+```
+
+Ten cuidado con `sync` porque puede eliminar archivos en Drive.
+
+---
+
+### Otros tips útiles
+
+* Para ver el contenido en Drive:
+
+```bash
+rclone ls formha_db_backups:/carpeta-en-drive
+```
+
+* Para hacer dry-run (simular qué pasaría sin cambios reales):
+
+```bash
+rclone copy --dry-run /home/dix/backups formha_db_backups:/backups-vps
+```
+
+---
+
+¿Quieres que te ayude con un script automático o programación de backups?
+
+
+
diff --git a/DIX-Notes/Raspberry Pi as Router Wireguard Client.md b/DIX-Notes/Raspberry Pi as Router Wireguard Client.md
index b500c77..e1c69aa 100644
--- a/DIX-Notes/Raspberry Pi as Router Wireguard Client.md
+++ b/DIX-Notes/Raspberry Pi as Router Wireguard Client.md
@@ -1,101 +1,101 @@
-Sí, **puedes usar una Raspberry Pi como cliente WireGuard y compartir Internet a través de ella**, como si fuera un router. Esto es útil, por ejemplo, si quieres que dispositivos conectados a la Raspberry (por cable o Wi-Fi) usen la conexión VPN.
-
-### ✅ Requisitos
-
-- Raspberry Pi (con Raspberry Pi OS o similar).
-
-- Conexión a Internet.
-
-- Configuración de cliente WireGuard funcional (`wg0.conf`).
-
-- IP forwarding habilitado.
-
-- `iptables` o `nftables` para NAT.
-
-
----
-
-### 🔧 Pasos
-
-#### 1. **Instala WireGuard**
-
-```bash
-sudo apt update
-sudo apt install wireguard
-```
-
-#### 2. **Configura el cliente WireGuard**
-
-Crea el archivo `/etc/wireguard/wg0.conf` con los datos del servidor:
-
-```ini
-[Interface]
-PrivateKey = TU_CLAVE_PRIVADA
-Address = 10.10.10.2/32
-DNS = 1.1.1.1
-
-[Peer]
-PublicKey = CLAVE_PUBLICA_DEL_SERVIDOR
-Endpoint = IP_DEL_SERVIDOR:51820
-AllowedIPs = 0.0.0.0/0
-PersistentKeepalive = 25
-```
-
-Activa el túnel:
-
-```bash
-sudo wg-quick up wg0
-```
-
-#### 3. **Habilita IP forwarding**
-
-Edita `/etc/sysctl.conf` y descomenta o añade:
-
-```bash
-net.ipv4.ip_forward=1
-```
-
-Aplica el cambio:
-
-```bash
-sudo sysctl -p
-```
-
-#### 4. **Configura NAT para compartir Internet**
-
-Asumiendo que los clientes están en `eth0` o `wlan0` y que la VPN va por `wg0`:
-
-```bash
-# Reglas NAT
-sudo iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
-
-# Permitir reenvío entre interfaces
-sudo iptables -A FORWARD -i wg0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-sudo iptables -A FORWARD -i wlan0 -o wg0 -j ACCEPT
-```
-
-Haz persistente con `iptables-persistent`:
-
-```bash
-sudo apt install iptables-persistent
-sudo netfilter-persistent save
-```
-
-#### 5. **Crea un hotspot o red para compartir**
-
-Puedes usar `hostapd` para crear un punto de acceso Wi-Fi, o compartir por Ethernet usando una IP estática y DHCP (`dnsmasq` o similar).
-
----
-
-### 📶 Ejemplo de uso
-
-- Raspberry conectada a Internet por Wi-Fi.
-
-- Cliente se conecta por Ethernet a la Raspberry.
-
-- Todo el tráfico del cliente pasa por la VPN (WireGuard).
-
-
----
-
+Sí, **puedes usar una Raspberry Pi como cliente WireGuard y compartir Internet a través de ella**, como si fuera un router. Esto es útil, por ejemplo, si quieres que dispositivos conectados a la Raspberry (por cable o Wi-Fi) usen la conexión VPN.
+
+### ✅ Requisitos
+
+- Raspberry Pi (con Raspberry Pi OS o similar).
+
+- Conexión a Internet.
+
+- Configuración de cliente WireGuard funcional (`wg0.conf`).
+
+- IP forwarding habilitado.
+
+- `iptables` o `nftables` para NAT.
+
+
+---
+
+### 🔧 Pasos
+
+#### 1. **Instala WireGuard**
+
+```bash
+sudo apt update
+sudo apt install wireguard
+```
+
+#### 2. **Configura el cliente WireGuard**
+
+Crea el archivo `/etc/wireguard/wg0.conf` con los datos del servidor:
+
+```ini
+[Interface]
+PrivateKey = TU_CLAVE_PRIVADA
+Address = 10.10.10.2/32
+DNS = 1.1.1.1
+
+[Peer]
+PublicKey = CLAVE_PUBLICA_DEL_SERVIDOR
+Endpoint = IP_DEL_SERVIDOR:51820
+AllowedIPs = 0.0.0.0/0
+PersistentKeepalive = 25
+```
+
+Activa el túnel:
+
+```bash
+sudo wg-quick up wg0
+```
+
+#### 3. **Habilita IP forwarding**
+
+Edita `/etc/sysctl.conf` y descomenta o añade:
+
+```bash
+net.ipv4.ip_forward=1
+```
+
+Aplica el cambio:
+
+```bash
+sudo sysctl -p
+```
+
+#### 4. **Configura NAT para compartir Internet**
+
+Asumiendo que los clientes están en `eth0` o `wlan0` y que la VPN va por `wg0`:
+
+```bash
+# Reglas NAT
+sudo iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
+
+# Permitir reenvío entre interfaces
+sudo iptables -A FORWARD -i wg0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
+sudo iptables -A FORWARD -i wlan0 -o wg0 -j ACCEPT
+```
+
+Haz persistente con `iptables-persistent`:
+
+```bash
+sudo apt install iptables-persistent
+sudo netfilter-persistent save
+```
+
+#### 5. **Crea un hotspot o red para compartir**
+
+Puedes usar `hostapd` para crear un punto de acceso Wi-Fi, o compartir por Ethernet usando una IP estática y DHCP (`dnsmasq` o similar).
+
+---
+
+### 📶 Ejemplo de uso
+
+- Raspberry conectada a Internet por Wi-Fi.
+
+- Cliente se conecta por Ethernet a la Raspberry.
+
+- Todo el tráfico del cliente pasa por la VPN (WireGuard).
+
+
+---
+
Si me das detalles sobre cómo quieres compartir (Wi-Fi o Ethernet), te puedo ayudar a configurar eso también.
\ No newline at end of file
diff --git a/DIX-Notes/SERVERS - DIX/adjuntos/servers.xlsm b/DIX-Notes/SERVERS - DIX/adjuntos/servers.xlsm
index 7f51d9a..742d16b 100644
Binary files a/DIX-Notes/SERVERS - DIX/adjuntos/servers.xlsm and b/DIX-Notes/SERVERS - DIX/adjuntos/servers.xlsm differ
diff --git a/DIX-Notes/corregir error ip.xala.dev vs dix-ip.duckdns.org.md b/DIX-Notes/corregir error ip.xala.dev vs dix-ip.duckdns.org.md
index 360c5f9..fe79098 100644
--- a/DIX-Notes/corregir error ip.xala.dev vs dix-ip.duckdns.org.md
+++ b/DIX-Notes/corregir error ip.xala.dev vs dix-ip.duckdns.org.md
@@ -1,78 +1,78 @@
-¡Perfecto! 🎯
-Eso confirma que `ip.xala.dev` ya **resuelve directamente a tu IP real pública (`189.131.79.23`)**, y **el proxy de Cloudflare está desactivado** (ícono gris / Solo DNS). Bien hecho. ✅
-
----
-
-### 🧩 Entonces… ¿por qué `git push` aún no funciona con `ip.xala.dev:3000`?
-
-Si el dominio resuelve bien y aún falla, quedan estas **posibles causas clave**:
-
----
-
-### 1. ❌ **Cloudflare nunca estuvo en medio, pero tu servidor Git está restringido por `Host`**
-
-Algunos servidores Git (como **Gitea**) pueden rechazar peticiones HTTP que usen un nombre de dominio diferente al configurado.
-
-**Ejemplo típico de fallo:**
-
-```bash
-# Este sí funciona porque coincide con la configuración del servidor
-git remote add origin http://dix-ip.duckdns.org:3000/repo.git
-
-# Este no funciona porque el servidor solo acepta dix-ip.duckdns.org como Host HTTP
-git remote add origin http://ip.xala.dev:3000/repo.git
-```
-
-👉 **Solución:**
-
-- Si usas Gitea, revisa el valor `DOMAIN` o `ROOT_URL` en su archivo `app.ini`.
-
-- Asegúrate de que incluya `ip.xala.dev` o configúralo así:
-
-
-```ini
-ROOT_URL = http://ip.xala.dev:3000/
-```
-
-Y reinicia Gitea.
-
----
-
-### 2. 🔒 **Tu servidor Git usa una ACL o firewall basado en nombres**
-
-Revisa si el servidor tiene alguna lógica o `nginx` / `apache` virtual host configurado para solo aceptar conexiones desde ciertos hosts.
-
----
-
-### 3. 🧪 **Verifica que responde por nombre**
-
-Haz esta prueba desde la máquina cliente:
-
-```bash
-curl -v http://ip.xala.dev:3000/
-```
-
-Y también:
-
-```bash
-curl -v http://dix-ip.duckdns.org:3000/
-```
-
-- Si uno responde y el otro no: el problema está en cómo el servidor maneja el **nombre del host** (`Host: ...`) en la cabecera HTTP.
-
-
----
-
-### ✅ Solución temporal de prueba (si no puedes modificar el servidor):
-
-Puedes engañar a Git y al servidor editando tu `/etc/hosts` y agregando:
-
-```bash
-189.131.79.23 dix-ip.duckdns.org ip.xala.dev
-```
-
-Así, cuando uses `ip.xala.dev`, Git usará el nombre que acepta el servidor, como si fueran sinónimos.
-
----
-
+¡Perfecto! 🎯
+Eso confirma que `ip.xala.dev` ya **resuelve directamente a tu IP real pública (`189.131.79.23`)**, y **el proxy de Cloudflare está desactivado** (ícono gris / Solo DNS). Bien hecho. ✅
+
+---
+
+### 🧩 Entonces… ¿por qué `git push` aún no funciona con `ip.xala.dev:3000`?
+
+Si el dominio resuelve bien y aún falla, quedan estas **posibles causas clave**:
+
+---
+
+### 1. ❌ **Cloudflare nunca estuvo en medio, pero tu servidor Git está restringido por `Host`**
+
+Algunos servidores Git (como **Gitea**) pueden rechazar peticiones HTTP que usen un nombre de dominio diferente al configurado.
+
+**Ejemplo típico de fallo:**
+
+```bash
+# Este sí funciona porque coincide con la configuración del servidor
+git remote add origin http://dix-ip.duckdns.org:3000/repo.git
+
+# Este no funciona porque el servidor solo acepta dix-ip.duckdns.org como Host HTTP
+git remote add origin http://ip.xala.dev:3000/repo.git
+```
+
+👉 **Solución:**
+
+- Si usas Gitea, revisa el valor `DOMAIN` o `ROOT_URL` en su archivo `app.ini`.
+
+- Asegúrate de que incluya `ip.xala.dev` o configúralo así:
+
+
+```ini
+ROOT_URL = http://ip.xala.dev:3000/
+```
+
+Y reinicia Gitea.
+
+---
+
+### 2. 🔒 **Tu servidor Git usa una ACL o firewall basado en nombres**
+
+Revisa si el servidor tiene alguna lógica o `nginx` / `apache` virtual host configurado para solo aceptar conexiones desde ciertos hosts.
+
+---
+
+### 3. 🧪 **Verifica que responde por nombre**
+
+Haz esta prueba desde la máquina cliente:
+
+```bash
+curl -v http://ip.xala.dev:3000/
+```
+
+Y también:
+
+```bash
+curl -v http://dix-ip.duckdns.org:3000/
+```
+
+- Si uno responde y el otro no: el problema está en cómo el servidor maneja el **nombre del host** (`Host: ...`) en la cabecera HTTP.
+
+
+---
+
+### ✅ Solución temporal de prueba (si no puedes modificar el servidor):
+
+Puedes engañar a Git y al servidor editando tu `/etc/hosts` y agregando:
+
+```bash
+189.131.79.23 dix-ip.duckdns.org ip.xala.dev
+```
+
+Así, cuando uses `ip.xala.dev`, Git usará el nombre que acepta el servidor, como si fueran sinónimos.
+
+---
+
¿Sabes qué servidor Git estás usando (¿Gitea, GitLab, bare Git+nginx?)? Puedo ayudarte a ajustar la configuración.
\ No newline at end of file
diff --git a/DIX-Notes/n8n en ubuntu server.md b/DIX-Notes/n8n en ubuntu server.md
index bb8867c..7b66dff 100644
--- a/DIX-Notes/n8n en ubuntu server.md
+++ b/DIX-Notes/n8n en ubuntu server.md
@@ -1,254 +1,254 @@
-Perfecto, David. A continuación te dejo el **manual completo y actualizado** para instalar `n8n` de forma manual en Ubuntu Server (sin Docker), incluyendo:
-
-- Instalación limpia de Node.js 20
-
-- Instalación de n8n y pm2
-
-- Script de arranque con autenticación básica
-
-- Ejecución en segundo plano con reinicio automático al encender el servidor
-
-
----
-
-# 🛠 Manual actualizado para instalar n8n (sin Docker) en Ubuntu Server
-
----
-
-## ✅ 1. Actualiza el sistema e instala dependencias
-
-```bash
-sudo apt update && sudo apt upgrade -y
-sudo apt install -y curl gnupg build-essential
-```
-
----
-
-## ✅ 2. Instala Node.js 20 (requerido por versiones recientes de n8n)
-
-```bash
-curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
-sudo apt install -y nodejs
-```
-
-Verifica que esté instalado correctamente:
-
-```bash
-node -v
-npm -v
-```
-
-Debe mostrar algo como `v20.x.x`.
-
----
-
-## ✅ 3. Instala `n8n` y `pm2` globalmente
-
-```bash
-sudo npm install -g pm2 n8n
-```
-
----
-
-## ✅ 4. Crea el script de arranque `n8n`
-
-```bash
-nano ~/start-n8n.sh
-```
-
-Pega el siguiente contenido:
-
-```bash
-#!/bin/bash
-export N8N_HOST=0.0.0.0
-export N8N_PORT=5678
-export N8N_BASIC_AUTH_ACTIVE=true
-export N8N_BASIC_AUTH_USER=admin
-export N8N_BASIC_AUTH_PASSWORD=Shala55951254
-n8n
-```
-
-Guarda y cierra (Ctrl+O, Enter, Ctrl+X).
-
-Hazlo ejecutable:
-
-```bash
-chmod +x ~/start-n8n.sh
-```
-
----
-
-## ✅ 5. Ejecuta el script para probar
-
-```bash
-~/start-n8n.sh
-```
-
-Deberías ver un mensaje como:
-
-```
-Editor is now accessible via: http://0.0.0.0:5678
-```
-
-📌 Accede desde el navegador con la IP del servidor:
-
-```
-http://TU_IP:5678
-```
-
-Usuario: `admin`
-Contraseña: `Shala55951254`
-
----
-
-## ✅ 6. Ejecutar n8n en segundo plano con `pm2`
-
-### A. Inicia el proceso con `pm2`:
-
-```bash
-pm2 start ~/start-n8n.sh --name n8n
-```
-
-### B. Guarda el proceso para que se reinicie con el sistema:
-
-```bash
-pm2 startup
-```
-
-Copia y ejecuta la línea que te devuelva (ejemplo):
-
-```bash
-sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u $USER --hp /home/$USER
-```
-
-Luego:
-
-```bash
-pm2 save
-```
-
----
-
-## ✅ 7. (Opcional) Abre el puerto en el firewall
-
-```bash
-sudo ufw allow 5678/tcp
-sudo ufw enable
-sudo ufw status
-```
-
----
-
-## ✅ 8. Comandos útiles
-
-- Ver estado de procesos:
-
- ```bash
- pm2 list
- ```
-
-- Ver logs en tiempo real:
-
- ```bash
- pm2 logs n8n
- ```
-
-- Parar o reiniciar:
-
- ```bash
- pm2 stop n8n
- pm2 restart n8n
- ```
-
-- Eliminar proceso:
-
- ```bash
- pm2 delete n8n
- ```
-
-
----
-
-¿Quieres que ahora te dé el manual con NGINX + HTTPS (Let's Encrypt) para que accedas por dominio seguro como `https://n8n.tudominio.com`?
-
-
-
-# hacer que el servicio de n8n se reincie con el equipo
-
-Excelente pregunta, David. Si `n8n` no se reinicia automáticamente tras reiniciar tu servidor, lo más probable es que **faltó ejecutar correctamente uno de los pasos con `pm2`** para registrar el arranque del proceso.
-
-Aquí te explico cómo asegurar que n8n se inicie automáticamente al arrancar el servidor:
-
----
-
-## ✅ Paso a paso para activar reinicio automático con `pm2`
-
-### 1. Asegúrate de que `n8n` está corriendo con `pm2`
-
-Confirma con:
-
-```bash
-pm2 list
-```
-
-Deberías ver un proceso llamado `n8n`.
-
----
-
-### 2. Genera el script de arranque para `systemd`
-
-```bash
-pm2 startup
-```
-
-Esto te devolverá una línea como esta (con tu usuario):
-
-```bash
-sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u web --hp /home/web
-```
-
-🔁 **Cópiala y ejecútala exactamente**.
-
-> ⚠️ Este paso es **clave**: si no ejecutas esa línea, `pm2` no se integrará con `systemd` y no podrá reiniciar tus procesos al arrancar el servidor.
-
----
-
-### 3. Guarda el estado actual de los procesos
-
-```bash
-pm2 save
-```
-
-Esto crea un snapshot de los procesos actuales que serán restaurados al reinicio.
-
----
-
-### 4. Verifica que todo esté correcto
-
-Puedes simular un reinicio:
-
-```bash
-sudo reboot
-```
-
-Luego, tras reiniciar, verifica:
-
-```bash
-pm2 list
-```
-
-Y accede a `http://IP:5678` para confirmar que `n8n` se levantó automáticamente.
-
----
-
-## ✅ Resumen de comandos clave
-
-```bash
-pm2 start ~/start-n8n.sh --name n8n
-pm2 startup # (ejecutar también la línea que devuelve)
-pm2 save
-```
-
----
-
+Perfecto, David. A continuación te dejo el **manual completo y actualizado** para instalar `n8n` de forma manual en Ubuntu Server (sin Docker), incluyendo:
+
+- Instalación limpia de Node.js 20
+
+- Instalación de n8n y pm2
+
+- Script de arranque con autenticación básica
+
+- Ejecución en segundo plano con reinicio automático al encender el servidor
+
+
+---
+
+# 🛠 Manual actualizado para instalar n8n (sin Docker) en Ubuntu Server
+
+---
+
+## ✅ 1. Actualiza el sistema e instala dependencias
+
+```bash
+sudo apt update && sudo apt upgrade -y
+sudo apt install -y curl gnupg build-essential
+```
+
+---
+
+## ✅ 2. Instala Node.js 20 (requerido por versiones recientes de n8n)
+
+```bash
+curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
+sudo apt install -y nodejs
+```
+
+Verifica que esté instalado correctamente:
+
+```bash
+node -v
+npm -v
+```
+
+Debe mostrar algo como `v20.x.x`.
+
+---
+
+## ✅ 3. Instala `n8n` y `pm2` globalmente
+
+```bash
+sudo npm install -g pm2 n8n
+```
+
+---
+
+## ✅ 4. Crea el script de arranque `n8n`
+
+```bash
+nano ~/start-n8n.sh
+```
+
+Pega el siguiente contenido:
+
+```bash
+#!/bin/bash
+export N8N_HOST=0.0.0.0
+export N8N_PORT=5678
+export N8N_BASIC_AUTH_ACTIVE=true
+export N8N_BASIC_AUTH_USER=admin
+export N8N_BASIC_AUTH_PASSWORD=Shala55951254
+n8n
+```
+
+Guarda y cierra (Ctrl+O, Enter, Ctrl+X).
+
+Hazlo ejecutable:
+
+```bash
+chmod +x ~/start-n8n.sh
+```
+
+---
+
+## ✅ 5. Ejecuta el script para probar
+
+```bash
+~/start-n8n.sh
+```
+
+Deberías ver un mensaje como:
+
+```
+Editor is now accessible via: http://0.0.0.0:5678
+```
+
+📌 Accede desde el navegador con la IP del servidor:
+
+```
+http://TU_IP:5678
+```
+
+Usuario: `admin`
+Contraseña: `Shala55951254`
+
+---
+
+## ✅ 6. Ejecutar n8n en segundo plano con `pm2`
+
+### A. Inicia el proceso con `pm2`:
+
+```bash
+pm2 start ~/start-n8n.sh --name n8n
+```
+
+### B. Guarda el proceso para que se reinicie con el sistema:
+
+```bash
+pm2 startup
+```
+
+Copia y ejecuta la línea que te devuelva (ejemplo):
+
+```bash
+sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u $USER --hp /home/$USER
+```
+
+Luego:
+
+```bash
+pm2 save
+```
+
+---
+
+## ✅ 7. (Opcional) Abre el puerto en el firewall
+
+```bash
+sudo ufw allow 5678/tcp
+sudo ufw enable
+sudo ufw status
+```
+
+---
+
+## ✅ 8. Comandos útiles
+
+- Ver estado de procesos:
+
+ ```bash
+ pm2 list
+ ```
+
+- Ver logs en tiempo real:
+
+ ```bash
+ pm2 logs n8n
+ ```
+
+- Parar o reiniciar:
+
+ ```bash
+ pm2 stop n8n
+ pm2 restart n8n
+ ```
+
+- Eliminar proceso:
+
+ ```bash
+ pm2 delete n8n
+ ```
+
+
+---
+
+¿Quieres que ahora te dé el manual con NGINX + HTTPS (Let's Encrypt) para que accedas por dominio seguro como `https://n8n.tudominio.com`?
+
+
+
+# hacer que el servicio de n8n se reincie con el equipo
+
+Excelente pregunta, David. Si `n8n` no se reinicia automáticamente tras reiniciar tu servidor, lo más probable es que **faltó ejecutar correctamente uno de los pasos con `pm2`** para registrar el arranque del proceso.
+
+Aquí te explico cómo asegurar que n8n se inicie automáticamente al arrancar el servidor:
+
+---
+
+## ✅ Paso a paso para activar reinicio automático con `pm2`
+
+### 1. Asegúrate de que `n8n` está corriendo con `pm2`
+
+Confirma con:
+
+```bash
+pm2 list
+```
+
+Deberías ver un proceso llamado `n8n`.
+
+---
+
+### 2. Genera el script de arranque para `systemd`
+
+```bash
+pm2 startup
+```
+
+Esto te devolverá una línea como esta (con tu usuario):
+
+```bash
+sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u web --hp /home/web
+```
+
+🔁 **Cópiala y ejecútala exactamente**.
+
+> ⚠️ Este paso es **clave**: si no ejecutas esa línea, `pm2` no se integrará con `systemd` y no podrá reiniciar tus procesos al arrancar el servidor.
+
+---
+
+### 3. Guarda el estado actual de los procesos
+
+```bash
+pm2 save
+```
+
+Esto crea un snapshot de los procesos actuales que serán restaurados al reinicio.
+
+---
+
+### 4. Verifica que todo esté correcto
+
+Puedes simular un reinicio:
+
+```bash
+sudo reboot
+```
+
+Luego, tras reiniciar, verifica:
+
+```bash
+pm2 list
+```
+
+Y accede a `http://IP:5678` para confirmar que `n8n` se levantó automáticamente.
+
+---
+
+## ✅ Resumen de comandos clave
+
+```bash
+pm2 start ~/start-n8n.sh --name n8n
+pm2 startup # (ejecutar también la línea que devuelve)
+pm2 save
+```
+
+---
+
¿Quieres que revise también cómo levantar `pm2` con un usuario distinto al login por defecto o con logs persistentes en un archivo?
\ No newline at end of file
diff --git a/DIX-Notes/notas_express.md b/DIX-Notes/notas_express.md
deleted file mode 100644
index 5e91bb3..0000000
--- a/DIX-Notes/notas_express.md
+++ /dev/null
@@ -1,22 +0,0 @@
-Reunión en instalaciones de la SHCP 05/08/2025 11:00 am
-
-
-
-Temas vistos:
-
-- Revisión de cada uno de los proyectos de inversión para ver los estudios de preinversión que les aplican.
-
-- Aclaración de dudas relacionados con los proyectos por parte de la Lic. María Asereth.
-
-
-Acuerdos:
-
-- Se designan a las contadoras Lic. Guadalupe y Lic. Alba como enlaces con la Lic. María Asereth para asesorías en el desarrollo de los estudios de preinversión.
-
-- La Lic. María Asereth gestionará apartar una sala de reuniones para permitir que podamos trabajar en las instalaciones de la SHCP a fin de facilitar y atender dudas y aclaraciones en el desarrollo de los estudios de preinversión, para ello hay que compartir mediante los enlaces los nombres de los que estarán yendo a las instalaciones.
-
-- La Lic. María Asereth compartirá un ejemplo de cartera de inversión.
-
-- Los estudios de preinversión deben ser entregados a más tardar el 20 de agosto.
-
-- IMPORTANTE: decidir si se debe involucrar al nuevo Director General Satelital de la AEM.
\ No newline at end of file
diff --git a/DIX-Notes/trabajar_script_mc_backup.md b/DIX-Notes/trabajar_script_mc_backup.md
index 45c91d2..297e049 100644
--- a/DIX-Notes/trabajar_script_mc_backup.md
+++ b/DIX-Notes/trabajar_script_mc_backup.md
@@ -1,4 +1,4 @@
-cd ~/Minecraft/ && zip -r "/home/web/backups_minecraft/world_gorromina_$(date +'%d-%m-%Y_%H-%M').zip" "world_gorromina"
-
-rclone copy ~/backups_minecraft/ mc_backup:/mc_backup -P -v
-
+cd ~/Minecraft/ && zip -r "/home/web/backups_minecraft/world_gorromina_$(date +'%d-%m-%Y_%H-%M').zip" "world_gorromina"
+
+rclone copy ~/backups_minecraft/ mc_backup:/mc_backup -P -v
+
diff --git a/ELIMINAR/notas_express.md b/ELIMINAR/notas_express.md
new file mode 100644
index 0000000..e69de29
diff --git a/Sin título.md b/Sin título.md
new file mode 100644
index 0000000..e69de29