mod from tamaulipas
This commit is contained in:
parent
c8426f005b
commit
3df720e02f
62
.obsidian/workspace.json
vendored
62
.obsidian/workspace.json
vendored
@ -4,21 +4,21 @@
|
|||||||
"type": "split",
|
"type": "split",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "fe53232fa26b8f11",
|
"id": "689e84465cf5c511",
|
||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "5ff6ca2da58ba6f5",
|
"id": "f65aae4ade40d7e9",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "DIX-Notes/script_bash_servers/crontab.md",
|
"file": "DIX-Notes/Install_n8n_wsl.md",
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": false
|
"source": false
|
||||||
},
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "crontab"
|
"title": "Install_n8n_wsl"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -53,7 +53,7 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "search",
|
"type": "search",
|
||||||
"state": {
|
"state": {
|
||||||
"query": "pagos",
|
"query": "sudo apt update",
|
||||||
"matchingCase": false,
|
"matchingCase": false,
|
||||||
"explainSearch": false,
|
"explainSearch": false,
|
||||||
"collapseAll": false,
|
"collapseAll": false,
|
||||||
@ -169,26 +169,38 @@
|
|||||||
"command-palette:Abrir paleta de comandos": false
|
"command-palette:Abrir paleta de comandos": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "db862854e8b7e53a",
|
"active": "f65aae4ade40d7e9",
|
||||||
"lastOpenFiles": [
|
"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/FIVE_MUSEO.docx.md",
|
||||||
"ELIMINAR/Sin título.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",
|
"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",
|
||||||
"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/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_weekends.sh",
|
||||||
"DIX-Notes/script_bash_servers/scripts_linux/shutdown.sh",
|
"DIX-Notes/script_bash_servers/scripts_linux/shutdown.sh",
|
||||||
"DIX-Notes/script_bash_servers/scripts_linux/cron.log",
|
"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/history_log.txt",
|
||||||
"DIX-Notes/script_bash_servers/scripts_linux",
|
"DIX-Notes/script_bash_servers/scripts_linux",
|
||||||
"DIX-Notes/script_bash_servers",
|
"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",
|
"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",
|
"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 20250801164816.png",
|
||||||
"Agencia_Espacial_Mexicana/Cursos_Capacitación/Introducción a la Administración Pública Federal/adjuntos/Pasted image 20250801164759.png",
|
"Agencia_Espacial_Mexicana/Cursos_Capacitación/Introducción a la Administración Pública Federal/adjuntos/Pasted image 20250801164759.png",
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
obsidian_notes_sync() {
|
obsidian_notes_sync() {
|
||||||
# Sincronizar notas de Obsidian en Google Drive con rclone
|
# Sincronizar notas de Obsidian en Google Drive con rclone
|
||||||
|
|
||||||
fecha=$(date +"D%d-%m-%Y-T%H-%M")
|
fecha=$(date +"D%d-%m-%Y-T%H-%M")
|
||||||
file_name="dix-notes-$fecha"
|
file_name="dix-notes-$fecha"
|
||||||
origen="/mnt/c/Users/davic/desktop/dix_notes"
|
origen="/mnt/c/Users/davic/desktop/dix_notes"
|
||||||
destino="obsidian_personal_dix:/obsidian/$file_name"
|
destino="obsidian_personal_dix:/obsidian/$file_name"
|
||||||
|
|
||||||
rclone copy "$origen" "$destino" -P -v
|
rclone copy "$origen" "$destino" -P -v
|
||||||
|
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo "✅ Sincronización completada correctamente."
|
echo "✅ Sincronización completada correctamente."
|
||||||
else
|
else
|
||||||
echo "❌ Error durante la sincronización."
|
echo "❌ Error durante la sincronización."
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
@ -1,42 +1,42 @@
|
|||||||
{
|
{
|
||||||
"nodes":[
|
"nodes":[
|
||||||
{"id":"84eea27a1ba629c8","x":-134,"y":-349,"width":250,"height":60,"type":"text","text":""},
|
{"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":"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":"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":"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":"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":"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":"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":"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":"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":"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":"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}
|
{"id":"5f334013938f0378","type":"text","text":"Router / VPN","x":-160,"y":-820,"width":250,"height":60}
|
||||||
],
|
],
|
||||||
"edges":[
|
"edges":[
|
||||||
{"id":"65decefa61be0132","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"0196141ff4288b26","toSide":"top"},
|
{"id":"65decefa61be0132","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"0196141ff4288b26","toSide":"top"},
|
||||||
{"id":"c821c7786b13de56","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"21f14a45f938153b","toSide":"top"},
|
{"id":"c821c7786b13de56","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"21f14a45f938153b","toSide":"top"},
|
||||||
{"id":"bbdfbe93eca7f66e","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"1cbfc86bc270e4b7","toSide":"top"},
|
{"id":"bbdfbe93eca7f66e","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"1cbfc86bc270e4b7","toSide":"top"},
|
||||||
{"id":"c1c443e22eb76535","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"9031059888e87fd2","toSide":"top"},
|
{"id":"c1c443e22eb76535","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"9031059888e87fd2","toSide":"top"},
|
||||||
{"id":"da2fc4f2409d4434","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"6b94f426bec0518d","toSide":"top"},
|
{"id":"da2fc4f2409d4434","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"6b94f426bec0518d","toSide":"top"},
|
||||||
{"id":"3514ce6bf3a91d92","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"0196141ff4288b26","toSide":"top"},
|
{"id":"3514ce6bf3a91d92","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"0196141ff4288b26","toSide":"top"},
|
||||||
{"id":"6c8f88c449b3dfb0","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"21f14a45f938153b","toSide":"top"},
|
{"id":"6c8f88c449b3dfb0","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"21f14a45f938153b","toSide":"top"},
|
||||||
{"id":"8f098e34313079db","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"1cbfc86bc270e4b7","toSide":"top"},
|
{"id":"8f098e34313079db","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"1cbfc86bc270e4b7","toSide":"top"},
|
||||||
{"id":"3688e3ecf3d65c2e","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"9031059888e87fd2","toSide":"top"},
|
{"id":"3688e3ecf3d65c2e","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"9031059888e87fd2","toSide":"top"},
|
||||||
{"id":"e755c1693a630d84","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"6b94f426bec0518d","toSide":"top"},
|
{"id":"e755c1693a630d84","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"6b94f426bec0518d","toSide":"top"},
|
||||||
{"id":"6d605db470858423","fromNode":"0196141ff4288b26","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
|
{"id":"6d605db470858423","fromNode":"0196141ff4288b26","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
|
||||||
{"id":"19bc3af06c0ee01e","fromNode":"21f14a45f938153b","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":"212566b2a3648a29","fromNode":"1cbfc86bc270e4b7","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
|
||||||
{"id":"84408076278e5fd7","fromNode":"9031059888e87fd2","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":"f5bd632c66dd0a12","fromNode":"6b94f426bec0518d","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
|
||||||
{"id":"3c991428822f7b13","fromNode":"aa754eec2e32009a","fromSide":"right","toNode":"eb5c7fcba435d5b3","toSide":"left"},
|
{"id":"3c991428822f7b13","fromNode":"aa754eec2e32009a","fromSide":"right","toNode":"eb5c7fcba435d5b3","toSide":"left"},
|
||||||
{"id":"ec8c3cac6f8bafe4","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"0196141ff4288b26","toSide":"bottom"},
|
{"id":"ec8c3cac6f8bafe4","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"0196141ff4288b26","toSide":"bottom"},
|
||||||
{"id":"22f6b8593f8efeb2","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"21f14a45f938153b","toSide":"bottom"},
|
{"id":"22f6b8593f8efeb2","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"21f14a45f938153b","toSide":"bottom"},
|
||||||
{"id":"23e09f848ef4230b","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"1cbfc86bc270e4b7","toSide":"bottom"},
|
{"id":"23e09f848ef4230b","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"1cbfc86bc270e4b7","toSide":"bottom"},
|
||||||
{"id":"a1067b326a889f90","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"9031059888e87fd2","toSide":"bottom"},
|
{"id":"a1067b326a889f90","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"9031059888e87fd2","toSide":"bottom"},
|
||||||
{"id":"2fa114fbbdbdd63a","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"6b94f426bec0518d","toSide":"bottom"},
|
{"id":"2fa114fbbdbdd63a","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"6b94f426bec0518d","toSide":"bottom"},
|
||||||
{"id":"29808fd2d4d62166","fromNode":"00e0a1844c5114ee","fromSide":"top","toNode":"3e79a9f2644708b5","toSide":"bottom"},
|
{"id":"29808fd2d4d62166","fromNode":"00e0a1844c5114ee","fromSide":"top","toNode":"3e79a9f2644708b5","toSide":"bottom"},
|
||||||
{"id":"3031b8c0b36366a7","fromNode":"f848b43274fcb59b","fromSide":"right","toNode":"3e79a9f2644708b5","toSide":"left"},
|
{"id":"3031b8c0b36366a7","fromNode":"f848b43274fcb59b","fromSide":"right","toNode":"3e79a9f2644708b5","toSide":"left"},
|
||||||
{"id":"d313ffd8360f70fc","fromNode":"5f334013938f0378","fromSide":"bottom","toNode":"f848b43274fcb59b","toSide":"top"}
|
{"id":"d313ffd8360f70fc","fromNode":"5f334013938f0378","fromSide":"bottom","toNode":"f848b43274fcb59b","toSide":"top"}
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -1,9 +1,9 @@
|
|||||||
uk:
|
uk:
|
||||||
- ntfy (no ervice):8080
|
- ntfy (no ervice):8080
|
||||||
- uptimekuma (no service):3001
|
- uptimekuma (no service):3001
|
||||||
- gitea:3000
|
- gitea:3000
|
||||||
|
|
||||||
lb:
|
lb:
|
||||||
- dnsmasq
|
- dnsmasq
|
||||||
- haproxy
|
- haproxy
|
||||||
|
|
||||||
|
@ -1,148 +1,148 @@
|
|||||||
En el navegador web ir a http://192.168.1.254/
|
En el navegador web ir a http://192.168.1.254/
|
||||||
|
|
||||||
**Red** > **Red Doméstica** > **Estática DHCP Entrada**
|
**Red** > **Red Doméstica** > **Estática DHCP Entrada**
|
||||||
Pegar la dirección MAC y la IP a asignar
|
Pegar la dirección MAC y la IP a asignar
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Ejemplo:
|
Ejemplo:
|
||||||
Dirección MAC: 80:af:ca:76:e3:de
|
Dirección MAC: 80:af:ca:76:e3:de
|
||||||
Dirección IP: 192.168.1.71
|
Dirección IP: 192.168.1.71
|
||||||
|
|
||||||
La IP y la Dirección MAC del dispositivo la puedes ver en:
|
La IP y la Dirección MAC del dispositivo la puedes ver en:
|
||||||
|
|
||||||
**Estado** > **Dispositivos Conectados**
|
**Estado** > **Dispositivos Conectados**
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Categoria</td>
|
<td>Categoria</td>
|
||||||
<td>Valores </td>
|
<td>Valores </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Activar</td>
|
<td>Activar</td>
|
||||||
<td>True </td>
|
<td>True </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Protocolo</td>
|
<td>Protocolo</td>
|
||||||
<td>Servidor Wireguard </td>
|
<td>Servidor Wireguard </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Acceso de cliente</td>
|
<td>Acceso de cliente</td>
|
||||||
<td>Internet y Red Local </td>
|
<td>Internet y Red Local </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Host de punto final</td>
|
<td>Host de punto final</td>
|
||||||
<td>192.168.1.64 </td>
|
<td>192.168.1.64 </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Puerto de escucha</td>
|
<td>Puerto de escucha</td>
|
||||||
<td>51820 </td>
|
<td>51820 </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Dirección IP</td>
|
<td>Dirección IP</td>
|
||||||
<td>10.10.10.1 </td>
|
<td>10.10.10.1 </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>MTU</td>
|
<td>MTU</td>
|
||||||
<td>1420 </td>
|
<td>1420 </td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
VPN:
|
VPN:
|
||||||
van_laptop
|
van_laptop
|
||||||
dix_laptop
|
dix_laptop
|
||||||
dix_tablet
|
dix_tablet
|
||||||
dix_work_pc
|
dix_work_pc
|
||||||
yarelis_cub_cell
|
yarelis_cub_cell
|
||||||
|
|
||||||
|
|
||||||
Puertos:
|
Puertos:
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Nombre</td>
|
<td>Nombre</td>
|
||||||
<td>Protocolo</td>
|
<td>Protocolo</td>
|
||||||
<td>Interfaz</td>
|
<td>Interfaz</td>
|
||||||
<td>Puerto externo</td>
|
<td>Puerto externo</td>
|
||||||
<td>Dirección IP interna</td>
|
<td>Dirección IP interna</td>
|
||||||
<td>Puerto interno </td>
|
<td>Puerto interno </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>lb</td>
|
<td>lb</td>
|
||||||
<td>TCP</td>
|
<td>TCP</td>
|
||||||
<td>WAN</td>
|
<td>WAN</td>
|
||||||
<td>80</td>
|
<td>80</td>
|
||||||
<td>192.168.10.234</td>
|
<td>192.168.10.234</td>
|
||||||
<td>80 </td>
|
<td>80 </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>gitea</td>
|
<td>gitea</td>
|
||||||
<td>TCP</td>
|
<td>TCP</td>
|
||||||
<td>WAN</td>
|
<td>WAN</td>
|
||||||
<td>3000</td>
|
<td>3000</td>
|
||||||
<td>192.168.10.234</td>
|
<td>192.168.10.234</td>
|
||||||
<td>3000 </td>
|
<td>3000 </td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
TELMEX Port Forwarding
|
TELMEX Port Forwarding
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Nombre de la Aplicación</td>
|
<td>Nombre de la Aplicación</td>
|
||||||
<td>Puerto WAN</td>
|
<td>Puerto WAN</td>
|
||||||
<td>Puerto LAN</td>
|
<td>Puerto LAN</td>
|
||||||
<td>Nombre del Dispositivo</td>
|
<td>Nombre del Dispositivo</td>
|
||||||
<td>Cliente Interno</td>
|
<td>Cliente Interno</td>
|
||||||
<td>Protocolo</td>
|
<td>Protocolo</td>
|
||||||
<td>Descripción </td>
|
<td>Descripción </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Configuración de Usuario</td>
|
<td>Configuración de Usuario</td>
|
||||||
<td>51820~51820</td>
|
<td>51820~51820</td>
|
||||||
<td>51820~51820</td>
|
<td>51820~51820</td>
|
||||||
<td>WR3000</td>
|
<td>WR3000</td>
|
||||||
<td>192.168.1.64</td>
|
<td>192.168.1.64</td>
|
||||||
<td>UDP</td>
|
<td>UDP</td>
|
||||||
<td>vpn </td>
|
<td>vpn </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Configuración de Usuario</td>
|
<td>Configuración de Usuario</td>
|
||||||
<td>80~80</td>
|
<td>80~80</td>
|
||||||
<td>80~80</td>
|
<td>80~80</td>
|
||||||
<td>WR3000</td>
|
<td>WR3000</td>
|
||||||
<td>192.168.1.64</td>
|
<td>192.168.1.64</td>
|
||||||
<td>TCP</td>
|
<td>TCP</td>
|
||||||
<td>web </td>
|
<td>web </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Configuración de Usuario</td>
|
<td>Configuración de Usuario</td>
|
||||||
<td>3000~3000</td>
|
<td>3000~3000</td>
|
||||||
<td>3000~3000</td>
|
<td>3000~3000</td>
|
||||||
<td>WR3000</td>
|
<td>WR3000</td>
|
||||||
<td>192.168.1.64</td>
|
<td>192.168.1.64</td>
|
||||||
<td>TCP</td>
|
<td>TCP</td>
|
||||||
<td>gitea server </td>
|
<td>gitea server </td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
En cudy el activador de puerto vpn hago esto:
|
En cudy el activador de puerto vpn hago esto:
|
||||||
Nombre: VPN
|
Nombre: VPN
|
||||||
Protocolo de activación: TCP+UDP
|
Protocolo de activación: TCP+UDP
|
||||||
Puerto de Activación: 51820
|
Puerto de Activación: 51820
|
||||||
Protocolo Externo:
|
Protocolo Externo:
|
||||||
|
|
||||||
VPN Clientes:
|
VPN Clientes:
|
||||||
|
|
||||||
|
|
||||||
| IP Cliente | Usuario |
|
| IP Cliente | Usuario |
|
||||||
| ---------- | --------------- |
|
| ---------- | --------------- |
|
||||||
| 10.10.10.2 | dix-lenovo |
|
| 10.10.10.2 | dix-lenovo |
|
||||||
| 10.10.10.3 | router_zandunga |
|
| 10.10.10.3 | router_zandunga |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -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.
|
¡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**
|
### ✅ **Requisitos previos**
|
||||||
|
|
||||||
Asegúrate de tener lo siguiente:
|
Asegúrate de tener lo siguiente:
|
||||||
|
|
||||||
1. **WSL** ya instalado (preferentemente Ubuntu).
|
1. **WSL** ya instalado (preferentemente Ubuntu).
|
||||||
|
|
||||||
2. **Node.js** (v18 o superior).
|
2. **Node.js** (v18 o superior).
|
||||||
|
|
||||||
3. **npm** (gestor de paquetes de Node.js).
|
3. **npm** (gestor de paquetes de Node.js).
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 🔧 **Pasos para instalar n8n en WSL**
|
### 🔧 **Pasos para instalar n8n en WSL**
|
||||||
|
|
||||||
#### 1. Actualiza tu sistema
|
#### 1. Actualiza tu sistema
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt update && sudo apt upgrade -y
|
sudo apt update && sudo apt upgrade -y
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2. Instala Node.js (vía nvm recomendado)
|
#### 2. Instala Node.js (vía nvm recomendado)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
|
||||||
source ~/.bashrc
|
source ~/.bashrc
|
||||||
nvm install --lts
|
nvm install --lts
|
||||||
nvm use --lts
|
nvm use --lts
|
||||||
```
|
```
|
||||||
|
|
||||||
==Para ubuntu server la instalación de Node.js==
|
==Para ubuntu server la instalación de Node.js==
|
||||||
```bash
|
```bash
|
||||||
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
|
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
|
||||||
sudo apt install -y nodejs
|
sudo apt install -y nodejs
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
Verifica que estén bien instalados:
|
Verifica que estén bien instalados:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
node -v
|
node -v
|
||||||
npm -v
|
npm -v
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3. Instala n8n globalmente
|
#### 3. Instala n8n globalmente
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm install -g n8n
|
#sudo npm install -g n8n
|
||||||
```
|
mkdir ~/.npm-global
|
||||||
|
npm config set prefix '~/.npm-global'
|
||||||
Esto instalará el CLI de n8n de forma global.
|
export PATH=$PATH:~/.npm-global/bin
|
||||||
|
|
||||||
#### 4. Ejecuta n8n
|
```
|
||||||
|
|
||||||
```bash
|
Esto instalará el CLI de n8n de forma global.
|
||||||
n8n
|
|
||||||
```
|
#### 4. Ejecuta n8n
|
||||||
|
|
||||||
Verás un mensaje como:
|
```bash
|
||||||
|
n8n
|
||||||
```
|
```
|
||||||
n8n ready on 127.0.0.1, port 5678
|
|
||||||
```
|
Verás un mensaje como:
|
||||||
|
|
||||||
Desde Windows, abre tu navegador y ve a:
|
```
|
||||||
📍 `http://localhost:5678`
|
n8n ready on 127.0.0.1, port 5678
|
||||||
|
```
|
||||||
---
|
|
||||||
|
Desde Windows, abre tu navegador y ve a:
|
||||||
### 🛡️ Opcional: Configurar credenciales y seguridad
|
📍 `http://localhost:5678`
|
||||||
|
|
||||||
Por defecto, n8n se instala sin autenticación. Para producción o pruebas seguras, puedes establecer una contraseña así:
|
---
|
||||||
|
|
||||||
```bash
|
### 🛡️ Opcional: Configurar credenciales y seguridad
|
||||||
export N8N_BASIC_AUTH_ACTIVE=true
|
|
||||||
export N8N_BASIC_AUTH_USER=admin
|
Por defecto, n8n se instala sin autenticación. Para producción o pruebas seguras, puedes establecer una contraseña así:
|
||||||
export N8N_BASIC_AUTH_PASSWORD=mi_contraseña_segura
|
|
||||||
n8n
|
```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`:
|
### 🛠️ ¿Quieres levantarlo en segundo plano?
|
||||||
|
|
||||||
```bash
|
Puedes usar `tmux`, `screen` o `pm2`:
|
||||||
npm install -g pm2
|
|
||||||
pm2 start n8n
|
Ejemplo con `pm2`:
|
||||||
pm2 startup
|
|
||||||
pm2 save
|
```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:
|
|
||||||
|
¿Quieres que n8n arranque automáticamente al iniciar WSL o levantarlo con Docker también? Puedo ayudarte con eso también si gustas.
|
||||||
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:
|
# ejecutar en segundo plano n8n en wsl:
|
||||||
|
|
||||||
WSL **no soporta `systemd` por defecto** en versiones antiguas. Sin embargo, **WSL2 en Windows 11** ya permite activarlo.
|
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:
|
||||||
|
|
||||||
## ✅ OPCIÓN A: Si tienes WSL2 con systemd habilitado
|
WSL **no soporta `systemd` por defecto** en versiones antiguas. Sin embargo, **WSL2 en Windows 11** ya permite activarlo.
|
||||||
|
|
||||||
### 1. Verifica que `systemd` esté habilitado
|
---
|
||||||
|
|
||||||
En `/etc/wsl.conf`, debe decir:
|
## ✅ OPCIÓN A: Si tienes WSL2 con systemd habilitado
|
||||||
|
|
||||||
```ini
|
### 1. Verifica que `systemd` esté habilitado
|
||||||
[boot]
|
|
||||||
systemd=true
|
En `/etc/wsl.conf`, debe decir:
|
||||||
```
|
|
||||||
|
```ini
|
||||||
Luego reinicia WSL:
|
[boot]
|
||||||
|
systemd=true
|
||||||
```bash
|
```
|
||||||
wsl --shutdown
|
|
||||||
```
|
Luego reinicia WSL:
|
||||||
|
|
||||||
---
|
```bash
|
||||||
|
wsl --shutdown
|
||||||
### 2. Crear servicio systemd para n8n
|
```
|
||||||
|
|
||||||
```bash
|
---
|
||||||
sudo nano /etc/systemd/system/n8n.service
|
|
||||||
```
|
### 2. Crear servicio systemd para n8n
|
||||||
|
|
||||||
Contenido del archivo (ajusta tu nombre de usuario y la ruta si es necesario):
|
```bash
|
||||||
|
sudo nano /etc/systemd/system/n8n.service
|
||||||
```ini
|
```
|
||||||
[Unit]
|
|
||||||
Description=n8n workflow automation
|
Contenido del archivo (ajusta tu nombre de usuario y la ruta si es necesario):
|
||||||
After=network.target
|
|
||||||
|
```ini
|
||||||
[Service]
|
[Unit]
|
||||||
User=web # <- tu usuario de WSL
|
Description=n8n workflow automation
|
||||||
Environment=PATH=/home/web/.nvm/versions/node/v18.XX.X/bin:/usr/bin:/bin
|
After=network.target
|
||||||
Environment=NODE_ENV=production
|
|
||||||
WorkingDirectory=/home/web
|
[Service]
|
||||||
ExecStart=/home/web/.nvm/versions/node/v18.XX.X/bin/n8n
|
User=web # <- tu usuario de WSL
|
||||||
Restart=on-failure
|
Environment=PATH=/home/web/.nvm/versions/node/v18.XX.X/bin:/usr/bin:/bin
|
||||||
|
Environment=NODE_ENV=production
|
||||||
[Install]
|
WorkingDirectory=/home/web
|
||||||
WantedBy=default.target
|
ExecStart=/home/web/.nvm/versions/node/v18.XX.X/bin/n8n
|
||||||
```
|
Restart=on-failure
|
||||||
|
|
||||||
📌 Reemplaza `v18.XX.X` con la versión exacta que tienes (`node -v` y `which n8n` te ayudan a saberlo).
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
---
|
```
|
||||||
|
|
||||||
==Para ubuntu server==
|
📌 Reemplaza `v18.XX.X` con la versión exacta que tienes (`node -v` y `which n8n` te ayudan a saberlo).
|
||||||
```bash
|
|
||||||
ExecStart=/usr/bin/n8n
|
---
|
||||||
```
|
|
||||||
### 3. Habilita y levanta el servicio
|
==Para ubuntu server==
|
||||||
|
```bash
|
||||||
```bash
|
ExecStart=/usr/bin/n8n
|
||||||
sudo systemctl daemon-reload
|
```
|
||||||
sudo systemctl enable n8n
|
### 3. Habilita y levanta el servicio
|
||||||
sudo systemctl start n8n
|
|
||||||
```
|
```bash
|
||||||
|
sudo systemctl daemon-reload
|
||||||
Verifica que esté funcionando:
|
sudo systemctl enable n8n
|
||||||
|
sudo systemctl start n8n
|
||||||
```bash
|
```
|
||||||
systemctl status n8n
|
|
||||||
```
|
Verifica que esté funcionando:
|
||||||
|
|
||||||
|
```bash
|
||||||
==Para ubuntu server==
|
systemctl status n8n
|
||||||
|
```
|
||||||
Para que puedas acceder a `n8n` desde otro equipo (navegador o API):
|
|
||||||
|
|
||||||
- Asegúrate de configurar el host:
|
==Para ubuntu server==
|
||||||
```bash
|
|
||||||
export N8N_HOST=0.0.0.0
|
Para que puedas acceder a `n8n` desde otro equipo (navegador o API):
|
||||||
```
|
|
||||||
|
- Asegúrate de configurar el host:
|
||||||
- O en el archivo de servicio:
|
```bash
|
||||||
```bash
|
export N8N_HOST=0.0.0.0
|
||||||
Environment=N8N_HOST=0.0.0.0
|
```
|
||||||
```
|
|
||||||
|
- O en el archivo de servicio:
|
||||||
- Y abre el puerto 5678:
|
```bash
|
||||||
|
Environment=N8N_HOST=0.0.0.0
|
||||||
```bash
|
```
|
||||||
sudo ufw allow 5678/tcp
|
|
||||||
```
|
- 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
|
## 🟡 OPCIÓN B: Si NO tienes systemd activado (por ejemplo en Windows 10 o WSL1)
|
||||||
npm install -g pm2
|
|
||||||
pm2 start n8n
|
Usa mejor **PM2** para ejecutar en segundo plano:
|
||||||
pm2 startup
|
|
||||||
pm2 save
|
```bash
|
||||||
```
|
npm install -g pm2
|
||||||
|
pm2 start n8n
|
||||||
Con eso n8n se ejecutará como demonio cada vez que abras WSL.
|
pm2 startup
|
||||||
|
pm2 save
|
||||||
---
|
```
|
||||||
|
|
||||||
## 🔄 ¿Cómo reiniciar n8n con systemd?
|
Con eso n8n se ejecutará como demonio cada vez que abras WSL.
|
||||||
|
|
||||||
```bash
|
---
|
||||||
sudo systemctl restart n8n
|
|
||||||
```
|
## 🔄 ¿Cómo reiniciar n8n con systemd?
|
||||||
|
|
||||||
¿Quieres que también tenga autenticación, log de errores o conecte a PostgreSQL? Puedo ayudarte a extender el servicio según tus necesidades.
|
```bash
|
||||||
|
sudo systemctl restart n8n
|
||||||
¿Te gustaría saber cómo revisar logs o cómo incluir variables de entorno como el webhook URL base?
|
```
|
||||||
|
|
||||||
|
¿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?
|
@ -1,72 +1,72 @@
|
|||||||
# Soluciones
|
# Soluciones
|
||||||
Modal
|
Modal
|
||||||
|
|
||||||
|
|
||||||
# Navbar
|
# Navbar
|
||||||
- [x] Cambiar tipo de letra (Calibri ó Aptos)
|
- [x] Cambiar tipo de letra (Calibri ó Aptos)
|
||||||
- [x] Cambiar el tamaño de fuente
|
- [x] Cambiar el tamaño de fuente
|
||||||
- [ ] Cambiar el estilo de Contacto
|
- [ ] Cambiar el estilo de Contacto
|
||||||
- [x] Footer y Navbar hacer letra más grande
|
- [x] Footer y Navbar hacer letra más grande
|
||||||
https://www.buk.mx/
|
https://www.buk.mx/
|
||||||
|
|
||||||
trabajar en sección de
|
trabajar en sección de
|
||||||
|
|
||||||
- Publicaciones:
|
- Publicaciones:
|
||||||
- [ ] Añadir
|
- [ ] Añadir
|
||||||
- [ ] Modificar
|
- [ ] Modificar
|
||||||
- [ ] Eliminar
|
- [ ] Eliminar
|
||||||
|
|
||||||
- Administrador
|
- Administrador
|
||||||
- [ ] Crear usuario
|
- [ ] Crear usuario
|
||||||
- [ ] Eliminar usuario
|
- [ ] Eliminar usuario
|
||||||
|
|
||||||
https://codepen.io/david-felipe-huertas/pen/PoNqJgM
|
https://codepen.io/david-felipe-huertas/pen/PoNqJgM
|
||||||
|
|
||||||
uw | main
|
uw | main
|
||||||
80 x 90
|
80 x 90
|
||||||
|
|
||||||
Soluciones
|
Soluciones
|
||||||
|
|
||||||
65 - 70 Letra más grande
|
65 - 70 Letra más grande
|
||||||
- checar relación imagen
|
- checar relación imagen
|
||||||
|
|
||||||
QR que mande a la página web
|
QR que mande a la página web
|
||||||
|
|
||||||
![[Pasted image 20250401111621.png]]
|
![[Pasted image 20250401111621.png]]
|
||||||
|
|
||||||
|
|
||||||
Readme file forma
|
Readme file forma
|
||||||
|
|
||||||
# Modificaciones en producción
|
# Modificaciones en producción
|
||||||
|
|
||||||
1. Debes de asegurar que el sitio tenga https.
|
1. Debes de asegurar que el sitio tenga https.
|
||||||
2. Cambiar la configuración en el archivo main.py:
|
2. Cambiar la configuración en el archivo main.py:
|
||||||
1.
|
1.
|
||||||
2. response.set_cookie('access_token_cookie', access_token, httponly=True, **secure=True**, samesite='Lax')
|
2. response.set_cookie('access_token_cookie', access_token, httponly=True, **secure=True**, samesite='Lax')
|
||||||
|
|
||||||
|
|
||||||
soluciones > fondo blanco.
|
soluciones > fondo blanco.
|
||||||
|
|
||||||
Letra Open-Sans
|
Letra Open-Sans
|
||||||
|
|
||||||
gradient
|
gradient
|
||||||
|
|
||||||
pinkelephant-latam.com
|
pinkelephant-latam.com
|
||||||
https://pinkelephant-latam.com/
|
https://pinkelephant-latam.com/
|
||||||
|
|
||||||
### Montserrat, Source Sans Pro, sans-serif
|
### Montserrat, Source Sans Pro, sans-serif
|
||||||
|
|
||||||
-> Gráficas de algo
|
-> Gráficas de algo
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- logo vueltas en navbar
|
- logo vueltas en navbar
|
||||||
- logo en horizontal.
|
- logo en horizontal.
|
||||||
- ojo en contraseña
|
- ojo en contraseña
|
||||||
- re checar arroba
|
- re checar arroba
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,95 +1,95 @@
|
|||||||
En **Ubuntu Server**, puedes crear un nuevo usuario con privilegios de administrador siguiendo estos pasos:
|
En **Ubuntu Server**, puedes crear un nuevo usuario con privilegios de administrador siguiendo estos pasos:
|
||||||
|
|
||||||
### 📌 1. Crear el usuario
|
### 📌 1. Crear el usuario
|
||||||
|
|
||||||
Ejecuta el siguiente comando, reemplazando `nuevo_usuario` con el nombre que quieras:
|
Ejecuta el siguiente comando, reemplazando `nuevo_usuario` con el nombre que quieras:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo adduser nuevo_usuario
|
sudo adduser nuevo_usuario
|
||||||
```
|
```
|
||||||
|
|
||||||
Te pedirá que configures una contraseña y opcionalmente algunos datos adicionales.
|
Te pedirá que configures una contraseña y opcionalmente algunos datos adicionales.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 📌 2. Otorgarle permisos de administrador (sudo)
|
### 📌 2. Otorgarle permisos de administrador (sudo)
|
||||||
|
|
||||||
Agrega el usuario al grupo `sudo`:
|
Agrega el usuario al grupo `sudo`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo usermod -aG sudo nuevo_usuario
|
sudo usermod -aG sudo nuevo_usuario
|
||||||
```
|
```
|
||||||
|
|
||||||
Esto le permite ejecutar comandos administrativos con `sudo`.
|
Esto le permite ejecutar comandos administrativos con `sudo`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 📌 3. Verificar que tiene privilegios
|
### 📌 3. Verificar que tiene privilegios
|
||||||
|
|
||||||
Inicia sesión con el nuevo usuario:
|
Inicia sesión con el nuevo usuario:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
su - nuevo_usuario
|
su - nuevo_usuario
|
||||||
```
|
```
|
||||||
|
|
||||||
Luego, prueba ejecutar un comando con permisos de administrador:
|
Luego, prueba ejecutar un comando con permisos de administrador:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo whoami
|
sudo whoami
|
||||||
```
|
```
|
||||||
|
|
||||||
Si devuelve **"root"**, el usuario tiene permisos de administrador correctamente. 🚀
|
Si devuelve **"root"**, el usuario tiene permisos de administrador correctamente. 🚀
|
||||||
|
|
||||||
# Eliminar usuario
|
# Eliminar usuario
|
||||||
|
|
||||||
Para eliminar un usuario en **Ubuntu (o cualquier Linux basado en Debian)**, puedes usar el comando `deluser` o `userdel`.
|
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**
|
### ✅ **1. Eliminar el usuario pero conservar su carpeta personal**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo deluser usuario
|
sudo deluser usuario
|
||||||
```
|
```
|
||||||
|
|
||||||
Esto **elimina al usuario** pero deja su **directorio `/home/usuario/`** intacto.
|
Esto **elimina al usuario** pero deja su **directorio `/home/usuario/`** intacto.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### ✅ **2. Eliminar el usuario y su carpeta personal**
|
### ✅ **2. Eliminar el usuario y su carpeta personal**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo deluser --remove-home usuario
|
sudo deluser --remove-home usuario
|
||||||
```
|
```
|
||||||
|
|
||||||
Esto **elimina al usuario** y también **su directorio `/home/usuario/`**.
|
Esto **elimina al usuario** y también **su directorio `/home/usuario/`**.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### ✅ **3. Forzar eliminación con `userdel` (método alternativo)**
|
### ✅ **3. Forzar eliminación con `userdel` (método alternativo)**
|
||||||
|
|
||||||
Si `deluser` no está disponible, usa:
|
Si `deluser` no está disponible, usa:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo userdel -r usuario
|
sudo userdel -r usuario
|
||||||
```
|
```
|
||||||
|
|
||||||
🔹 **`-r`** → Elimina la carpeta `/home/usuario/`.
|
🔹 **`-r`** → Elimina la carpeta `/home/usuario/`.
|
||||||
|
|
||||||
⚠️ **Cuidado:** Esto borra todos los archivos del usuario.
|
⚠️ **Cuidado:** Esto borra todos los archivos del usuario.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### ✅ **4. Verificar que el usuario fue eliminado**
|
### ✅ **4. Verificar que el usuario fue eliminado**
|
||||||
|
|
||||||
Después de eliminarlo, verifica que ya no exista:
|
Después de eliminarlo, verifica que ya no exista:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cat /etc/passwd | grep usuario
|
cat /etc/passwd | grep usuario
|
||||||
```
|
```
|
||||||
|
|
||||||
Si no muestra nada, significa que fue eliminado correctamente.
|
Si no muestra nada, significa que fue eliminado correctamente.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
🚀 **¿Necesitas eliminar usuarios en masa o algo más específico?** Dime y te ayudo. 😃🔥
|
🚀 **¿Necesitas eliminar usuarios en masa o algo más específico?** Dime y te ayudo. 😃🔥
|
@ -1,8 +1,8 @@
|
|||||||
sudo apt install xrdp -y
|
sudo apt install xrdp -y
|
||||||
sudo systemctl status xrdp
|
sudo systemctl status xrdp
|
||||||
sudo adduser xrdp ssl-cert
|
sudo adduser xrdp ssl-cert
|
||||||
sudo systemctl restart xrdp
|
sudo systemctl restart xrdp
|
||||||
sudo ufw allow from 192.168.10.0/24 to any port 3389
|
sudo ufw allow from 192.168.10.0/24 to any port 3389
|
||||||
|
|
||||||
conectarse a través de remote desktop
|
conectarse a través de remote desktop
|
||||||
ingresar la ip del equipop remoto en la ui de windows remote desktop
|
ingresar la ip del equipop remoto en la ui de windows remote desktop
|
||||||
|
@ -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:
|
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**
|
### 1️⃣ **Instalar Certbot en tu Servidor**
|
||||||
|
|
||||||
Certbot es la herramienta oficial de Let's Encrypt para generar certificados.
|
Certbot es la herramienta oficial de Let's Encrypt para generar certificados.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt update && sudo apt upgrade -y
|
sudo apt update && sudo apt upgrade -y
|
||||||
sudo apt install certbot -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**.
|
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**
|
### 2️⃣ **Generar Certificados para cada Dominio**
|
||||||
|
|
||||||
Ejecuta el siguiente comando para generar un certificado para tu dominio:
|
Ejecuta el siguiente comando para generar un certificado para tu dominio:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo certbot certonly --standalone -d ejemplo.com -d www.ejemplo.com
|
sudo certbot certonly --standalone -d ejemplo.com -d www.ejemplo.com
|
||||||
# Ejemplo:
|
# Ejemplo:
|
||||||
sudo certbot certonly --standalone -d ai-reports.1.temporal.work -d www.ai-reports.1.temporal.work
|
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.
|
Si tienes varios dominios en tu HAProxy, repite el comando para cada uno.
|
||||||
|
|
||||||
Esto generará los certificados en:
|
Esto generará los certificados en:
|
||||||
|
|
||||||
```
|
```
|
||||||
/etc/letsencrypt/live/ejemplo.com/fullchain.pem
|
/etc/letsencrypt/live/ejemplo.com/fullchain.pem
|
||||||
/etc/letsencrypt/live/ejemplo.com/privkey.pem
|
/etc/letsencrypt/live/ejemplo.com/privkey.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 3️⃣ **Combinar los Certificados para HAProxy**
|
### 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:
|
HAProxy requiere que el certificado y la clave privada estén en un solo archivo. Usa este comando para combinarlos:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cat /etc/letsencrypt/live/ejemplo.com/fullchain.pem \
|
cat /etc/letsencrypt/live/ejemplo.com/fullchain.pem \
|
||||||
/etc/letsencrypt/live/ejemplo.com/privkey.pem > \
|
/etc/letsencrypt/live/ejemplo.com/privkey.pem > \
|
||||||
/etc/haproxy/certs/ejemplo.com.pem
|
/etc/haproxy/certs/ejemplo.com.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
Repite esto para cada dominio y asegúrate de que HAProxy pueda leer los archivos:
|
Repite esto para cada dominio y asegúrate de que HAProxy pueda leer los archivos:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo chmod 600 /etc/haproxy/certs/*.pem
|
sudo chmod 600 /etc/haproxy/certs/*.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 4️⃣ **Configurar HAProxy para HTTPS**
|
### 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:
|
Edita el archivo de configuración de HAProxy (generalmente en `/etc/haproxy/haproxy.cfg`) y agrega la configuración SSL para cada dominio:
|
||||||
|
|
||||||
```haproxy
|
```haproxy
|
||||||
frontend https_front
|
frontend https_front
|
||||||
bind *:443 ssl crt /etc/haproxy/certs/ejemplo.com.pem crt /etc/haproxy/certs/
|
bind *:443 ssl crt /etc/haproxy/certs/ejemplo.com.pem crt /etc/haproxy/certs/
|
||||||
mode http
|
mode http
|
||||||
use_backend backend_ejemplo if { hdr(host) -i ejemplo.com }
|
use_backend backend_ejemplo if { hdr(host) -i ejemplo.com }
|
||||||
|
|
||||||
backend backend_ejemplo
|
backend backend_ejemplo
|
||||||
server srv1 192.168.1.100:80 check
|
server srv1 192.168.1.100:80 check
|
||||||
```
|
```
|
||||||
|
|
||||||
Esto permite que HAProxy seleccione el certificado correcto según el **hostname** de la solicitud.
|
Esto permite que HAProxy seleccione el certificado correcto según el **hostname** de la solicitud.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 5️⃣ **Renovación Automática**
|
### 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:
|
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:
|
Edita el crontab:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo crontab -e
|
sudo crontab -e
|
||||||
```
|
```
|
||||||
|
|
||||||
Añade esta línea:
|
Añade esta línea:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
0 3 * * * certbot renew --quiet && systemctl reload haproxy
|
0 3 * * * certbot renew --quiet && systemctl reload haproxy
|
||||||
```
|
```
|
||||||
|
|
||||||
Esto intentará renovar los certificados diariamente a las **3 AM** y recargará HAProxy si hay cambios.
|
Esto intentará renovar los certificados diariamente a las **3 AM** y recargará HAProxy si hay cambios.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### ✅ **Conclusión**
|
### ✅ **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. 🚀
|
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. 😃
|
Si necesitas ayuda con algún paso, dime cómo tienes configurado tu HAProxy y lo ajustamos. 😃
|
@ -1,38 +1,38 @@
|
|||||||
El comando que has proporcionado realiza lo siguiente:
|
El comando que has proporcionado realiza lo siguiente:
|
||||||
|
|
||||||
### **Explicación del comando:**
|
### **Explicación del comando:**
|
||||||
```bash
|
```bash
|
||||||
sudo apt install samba samba-common-bin -y
|
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.
|
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.
|
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.
|
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.
|
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.
|
5. **`-y`**: Responde automáticamente "sí" (yes) a cualquier pregunta de confirmación durante la instalación, evitando interrupciones.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### **¿Para qué sirve Samba?**
|
### **¿Para qué sirve Samba?**
|
||||||
- Permite compartir archivos y carpetas entre Linux y Windows en una red local.
|
- 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).
|
- 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).
|
- Es útil para crear servidores de archivos en entornos mixtos (Linux/Windows).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### **Pasos posteriores típicos:**
|
### **Pasos posteriores típicos:**
|
||||||
1. **Configurar Samba**: Editar el archivo de configuración `/etc/samba/smb.conf` para definir los recursos compartidos.
|
1. **Configurar Samba**: Editar el archivo de configuración `/etc/samba/smb.conf` para definir los recursos compartidos.
|
||||||
2. **Reiniciar el servicio**:
|
2. **Reiniciar el servicio**:
|
||||||
```bash
|
```bash
|
||||||
sudo systemctl restart smbd
|
sudo systemctl restart smbd
|
||||||
```
|
```
|
||||||
3. **Añadir usuarios de Samba**:
|
3. **Añadir usuarios de Samba**:
|
||||||
```bash
|
```bash
|
||||||
sudo smbpasswd -a [usuario]
|
sudo smbpasswd -a [usuario]
|
||||||
```
|
```
|
||||||
|
|
||||||
Si necesitas ayuda con la configuración de Samba, ¡avísame!
|
Si necesitas ayuda con la configuración de Samba, ¡avísame!
|
@ -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:
|
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`)
|
### 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.
|
- 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.
|
- Puedes desplazarte por los procesos, ordenarlos y matarlos fácilmente.
|
||||||
|
|
||||||
- **Instalación**:
|
- **Instalación**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install htop # Debian/Ubuntu
|
sudo apt install htop # Debian/Ubuntu
|
||||||
sudo yum install htop # CentOS/RHEL
|
sudo yum install htop # CentOS/RHEL
|
||||||
sudo pacman -S htop # Arch Linux
|
sudo pacman -S htop # Arch Linux
|
||||||
```
|
```
|
||||||
|
|
||||||
- **Uso**:
|
- **Uso**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
htop
|
htop
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### 2️⃣ **glances** (Monitoreo de sistema en tiempo real)
|
### 2️⃣ **glances** (Monitoreo de sistema en tiempo real)
|
||||||
|
|
||||||
- Proporciona información detallada de CPU, memoria, disco, red y procesos en una sola pantalla.
|
- 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.
|
- Se adapta automáticamente al tamaño de la pantalla y tiene colores para facilitar la lectura.
|
||||||
|
|
||||||
- **Instalación**:
|
- **Instalación**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install glances # Debian/Ubuntu
|
sudo apt install glances # Debian/Ubuntu
|
||||||
pip install glances # Alternativa con Python
|
pip install glances # Alternativa con Python
|
||||||
```
|
```
|
||||||
|
|
||||||
- **Uso**:
|
- **Uso**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
glances
|
glances
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### 3️⃣ **nmon** (Análisis detallado del rendimiento)
|
### 3️⃣ **nmon** (Análisis detallado del rendimiento)
|
||||||
|
|
||||||
- Muestra CPU, memoria, disco, red y más en tiempo real con gráficos ASCII.
|
- Muestra CPU, memoria, disco, red y más en tiempo real con gráficos ASCII.
|
||||||
|
|
||||||
- Ideal para diagnósticos de rendimiento.
|
- Ideal para diagnósticos de rendimiento.
|
||||||
|
|
||||||
- **Instalación**:
|
- **Instalación**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install nmon # Debian/Ubuntu
|
sudo apt install nmon # Debian/Ubuntu
|
||||||
```
|
```
|
||||||
|
|
||||||
- **Uso**:
|
- **Uso**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
nmon
|
nmon
|
||||||
```
|
```
|
||||||
|
|
||||||
Luego presiona **c, m, d, n** para ver CPU, memoria, disco y red respectivamente.
|
Luego presiona **c, m, d, n** para ver CPU, memoria, disco y red respectivamente.
|
||||||
|
|
||||||
|
|
||||||
### 4️⃣ **btop** (Interfaz moderna y colorida)
|
### 4️⃣ **btop** (Interfaz moderna y colorida)
|
||||||
|
|
||||||
- Es una evolución de `htop`, con una interfaz más visual y amigable.
|
- 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.
|
- Muestra gráficos en tiempo real de CPU, RAM, disco y red.
|
||||||
|
|
||||||
- **Instalación**:
|
- **Instalación**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install btop # Debian/Ubuntu
|
sudo apt install btop # Debian/Ubuntu
|
||||||
```
|
```
|
||||||
|
|
||||||
- **Uso**:
|
- **Uso**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
btop
|
btop
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### ¿Cuál elegir?
|
### ¿Cuál elegir?
|
||||||
|
|
||||||
- **Para algo simple y rápido:** `htop`
|
- **Para algo simple y rápido:** `htop`
|
||||||
|
|
||||||
- **Para información detallada en una pantalla:** `glances`
|
- **Para información detallada en una pantalla:** `glances`
|
||||||
|
|
||||||
- **Para análisis de rendimiento:** `nmon`
|
- **Para análisis de rendimiento:** `nmon`
|
||||||
|
|
||||||
- **Para una interfaz moderna y visualmente atractiva:** `btop`
|
- **Para una interfaz moderna y visualmente atractiva:** `btop`
|
||||||
|
|
||||||
|
|
||||||
¿Quieres que te ayude con la configuración de alguna de ellas? 😊
|
¿Quieres que te ayude con la configuración de alguna de ellas? 😊
|
@ -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 )
|
1.- Instalar `rclone` en el servidor (si el servidor no tiene interfaz gráfica también instalalo en tu PC o laptop )
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install rclone
|
sudo apt install rclone
|
||||||
```
|
```
|
||||||
|
|
||||||
2.- Para poder usar la herramienta y mandar archivos al servidor debemos hacer la configuración inicial mediante el comando:
|
2.- Para poder usar la herramienta y mandar archivos al servidor debemos hacer la configuración inicial mediante el comando:
|
||||||
```bash
|
```bash
|
||||||
rclone config
|
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:
|
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**:
|
2.1.- La primera vez debemos crear nuestro primer remoto, así que ingresa la letra **n** y **enter**:
|
||||||
```bash
|
```bash
|
||||||
No remotes found, make a new one?
|
No remotes found, make a new one?
|
||||||
n) New remote
|
n) New remote
|
||||||
s) Set configuration password
|
s) Set configuration password
|
||||||
q) Quit config
|
q) Quit config
|
||||||
n/s/q> n
|
n/s/q> n
|
||||||
```
|
```
|
||||||
|
|
||||||
2.2.- Nombre de nuevo remoto (no dejes espacios, mejor usa guion bajo):
|
2.2.- Nombre de nuevo remoto (no dejes espacios, mejor usa guion bajo):
|
||||||
```bash
|
```bash
|
||||||
Enter name for new remote.
|
Enter name for new remote.
|
||||||
name> db_backups
|
name> db_backups
|
||||||
```
|
```
|
||||||
|
|
||||||
2.3.- Selección de la opción 18, es la opción de Google Drive
|
2.3.- Selección de la opción 18, es la opción de Google Drive
|
||||||
```bash
|
```bash
|
||||||
Option Storage.
|
Option Storage.
|
||||||
Type of storage to configure.
|
Type of storage to configure.
|
||||||
Choose a number from below, or type in your own value.
|
Choose a number from below, or type in your own value.
|
||||||
|
|
||||||
18 / Google Drive
|
18 / Google Drive
|
||||||
\ (drive)
|
\ (drive)
|
||||||
|
|
||||||
Storage> 18
|
Storage> 18
|
||||||
```
|
```
|
||||||
|
|
||||||
2.4.- Te pedirá tu id de cliente de Google pero si no lo tienes solo da enter:
|
2.4.- Te pedirá tu id de cliente de Google pero si no lo tienes solo da enter:
|
||||||
```bash
|
```bash
|
||||||
Option client_id.
|
Option client_id.
|
||||||
Google Application Client Id
|
Google Application Client Id
|
||||||
Setting your own is recommended.
|
Setting your own is recommended.
|
||||||
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
|
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.
|
If you leave this blank, it will use an internal key which is low performance.
|
||||||
Enter a value. Press Enter to leave empty.
|
Enter a value. Press Enter to leave empty.
|
||||||
client_id>
|
client_id>
|
||||||
```
|
```
|
||||||
|
|
||||||
2.5.- Solicitará tu clave de OAuth pero lo puedes dejar vacío, solo da enter:
|
2.5.- Solicitará tu clave de OAuth pero lo puedes dejar vacío, solo da enter:
|
||||||
```bash
|
```bash
|
||||||
Option client_secret.
|
Option client_secret.
|
||||||
OAuth Client Secret.
|
OAuth Client Secret.
|
||||||
Leave blank normally.
|
Leave blank normally.
|
||||||
Enter a value. Press Enter to leave empty.
|
Enter a value. Press Enter to leave empty.
|
||||||
client_secret>
|
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.
|
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
|
```bash
|
||||||
Option scope.
|
Option scope.
|
||||||
Scope that rclone should use when requesting access from drive.
|
Scope that rclone should use when requesting access from drive.
|
||||||
Choose a number from below, or type in your own value.
|
Choose a number from below, or type in your own value.
|
||||||
Press Enter to leave empty.
|
Press Enter to leave empty.
|
||||||
1 / Full access all files, excluding Application Data Folder.
|
1 / Full access all files, excluding Application Data Folder.
|
||||||
\ (drive)
|
\ (drive)
|
||||||
2 / Read-only access to file metadata and file contents.
|
2 / Read-only access to file metadata and file contents.
|
||||||
\ (drive.readonly)
|
\ (drive.readonly)
|
||||||
/ Access to files created by rclone only.
|
/ Access to files created by rclone only.
|
||||||
3 | These are visible in the drive website.
|
3 | These are visible in the drive website.
|
||||||
| File authorization is revoked when the user deauthorizes the app.
|
| File authorization is revoked when the user deauthorizes the app.
|
||||||
\ (drive.file)
|
\ (drive.file)
|
||||||
/ Allows read and write access to the Application Data folder.
|
/ Allows read and write access to the Application Data folder.
|
||||||
4 | This is not visible in the drive website.
|
4 | This is not visible in the drive website.
|
||||||
\ (drive.appfolder)
|
\ (drive.appfolder)
|
||||||
/ Allows read-only access to file metadata but
|
/ Allows read-only access to file metadata but
|
||||||
5 | does not allow any access to read or download file content.
|
5 | does not allow any access to read or download file content.
|
||||||
\ (drive.metadata.readonly)
|
\ (drive.metadata.readonly)
|
||||||
scope> 1
|
scope> 1
|
||||||
```
|
```
|
||||||
|
|
||||||
2.7.- Te pedirá la ruta de las credenciales en formato JSON pero lo puedes dejar en blanco y solo dar enter:
|
2.7.- Te pedirá la ruta de las credenciales en formato JSON pero lo puedes dejar en blanco y solo dar enter:
|
||||||
```bash
|
```bash
|
||||||
Option service_account_file.
|
Option service_account_file.
|
||||||
Service Account Credentials JSON file path.
|
Service Account Credentials JSON file path.
|
||||||
Leave blank normally.
|
Leave blank normally.
|
||||||
Needed only if you want use SA instead of interactive login.
|
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}`.
|
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.
|
Enter a value. Press Enter to leave empty.
|
||||||
service_account_file>
|
service_account_file>
|
||||||
```
|
```
|
||||||
|
|
||||||
2.8- Preguntará si quieres editar la configuración avanzada, la opción es no (n):
|
2.8- Preguntará si quieres editar la configuración avanzada, la opción es no (n):
|
||||||
```bash
|
```bash
|
||||||
Edit advanced config?
|
Edit advanced config?
|
||||||
y) Yes
|
y) Yes
|
||||||
n) No (default)
|
n) No (default)
|
||||||
y/n> n
|
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**.
|
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
|
```bash
|
||||||
Use auto config?
|
Use auto config?
|
||||||
* Say Y if not sure
|
* Say Y if not sure
|
||||||
* Say N if you are working on a remote or headless machine
|
* Say N if you are working on a remote or headless machine
|
||||||
|
|
||||||
y) Yes (default)
|
y) Yes (default)
|
||||||
n) No
|
n) No
|
||||||
y/n> n
|
y/n> n
|
||||||
```
|
```
|
||||||
|
|
||||||
2.9.1.- Del comando anterior en consola te mostrará un mensaje como este:
|
2.9.1.- Del comando anterior en consola te mostrará un mensaje como este:
|
||||||
```bash
|
```bash
|
||||||
Option config_token.
|
Option config_token.
|
||||||
For this to work, you will need rclone available on a machine that has
|
For this to work, you will need rclone available on a machine that has
|
||||||
a web browser available.
|
a web browser available.
|
||||||
For more help and alternate methods see: https://rclone.org/remote_setup/
|
For more help and alternate methods see: https://rclone.org/remote_setup/
|
||||||
Execute the following on the machine with the web browser (same rclone
|
Execute the following on the machine with the web browser (same rclone
|
||||||
version recommended):
|
version recommended):
|
||||||
rclone authorize "drive" "ayXzY01uSSI8ImRiaXZlIm0"
|
rclone authorize "drive" "ayXzY01uSSI8ImRiaXZlIm0"
|
||||||
Then paste the result.
|
Then paste the result.
|
||||||
Enter a value.
|
Enter a value.
|
||||||
config_token>
|
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:
|
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
|
```bash
|
||||||
rclone authorize "drive" "ayXzY01uSSI8ImRiaXZlIm0"
|
rclone authorize "drive" "ayXzY01uSSI8ImRiaXZlIm0"
|
||||||
```
|
```
|
||||||
|
|
||||||
De ese comando verás que te despliega la consola una respuesta como esta:
|
De ese comando verás que te despliega la consola una respuesta como esta:
|
||||||
```bash
|
```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: 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: 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: Log in and authorize rclone for access
|
||||||
2025/06/03 13:12:35 NOTICE: Waiting for code...
|
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 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:
|
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
|
```bash
|
||||||
Paste the following into your remote machine --->
|
Paste the following into your remote machine --->
|
||||||
eyJ0b2tlbiI6IntcImFjY2Vzc19....[muchos-caracteres]....NjowMFwifSJ9
|
eyJ0b2tlbiI6IntcImFjY2Vzc19....[muchos-caracteres]....NjowMFwifSJ9
|
||||||
<---End paste
|
<---End paste
|
||||||
```
|
```
|
||||||
Copia lo que esta entre las flechas (---> hash <---) y pégalo en la terminal de tu servidor VPS.
|
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:
|
2.10.- Te preguntará que si es un drive compartido, en este caso es no:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
Configure this as a Shared Drive (Team Drive)?
|
Configure this as a Shared Drive (Team Drive)?
|
||||||
|
|
||||||
y) Yes
|
y) Yes
|
||||||
n) No (default)
|
n) No (default)
|
||||||
y/n> n
|
y/n> n
|
||||||
```
|
```
|
||||||
|
|
||||||
2.11.- Finalmente te hará la pregunta de si quieres mantener la configuración hecha, debes ingresar la y:
|
2.11.- Finalmente te hará la pregunta de si quieres mantener la configuración hecha, debes ingresar la y:
|
||||||
```bash
|
```bash
|
||||||
Configuration complete.
|
Configuration complete.
|
||||||
Options:
|
Options:
|
||||||
- type: drive
|
- type: drive
|
||||||
- scope: 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"}
|
- 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:
|
- team_drive:
|
||||||
Keep this "db_backups" remote?
|
Keep this "db_backups" remote?
|
||||||
y) Yes this is OK (default)
|
y) Yes this is OK (default)
|
||||||
e) Edit this remote
|
e) Edit this remote
|
||||||
d) Delete this remote
|
d) Delete this remote
|
||||||
y/e/d> y
|
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
|
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`
|
### Subir carpeta con `rclone copy`
|
||||||
|
|
||||||
Este comando copia los archivos de origen a destino, sin borrar nada en destino.
|
Este comando copia los archivos de origen a destino, sin borrar nada en destino.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
rclone copy /ruta/local/de/la/carpeta formha_db_backups:/carpeta-en-drive
|
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
|
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.
|
* `/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).
|
* `formha_db_backups:/carpeta-en-drive` → la carpeta en tu Google Drive (se creará si no existe).
|
||||||
|
|
||||||
Ejemplo:
|
Ejemplo:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
rclone copy /home/dix/backups formha_db_backups:/backups-vps -p --v
|
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.
|
Esto copiará todo el contenido de `/home/dix/backups` a la carpeta `backups-vps` en Google Drive.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Subir carpeta con `rclone sync`
|
### 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):
|
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
|
```bash
|
||||||
rclone sync /ruta/local/de/la/carpeta formha_db_backups:/carpeta-en-drive
|
rclone sync /ruta/local/de/la/carpeta formha_db_backups:/carpeta-en-drive
|
||||||
```
|
```
|
||||||
|
|
||||||
Ten cuidado con `sync` porque puede eliminar archivos en Drive.
|
Ten cuidado con `sync` porque puede eliminar archivos en Drive.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Otros tips útiles
|
### Otros tips útiles
|
||||||
|
|
||||||
* Para ver el contenido en Drive:
|
* Para ver el contenido en Drive:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
rclone ls formha_db_backups:/carpeta-en-drive
|
rclone ls formha_db_backups:/carpeta-en-drive
|
||||||
```
|
```
|
||||||
|
|
||||||
* Para hacer dry-run (simular qué pasaría sin cambios reales):
|
* Para hacer dry-run (simular qué pasaría sin cambios reales):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
rclone copy --dry-run /home/dix/backups formha_db_backups:/backups-vps
|
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?
|
¿Quieres que te ayude con un script automático o programación de backups?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -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.
|
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
|
### ✅ Requisitos
|
||||||
|
|
||||||
- Raspberry Pi (con Raspberry Pi OS o similar).
|
- Raspberry Pi (con Raspberry Pi OS o similar).
|
||||||
|
|
||||||
- Conexión a Internet.
|
- Conexión a Internet.
|
||||||
|
|
||||||
- Configuración de cliente WireGuard funcional (`wg0.conf`).
|
- Configuración de cliente WireGuard funcional (`wg0.conf`).
|
||||||
|
|
||||||
- IP forwarding habilitado.
|
- IP forwarding habilitado.
|
||||||
|
|
||||||
- `iptables` o `nftables` para NAT.
|
- `iptables` o `nftables` para NAT.
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 🔧 Pasos
|
### 🔧 Pasos
|
||||||
|
|
||||||
#### 1. **Instala WireGuard**
|
#### 1. **Instala WireGuard**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install wireguard
|
sudo apt install wireguard
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2. **Configura el cliente WireGuard**
|
#### 2. **Configura el cliente WireGuard**
|
||||||
|
|
||||||
Crea el archivo `/etc/wireguard/wg0.conf` con los datos del servidor:
|
Crea el archivo `/etc/wireguard/wg0.conf` con los datos del servidor:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
[Interface]
|
[Interface]
|
||||||
PrivateKey = TU_CLAVE_PRIVADA
|
PrivateKey = TU_CLAVE_PRIVADA
|
||||||
Address = 10.10.10.2/32
|
Address = 10.10.10.2/32
|
||||||
DNS = 1.1.1.1
|
DNS = 1.1.1.1
|
||||||
|
|
||||||
[Peer]
|
[Peer]
|
||||||
PublicKey = CLAVE_PUBLICA_DEL_SERVIDOR
|
PublicKey = CLAVE_PUBLICA_DEL_SERVIDOR
|
||||||
Endpoint = IP_DEL_SERVIDOR:51820
|
Endpoint = IP_DEL_SERVIDOR:51820
|
||||||
AllowedIPs = 0.0.0.0/0
|
AllowedIPs = 0.0.0.0/0
|
||||||
PersistentKeepalive = 25
|
PersistentKeepalive = 25
|
||||||
```
|
```
|
||||||
|
|
||||||
Activa el túnel:
|
Activa el túnel:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo wg-quick up wg0
|
sudo wg-quick up wg0
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3. **Habilita IP forwarding**
|
#### 3. **Habilita IP forwarding**
|
||||||
|
|
||||||
Edita `/etc/sysctl.conf` y descomenta o añade:
|
Edita `/etc/sysctl.conf` y descomenta o añade:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
net.ipv4.ip_forward=1
|
net.ipv4.ip_forward=1
|
||||||
```
|
```
|
||||||
|
|
||||||
Aplica el cambio:
|
Aplica el cambio:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo sysctl -p
|
sudo sysctl -p
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 4. **Configura NAT para compartir Internet**
|
#### 4. **Configura NAT para compartir Internet**
|
||||||
|
|
||||||
Asumiendo que los clientes están en `eth0` o `wlan0` y que la VPN va por `wg0`:
|
Asumiendo que los clientes están en `eth0` o `wlan0` y que la VPN va por `wg0`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Reglas NAT
|
# Reglas NAT
|
||||||
sudo iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
|
sudo iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
|
||||||
|
|
||||||
# Permitir reenvío entre interfaces
|
# 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 wg0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
|
||||||
sudo iptables -A FORWARD -i wlan0 -o wg0 -j ACCEPT
|
sudo iptables -A FORWARD -i wlan0 -o wg0 -j ACCEPT
|
||||||
```
|
```
|
||||||
|
|
||||||
Haz persistente con `iptables-persistent`:
|
Haz persistente con `iptables-persistent`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install iptables-persistent
|
sudo apt install iptables-persistent
|
||||||
sudo netfilter-persistent save
|
sudo netfilter-persistent save
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 5. **Crea un hotspot o red para compartir**
|
#### 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).
|
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
|
### 📶 Ejemplo de uso
|
||||||
|
|
||||||
- Raspberry conectada a Internet por Wi-Fi.
|
- Raspberry conectada a Internet por Wi-Fi.
|
||||||
|
|
||||||
- Cliente se conecta por Ethernet a la Raspberry.
|
- Cliente se conecta por Ethernet a la Raspberry.
|
||||||
|
|
||||||
- Todo el tráfico del cliente pasa por la VPN (WireGuard).
|
- 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.
|
Si me das detalles sobre cómo quieres compartir (Wi-Fi o Ethernet), te puedo ayudar a configurar eso también.
|
Binary file not shown.
@ -1,78 +1,78 @@
|
|||||||
¡Perfecto! 🎯
|
¡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. ✅
|
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`?
|
### 🧩 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**:
|
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`**
|
### 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.
|
Algunos servidores Git (como **Gitea**) pueden rechazar peticiones HTTP que usen un nombre de dominio diferente al configurado.
|
||||||
|
|
||||||
**Ejemplo típico de fallo:**
|
**Ejemplo típico de fallo:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Este sí funciona porque coincide con la configuración del servidor
|
# Este sí funciona porque coincide con la configuración del servidor
|
||||||
git remote add origin http://dix-ip.duckdns.org:3000/repo.git
|
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
|
# 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
|
git remote add origin http://ip.xala.dev:3000/repo.git
|
||||||
```
|
```
|
||||||
|
|
||||||
👉 **Solución:**
|
👉 **Solución:**
|
||||||
|
|
||||||
- Si usas Gitea, revisa el valor `DOMAIN` o `ROOT_URL` en su archivo `app.ini`.
|
- 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í:
|
- Asegúrate de que incluya `ip.xala.dev` o configúralo así:
|
||||||
|
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
ROOT_URL = http://ip.xala.dev:3000/
|
ROOT_URL = http://ip.xala.dev:3000/
|
||||||
```
|
```
|
||||||
|
|
||||||
Y reinicia Gitea.
|
Y reinicia Gitea.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 2. 🔒 **Tu servidor Git usa una ACL o firewall basado en nombres**
|
### 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.
|
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**
|
### 3. 🧪 **Verifica que responde por nombre**
|
||||||
|
|
||||||
Haz esta prueba desde la máquina cliente:
|
Haz esta prueba desde la máquina cliente:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -v http://ip.xala.dev:3000/
|
curl -v http://ip.xala.dev:3000/
|
||||||
```
|
```
|
||||||
|
|
||||||
Y también:
|
Y también:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -v http://dix-ip.duckdns.org:3000/
|
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.
|
- 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):
|
### ✅ 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:
|
Puedes engañar a Git y al servidor editando tu `/etc/hosts` y agregando:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
189.131.79.23 dix-ip.duckdns.org ip.xala.dev
|
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.
|
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.
|
¿Sabes qué servidor Git estás usando (¿Gitea, GitLab, bare Git+nginx?)? Puedo ayudarte a ajustar la configuración.
|
@ -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:
|
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 limpia de Node.js 20
|
||||||
|
|
||||||
- Instalación de n8n y pm2
|
- Instalación de n8n y pm2
|
||||||
|
|
||||||
- Script de arranque con autenticación básica
|
- Script de arranque con autenticación básica
|
||||||
|
|
||||||
- Ejecución en segundo plano con reinicio automático al encender el servidor
|
- Ejecución en segundo plano con reinicio automático al encender el servidor
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 🛠 Manual actualizado para instalar n8n (sin Docker) en Ubuntu Server
|
# 🛠 Manual actualizado para instalar n8n (sin Docker) en Ubuntu Server
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✅ 1. Actualiza el sistema e instala dependencias
|
## ✅ 1. Actualiza el sistema e instala dependencias
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt update && sudo apt upgrade -y
|
sudo apt update && sudo apt upgrade -y
|
||||||
sudo apt install -y curl gnupg build-essential
|
sudo apt install -y curl gnupg build-essential
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✅ 2. Instala Node.js 20 (requerido por versiones recientes de n8n)
|
## ✅ 2. Instala Node.js 20 (requerido por versiones recientes de n8n)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
|
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
|
||||||
sudo apt install -y nodejs
|
sudo apt install -y nodejs
|
||||||
```
|
```
|
||||||
|
|
||||||
Verifica que esté instalado correctamente:
|
Verifica que esté instalado correctamente:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
node -v
|
node -v
|
||||||
npm -v
|
npm -v
|
||||||
```
|
```
|
||||||
|
|
||||||
Debe mostrar algo como `v20.x.x`.
|
Debe mostrar algo como `v20.x.x`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✅ 3. Instala `n8n` y `pm2` globalmente
|
## ✅ 3. Instala `n8n` y `pm2` globalmente
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo npm install -g pm2 n8n
|
sudo npm install -g pm2 n8n
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✅ 4. Crea el script de arranque `n8n`
|
## ✅ 4. Crea el script de arranque `n8n`
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
nano ~/start-n8n.sh
|
nano ~/start-n8n.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Pega el siguiente contenido:
|
Pega el siguiente contenido:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
export N8N_HOST=0.0.0.0
|
export N8N_HOST=0.0.0.0
|
||||||
export N8N_PORT=5678
|
export N8N_PORT=5678
|
||||||
export N8N_BASIC_AUTH_ACTIVE=true
|
export N8N_BASIC_AUTH_ACTIVE=true
|
||||||
export N8N_BASIC_AUTH_USER=admin
|
export N8N_BASIC_AUTH_USER=admin
|
||||||
export N8N_BASIC_AUTH_PASSWORD=Shala55951254
|
export N8N_BASIC_AUTH_PASSWORD=Shala55951254
|
||||||
n8n
|
n8n
|
||||||
```
|
```
|
||||||
|
|
||||||
Guarda y cierra (Ctrl+O, Enter, Ctrl+X).
|
Guarda y cierra (Ctrl+O, Enter, Ctrl+X).
|
||||||
|
|
||||||
Hazlo ejecutable:
|
Hazlo ejecutable:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
chmod +x ~/start-n8n.sh
|
chmod +x ~/start-n8n.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✅ 5. Ejecuta el script para probar
|
## ✅ 5. Ejecuta el script para probar
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
~/start-n8n.sh
|
~/start-n8n.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Deberías ver un mensaje como:
|
Deberías ver un mensaje como:
|
||||||
|
|
||||||
```
|
```
|
||||||
Editor is now accessible via: http://0.0.0.0:5678
|
Editor is now accessible via: http://0.0.0.0:5678
|
||||||
```
|
```
|
||||||
|
|
||||||
📌 Accede desde el navegador con la IP del servidor:
|
📌 Accede desde el navegador con la IP del servidor:
|
||||||
|
|
||||||
```
|
```
|
||||||
http://TU_IP:5678
|
http://TU_IP:5678
|
||||||
```
|
```
|
||||||
|
|
||||||
Usuario: `admin`
|
Usuario: `admin`
|
||||||
Contraseña: `Shala55951254`
|
Contraseña: `Shala55951254`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✅ 6. Ejecutar n8n en segundo plano con `pm2`
|
## ✅ 6. Ejecutar n8n en segundo plano con `pm2`
|
||||||
|
|
||||||
### A. Inicia el proceso con `pm2`:
|
### A. Inicia el proceso con `pm2`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 start ~/start-n8n.sh --name n8n
|
pm2 start ~/start-n8n.sh --name n8n
|
||||||
```
|
```
|
||||||
|
|
||||||
### B. Guarda el proceso para que se reinicie con el sistema:
|
### B. Guarda el proceso para que se reinicie con el sistema:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 startup
|
pm2 startup
|
||||||
```
|
```
|
||||||
|
|
||||||
Copia y ejecuta la línea que te devuelva (ejemplo):
|
Copia y ejecuta la línea que te devuelva (ejemplo):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u $USER --hp /home/$USER
|
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u $USER --hp /home/$USER
|
||||||
```
|
```
|
||||||
|
|
||||||
Luego:
|
Luego:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 save
|
pm2 save
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✅ 7. (Opcional) Abre el puerto en el firewall
|
## ✅ 7. (Opcional) Abre el puerto en el firewall
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo ufw allow 5678/tcp
|
sudo ufw allow 5678/tcp
|
||||||
sudo ufw enable
|
sudo ufw enable
|
||||||
sudo ufw status
|
sudo ufw status
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✅ 8. Comandos útiles
|
## ✅ 8. Comandos útiles
|
||||||
|
|
||||||
- Ver estado de procesos:
|
- Ver estado de procesos:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 list
|
pm2 list
|
||||||
```
|
```
|
||||||
|
|
||||||
- Ver logs en tiempo real:
|
- Ver logs en tiempo real:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 logs n8n
|
pm2 logs n8n
|
||||||
```
|
```
|
||||||
|
|
||||||
- Parar o reiniciar:
|
- Parar o reiniciar:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 stop n8n
|
pm2 stop n8n
|
||||||
pm2 restart n8n
|
pm2 restart n8n
|
||||||
```
|
```
|
||||||
|
|
||||||
- Eliminar proceso:
|
- Eliminar proceso:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 delete n8n
|
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`?
|
¿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
|
# 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.
|
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:
|
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`
|
## ✅ Paso a paso para activar reinicio automático con `pm2`
|
||||||
|
|
||||||
### 1. Asegúrate de que `n8n` está corriendo con `pm2`
|
### 1. Asegúrate de que `n8n` está corriendo con `pm2`
|
||||||
|
|
||||||
Confirma con:
|
Confirma con:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 list
|
pm2 list
|
||||||
```
|
```
|
||||||
|
|
||||||
Deberías ver un proceso llamado `n8n`.
|
Deberías ver un proceso llamado `n8n`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 2. Genera el script de arranque para `systemd`
|
### 2. Genera el script de arranque para `systemd`
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 startup
|
pm2 startup
|
||||||
```
|
```
|
||||||
|
|
||||||
Esto te devolverá una línea como esta (con tu usuario):
|
Esto te devolverá una línea como esta (con tu usuario):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u web --hp /home/web
|
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u web --hp /home/web
|
||||||
```
|
```
|
||||||
|
|
||||||
🔁 **Cópiala y ejecútala exactamente**.
|
🔁 **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.
|
> ⚠️ 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
|
### 3. Guarda el estado actual de los procesos
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 save
|
pm2 save
|
||||||
```
|
```
|
||||||
|
|
||||||
Esto crea un snapshot de los procesos actuales que serán restaurados al reinicio.
|
Esto crea un snapshot de los procesos actuales que serán restaurados al reinicio.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 4. Verifica que todo esté correcto
|
### 4. Verifica que todo esté correcto
|
||||||
|
|
||||||
Puedes simular un reinicio:
|
Puedes simular un reinicio:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo reboot
|
sudo reboot
|
||||||
```
|
```
|
||||||
|
|
||||||
Luego, tras reiniciar, verifica:
|
Luego, tras reiniciar, verifica:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 list
|
pm2 list
|
||||||
```
|
```
|
||||||
|
|
||||||
Y accede a `http://IP:5678` para confirmar que `n8n` se levantó automáticamente.
|
Y accede a `http://IP:5678` para confirmar que `n8n` se levantó automáticamente.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ✅ Resumen de comandos clave
|
## ✅ Resumen de comandos clave
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pm2 start ~/start-n8n.sh --name n8n
|
pm2 start ~/start-n8n.sh --name n8n
|
||||||
pm2 startup # (ejecutar también la línea que devuelve)
|
pm2 startup # (ejecutar también la línea que devuelve)
|
||||||
pm2 save
|
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?
|
¿Quieres que revise también cómo levantar `pm2` con un usuario distinto al login por defecto o con logs persistentes en un archivo?
|
@ -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.
|
|
@ -1,4 +1,4 @@
|
|||||||
cd ~/Minecraft/ && zip -r "/home/web/backups_minecraft/world_gorromina_$(date +'%d-%m-%Y_%H-%M').zip" "world_gorromina"
|
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
|
rclone copy ~/backups_minecraft/ mc_backup:/mc_backup -P -v
|
||||||
|
|
||||||
|
0
ELIMINAR/notas_express.md
Normal file
0
ELIMINAR/notas_express.md
Normal file
0
Sin título.md
Normal file
0
Sin título.md
Normal file
Loading…
x
Reference in New Issue
Block a user