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** - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CategoriaValores
ActivarTrue
ProtocoloServidor Wireguard
Acceso de clienteInternet y Red Local
Host de punto final192.168.1.64
Puerto de escucha51820
Dirección IP10.10.10.1
MTU1420
- -VPN: -van_laptop -dix_laptop -dix_tablet -dix_work_pc -yarelis_cub_cell - - -Puertos: - - - - - - - - - - - - - - - - - - - - - - - - - -
NombreProtocoloInterfazPuerto externoDirección IP internaPuerto interno
lbTCPWAN80192.168.10.23480
giteaTCPWAN3000192.168.10.2343000
- - -TELMEX Port Forwarding - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nombre de la AplicaciónPuerto WANPuerto LANNombre del DispositivoCliente InternoProtocoloDescripción
Configuración de Usuario51820~5182051820~51820WR3000192.168.1.64UDPvpn
Configuración de Usuario80~8080~80WR3000192.168.1.64TCPweb
Configuración de Usuario3000~30003000~3000WR3000192.168.1.64TCPgitea 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** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CategoriaValores
ActivarTrue
ProtocoloServidor Wireguard
Acceso de clienteInternet y Red Local
Host de punto final192.168.1.64
Puerto de escucha51820
Dirección IP10.10.10.1
MTU1420
+ +VPN: +van_laptop +dix_laptop +dix_tablet +dix_work_pc +yarelis_cub_cell + + +Puertos: + + + + + + + + + + + + + + + + + + + + + + + + + +
NombreProtocoloInterfazPuerto externoDirección IP internaPuerto interno
lbTCPWAN80192.168.10.23480
giteaTCPWAN3000192.168.10.2343000
+ + +TELMEX Port Forwarding + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Nombre de la AplicaciónPuerto WANPuerto LANNombre del DispositivoCliente InternoProtocoloDescripción
Configuración de Usuario51820~5182051820~51820WR3000192.168.1.64UDPvpn
Configuración de Usuario80~8080~80WR3000192.168.1.64TCPweb
Configuración de Usuario3000~30003000~3000WR3000192.168.1.64TCPgitea 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