mod from tamaulipas

This commit is contained in:
David Itehua Xalamihua 2025-08-28 14:19:26 -06:00
parent c8426f005b
commit 3df720e02f
21 changed files with 1552 additions and 1570 deletions

View File

@ -4,21 +4,21 @@
"type": "split",
"children": [
{
"id": "fe53232fa26b8f11",
"id": "689e84465cf5c511",
"type": "tabs",
"children": [
{
"id": "5ff6ca2da58ba6f5",
"id": "f65aae4ade40d7e9",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "DIX-Notes/script_bash_servers/crontab.md",
"file": "DIX-Notes/Install_n8n_wsl.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "crontab"
"title": "Install_n8n_wsl"
}
}
]
@ -53,7 +53,7 @@
"state": {
"type": "search",
"state": {
"query": "pagos",
"query": "sudo apt update",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
@ -169,26 +169,38 @@
"command-palette:Abrir paleta de comandos": false
}
},
"active": "db862854e8b7e53a",
"active": "f65aae4ade40d7e9",
"lastOpenFiles": [
"DIX-Notes/SERVERS - DIX/adjuntos/B7380100",
"DIX-Notes/script_bash_servers/crontab.md",
"DIX-Notes/n8n en ubuntu server.md",
"DIX-Notes/Install_n8n_wsl.md",
"ELIMINAR/notas_express.md",
"Sin título.md",
"DIX-Notes/SERVERS - DIX/adjuntos/~$servers.xlsm",
"DIX-Notes/bash profile.md",
"DIX-Notes/RCLONE Y DRIVE/Enviar archivos del servidor a google drive..md",
"DIX-Notes/Otras_varias/Visualización carga de trabajo servers.md",
"DIX-Notes/Otras_varias/SSL red local con HAProxy.md",
"DIX-Notes/Otras_varias/Servidor SAMBA.md",
"DIX-Notes/Otras_varias/Installr xrdp (Remote Desktop).md",
"DIX-Notes/Otras_varias/Add User Ubuntu with sudo properties.md",
"DIX-Notes/Otras_varias/23.03.2025.md",
"DIX-Notes/IP_Estatica_DHCP_Telmex/IP Estática.md",
"DIX-Notes/trabajar_script_mc_backup.md",
"DIX-Notes/DDNS RASTREO CON CLOUDFLARE.md",
"DIX-Notes/corregir error ip.xala.dev vs dix-ip.duckdns.org.md",
"DIX-Notes/Bash_functions/Script_sincronizar_obsidian.md",
"DIX-Notes/Distribución servicios en las RP.md",
"DIX-Notes/DIX_Cluster.canvas",
"DIX-Notes/dns arrancar con el sistema.md",
"DIX-Notes/INSTALAR TESSERACT-OCT.md",
"DIX-Notes/Raspberry Pi as Router Wireguard Client.md",
"ELIMINAR/FIVE_MUSEO.docx.md",
"ELIMINAR/Sin título.md",
"ELIMINAR/DOF_LINEAMIENTOS para el ciclo de gestión de los programas y proyectos de inversión, a cargo de las dependencias y entidades de la Administración Pública Federal..md",
"DIX-Notes/Otras_varias/Pagos Jesús.md",
"ELIMINAR",
"eliminar.md",
"Agencia_Espacial_Mexicana/Excel-Macros_AEM/Tabla de Excel a Markdown.md",
"DIX-Notes/INSTALAR TESSERACT-OCT.md",
"DIX-Notes/dns arrancar con el sistema.md",
"DIX-Notes/notas_express.md",
"DIX-Notes/bash profile.md",
"Agencia_Espacial_Mexicana/Registro_Proyecto_Cartera_Inversion/1.- Análisis Financiero Sistema Satelital de Telecomunicaciones..md",
"DIX-Notes/DDNS RASTREO CON CLOUDFLARE.md",
"DIX-Notes/Wireguard con obfuscación.md",
"DIX-Notes/script_bash_servers/crontab.md",
"DIX-Notes/SERVERS - DIX/adjuntos/~$servers.xlsm",
"DIX-Notes/SERVERS - DIX/adjuntos/C87ED000",
"DIX-Notes/SERVERS - DIX/SERVERS DIX.md",
"DIX-Notes/script_bash_servers/scripts_linux/shutdown_weekends.sh",
"DIX-Notes/script_bash_servers/scripts_linux/shutdown.sh",
"DIX-Notes/script_bash_servers/scripts_linux/cron.log",
@ -196,19 +208,7 @@
"DIX-Notes/script_bash_servers/scripts_linux/history_log.txt",
"DIX-Notes/script_bash_servers/scripts_linux",
"DIX-Notes/script_bash_servers",
"Agencia_Espacial_Mexicana/notas_express.md",
"Agencia_Espacial_Mexicana/ELIMINAR_NOTAS/3. Museo de las Telecomunicaciones - PPI_.md",
"Agencia_Espacial_Mexicana/DEFINICIONES Y EXPLICACIONES PROYECTOS CARTERA DE INVERSIÓN.md",
"DIX-Notes/Transcribir Videos (WSL).md",
"DIX-Notes/DIX_Cluster.canvas",
"Sin título.canvas",
"DIX-Notes/corregir error ip.xala.dev vs dix-ip.duckdns.org.md",
"Agencia_Espacial_Mexicana/Excel-Macros_AEM/Prorrateo.md",
"Agencia_Espacial_Mexicana/Estatuto Orgánico AEM/Estatuto Orgánico AEM.md",
"trabajar_script_mc_backup.md",
"n8n en ubuntu server.md",
"Install_n8n.md",
"bash profile.md",
"DIX_Cluster.canvas",
"Agencia_Espacial_Mexicana/Cursos_Capacitación/Introducción a la Administración Pública Federal/adjuntos/Pasted image 20250801164816.png",
"Agencia_Espacial_Mexicana/Cursos_Capacitación/Introducción a la Administración Pública Federal/adjuntos/Pasted image 20250801164759.png",

View File

@ -1,20 +1,20 @@
```bash
obsidian_notes_sync() {
# Sincronizar notas de Obsidian en Google Drive con rclone
fecha=$(date +"D%d-%m-%Y-T%H-%M")
file_name="dix-notes-$fecha"
origen="/mnt/c/Users/davic/desktop/dix_notes"
destino="obsidian_personal_dix:/obsidian/$file_name"
rclone copy "$origen" "$destino" -P -v
if [ $? -eq 0 ]; then
echo "✅ Sincronización completada correctamente."
else
echo "❌ Error durante la sincronización."
fi
}
```bash
obsidian_notes_sync() {
# Sincronizar notas de Obsidian en Google Drive con rclone
fecha=$(date +"D%d-%m-%Y-T%H-%M")
file_name="dix-notes-$fecha"
origen="/mnt/c/Users/davic/desktop/dix_notes"
destino="obsidian_personal_dix:/obsidian/$file_name"
rclone copy "$origen" "$destino" -P -v
if [ $? -eq 0 ]; then
echo "✅ Sincronización completada correctamente."
else
echo "❌ Error durante la sincronización."
fi
}
```

View File

@ -1,42 +1,42 @@
{
"nodes":[
{"id":"84eea27a1ba629c8","x":-134,"y":-349,"width":250,"height":60,"type":"text","text":""},
{"id":"0196141ff4288b26","type":"text","text":"Web Server 1\n- NOT WORKING","x":-940,"y":-100,"width":300,"height":120,"color":"4"},
{"id":"21f14a45f938153b","type":"text","text":"Web Server 2\n- tacrecruitment","x":-560,"y":-100,"width":275,"height":160,"color":"4"},
{"id":"1cbfc86bc270e4b7","type":"text","text":"Web Server 3\n- tacrecruitment","x":-160,"y":-100,"width":300,"height":160,"color":"4"},
{"id":"9031059888e87fd2","type":"text","text":"Web Server 4\n- tacrecruitment","x":220,"y":-100,"width":300,"height":160,"color":"4"},
{"id":"6b94f426bec0518d","type":"text","text":"Web Server 5\n- NOT WORKING","x":600,"y":-100,"width":290,"height":160,"color":"4"},
{"id":"aa754eec2e32009a","type":"text","text":"DB Server","x":-410,"y":220,"width":250,"height":60,"color":"6"},
{"id":"f848b43274fcb59b","type":"text","text":"Load Balancer\n- ntfy: 8080\n- uk: 3001\n- gitea: 3000","x":-410,"y":-500,"width":250,"height":180,"color":"1"},
{"id":"3e79a9f2644708b5","type":"text","text":"Git Server\n- dnsmasq\n- haproxy","x":60,"y":-500,"width":250,"height":180,"color":"2"},
{"id":"eb5c7fcba435d5b3","type":"text","text":"Metabase Server","x":60,"y":220,"width":250,"height":60,"color":"5"},
{"id":"00e0a1844c5114ee","type":"text","text":"Web Server 6\n- Minecraft","x":980,"y":-100,"width":250,"height":120},
{"id":"5f334013938f0378","type":"text","text":"Router / VPN","x":-160,"y":-820,"width":250,"height":60}
],
"edges":[
{"id":"65decefa61be0132","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"0196141ff4288b26","toSide":"top"},
{"id":"c821c7786b13de56","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"21f14a45f938153b","toSide":"top"},
{"id":"bbdfbe93eca7f66e","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"1cbfc86bc270e4b7","toSide":"top"},
{"id":"c1c443e22eb76535","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"9031059888e87fd2","toSide":"top"},
{"id":"da2fc4f2409d4434","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"6b94f426bec0518d","toSide":"top"},
{"id":"3514ce6bf3a91d92","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"0196141ff4288b26","toSide":"top"},
{"id":"6c8f88c449b3dfb0","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"21f14a45f938153b","toSide":"top"},
{"id":"8f098e34313079db","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"1cbfc86bc270e4b7","toSide":"top"},
{"id":"3688e3ecf3d65c2e","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"9031059888e87fd2","toSide":"top"},
{"id":"e755c1693a630d84","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"6b94f426bec0518d","toSide":"top"},
{"id":"6d605db470858423","fromNode":"0196141ff4288b26","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
{"id":"19bc3af06c0ee01e","fromNode":"21f14a45f938153b","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
{"id":"212566b2a3648a29","fromNode":"1cbfc86bc270e4b7","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
{"id":"84408076278e5fd7","fromNode":"9031059888e87fd2","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
{"id":"f5bd632c66dd0a12","fromNode":"6b94f426bec0518d","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
{"id":"3c991428822f7b13","fromNode":"aa754eec2e32009a","fromSide":"right","toNode":"eb5c7fcba435d5b3","toSide":"left"},
{"id":"ec8c3cac6f8bafe4","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"0196141ff4288b26","toSide":"bottom"},
{"id":"22f6b8593f8efeb2","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"21f14a45f938153b","toSide":"bottom"},
{"id":"23e09f848ef4230b","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"1cbfc86bc270e4b7","toSide":"bottom"},
{"id":"a1067b326a889f90","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"9031059888e87fd2","toSide":"bottom"},
{"id":"2fa114fbbdbdd63a","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"6b94f426bec0518d","toSide":"bottom"},
{"id":"29808fd2d4d62166","fromNode":"00e0a1844c5114ee","fromSide":"top","toNode":"3e79a9f2644708b5","toSide":"bottom"},
{"id":"3031b8c0b36366a7","fromNode":"f848b43274fcb59b","fromSide":"right","toNode":"3e79a9f2644708b5","toSide":"left"},
{"id":"d313ffd8360f70fc","fromNode":"5f334013938f0378","fromSide":"bottom","toNode":"f848b43274fcb59b","toSide":"top"}
]
{
"nodes":[
{"id":"84eea27a1ba629c8","x":-134,"y":-349,"width":250,"height":60,"type":"text","text":""},
{"id":"0196141ff4288b26","type":"text","text":"Web Server 1\n- NOT WORKING","x":-940,"y":-100,"width":300,"height":120,"color":"4"},
{"id":"21f14a45f938153b","type":"text","text":"Web Server 2\n- tacrecruitment","x":-560,"y":-100,"width":275,"height":160,"color":"4"},
{"id":"1cbfc86bc270e4b7","type":"text","text":"Web Server 3\n- tacrecruitment","x":-160,"y":-100,"width":300,"height":160,"color":"4"},
{"id":"9031059888e87fd2","type":"text","text":"Web Server 4\n- tacrecruitment","x":220,"y":-100,"width":300,"height":160,"color":"4"},
{"id":"6b94f426bec0518d","type":"text","text":"Web Server 5\n- NOT WORKING","x":600,"y":-100,"width":290,"height":160,"color":"4"},
{"id":"aa754eec2e32009a","type":"text","text":"DB Server","x":-410,"y":220,"width":250,"height":60,"color":"6"},
{"id":"f848b43274fcb59b","type":"text","text":"Load Balancer\n- ntfy: 8080\n- uk: 3001\n- gitea: 3000","x":-410,"y":-500,"width":250,"height":180,"color":"1"},
{"id":"3e79a9f2644708b5","type":"text","text":"Git Server\n- dnsmasq\n- haproxy","x":60,"y":-500,"width":250,"height":180,"color":"2"},
{"id":"eb5c7fcba435d5b3","type":"text","text":"Metabase Server","x":60,"y":220,"width":250,"height":60,"color":"5"},
{"id":"00e0a1844c5114ee","type":"text","text":"Web Server 6\n- Minecraft","x":980,"y":-100,"width":250,"height":120},
{"id":"5f334013938f0378","type":"text","text":"Router / VPN","x":-160,"y":-820,"width":250,"height":60}
],
"edges":[
{"id":"65decefa61be0132","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"0196141ff4288b26","toSide":"top"},
{"id":"c821c7786b13de56","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"21f14a45f938153b","toSide":"top"},
{"id":"bbdfbe93eca7f66e","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"1cbfc86bc270e4b7","toSide":"top"},
{"id":"c1c443e22eb76535","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"9031059888e87fd2","toSide":"top"},
{"id":"da2fc4f2409d4434","fromNode":"f848b43274fcb59b","fromSide":"bottom","toNode":"6b94f426bec0518d","toSide":"top"},
{"id":"3514ce6bf3a91d92","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"0196141ff4288b26","toSide":"top"},
{"id":"6c8f88c449b3dfb0","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"21f14a45f938153b","toSide":"top"},
{"id":"8f098e34313079db","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"1cbfc86bc270e4b7","toSide":"top"},
{"id":"3688e3ecf3d65c2e","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"9031059888e87fd2","toSide":"top"},
{"id":"e755c1693a630d84","fromNode":"3e79a9f2644708b5","fromSide":"bottom","toNode":"6b94f426bec0518d","toSide":"top"},
{"id":"6d605db470858423","fromNode":"0196141ff4288b26","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
{"id":"19bc3af06c0ee01e","fromNode":"21f14a45f938153b","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
{"id":"212566b2a3648a29","fromNode":"1cbfc86bc270e4b7","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
{"id":"84408076278e5fd7","fromNode":"9031059888e87fd2","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
{"id":"f5bd632c66dd0a12","fromNode":"6b94f426bec0518d","fromSide":"bottom","toNode":"aa754eec2e32009a","toSide":"top"},
{"id":"3c991428822f7b13","fromNode":"aa754eec2e32009a","fromSide":"right","toNode":"eb5c7fcba435d5b3","toSide":"left"},
{"id":"ec8c3cac6f8bafe4","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"0196141ff4288b26","toSide":"bottom"},
{"id":"22f6b8593f8efeb2","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"21f14a45f938153b","toSide":"bottom"},
{"id":"23e09f848ef4230b","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"1cbfc86bc270e4b7","toSide":"bottom"},
{"id":"a1067b326a889f90","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"9031059888e87fd2","toSide":"bottom"},
{"id":"2fa114fbbdbdd63a","fromNode":"eb5c7fcba435d5b3","fromSide":"top","toNode":"6b94f426bec0518d","toSide":"bottom"},
{"id":"29808fd2d4d62166","fromNode":"00e0a1844c5114ee","fromSide":"top","toNode":"3e79a9f2644708b5","toSide":"bottom"},
{"id":"3031b8c0b36366a7","fromNode":"f848b43274fcb59b","fromSide":"right","toNode":"3e79a9f2644708b5","toSide":"left"},
{"id":"d313ffd8360f70fc","fromNode":"5f334013938f0378","fromSide":"bottom","toNode":"f848b43274fcb59b","toSide":"top"}
]
}

View File

@ -1,9 +1,9 @@
uk:
- ntfy (no ervice):8080
- uptimekuma (no service):3001
- gitea:3000
lb:
- dnsmasq
- haproxy
uk:
- ntfy (no ervice):8080
- uptimekuma (no service):3001
- gitea:3000
lb:
- dnsmasq
- haproxy

View File

@ -1,148 +1,148 @@
En el navegador web ir a http://192.168.1.254/
**Red** > **Red Doméstica** > **Estática DHCP Entrada**
Pegar la dirección MAC y la IP a asignar
Ejemplo:
Dirección MAC: 80:af:ca:76:e3:de
Dirección IP: 192.168.1.71
La IP y la Dirección MAC del dispositivo la puedes ver en:
**Estado** > **Dispositivos Conectados**
<table>
<tr>
<td>Categoria</td>
<td>Valores </td>
</tr>
<tr>
<td>Activar</td>
<td>True </td>
</tr>
<tr>
<td>Protocolo</td>
<td>Servidor Wireguard </td>
</tr>
<tr>
<td>Acceso de cliente</td>
<td>Internet y Red Local </td>
</tr>
<tr>
<td>Host de punto final</td>
<td>192.168.1.64 </td>
</tr>
<tr>
<td>Puerto de escucha</td>
<td>51820 </td>
</tr>
<tr>
<td>Dirección IP</td>
<td>10.10.10.1 </td>
</tr>
<tr>
<td>MTU</td>
<td>1420 </td>
</tr>
</table>
VPN:
van_laptop
dix_laptop
dix_tablet
dix_work_pc
yarelis_cub_cell
Puertos:
<table>
<tr>
<td>Nombre</td>
<td>Protocolo</td>
<td>Interfaz</td>
<td>Puerto externo</td>
<td>Dirección IP interna</td>
<td>Puerto interno </td>
</tr>
<tr>
<td>lb</td>
<td>TCP</td>
<td>WAN</td>
<td>80</td>
<td>192.168.10.234</td>
<td>80 </td>
</tr>
<tr>
<td>gitea</td>
<td>TCP</td>
<td>WAN</td>
<td>3000</td>
<td>192.168.10.234</td>
<td>3000 </td>
</tr>
</table>
TELMEX Port Forwarding
<table>
<tr>
<td>Nombre de la Aplicación</td>
<td>Puerto WAN</td>
<td>Puerto LAN</td>
<td>Nombre del Dispositivo</td>
<td>Cliente Interno</td>
<td>Protocolo</td>
<td>Descripción </td>
</tr>
<tr>
<td>Configuración de Usuario</td>
<td>51820~51820</td>
<td>51820~51820</td>
<td>WR3000</td>
<td>192.168.1.64</td>
<td>UDP</td>
<td>vpn </td>
</tr>
<tr>
<td>Configuración de Usuario</td>
<td>80~80</td>
<td>80~80</td>
<td>WR3000</td>
<td>192.168.1.64</td>
<td>TCP</td>
<td>web </td>
</tr>
<tr>
<td>Configuración de Usuario</td>
<td>3000~3000</td>
<td>3000~3000</td>
<td>WR3000</td>
<td>192.168.1.64</td>
<td>TCP</td>
<td>gitea server </td>
</tr>
</table>
En cudy el activador de puerto vpn hago esto:
Nombre: VPN
Protocolo de activación: TCP+UDP
Puerto de Activación: 51820
Protocolo Externo:
VPN Clientes:
| IP Cliente | Usuario |
| ---------- | --------------- |
| 10.10.10.2 | dix-lenovo |
| 10.10.10.3 | router_zandunga |
En el navegador web ir a http://192.168.1.254/
**Red** > **Red Doméstica** > **Estática DHCP Entrada**
Pegar la dirección MAC y la IP a asignar
Ejemplo:
Dirección MAC: 80:af:ca:76:e3:de
Dirección IP: 192.168.1.71
La IP y la Dirección MAC del dispositivo la puedes ver en:
**Estado** > **Dispositivos Conectados**
<table>
<tr>
<td>Categoria</td>
<td>Valores </td>
</tr>
<tr>
<td>Activar</td>
<td>True </td>
</tr>
<tr>
<td>Protocolo</td>
<td>Servidor Wireguard </td>
</tr>
<tr>
<td>Acceso de cliente</td>
<td>Internet y Red Local </td>
</tr>
<tr>
<td>Host de punto final</td>
<td>192.168.1.64 </td>
</tr>
<tr>
<td>Puerto de escucha</td>
<td>51820 </td>
</tr>
<tr>
<td>Dirección IP</td>
<td>10.10.10.1 </td>
</tr>
<tr>
<td>MTU</td>
<td>1420 </td>
</tr>
</table>
VPN:
van_laptop
dix_laptop
dix_tablet
dix_work_pc
yarelis_cub_cell
Puertos:
<table>
<tr>
<td>Nombre</td>
<td>Protocolo</td>
<td>Interfaz</td>
<td>Puerto externo</td>
<td>Dirección IP interna</td>
<td>Puerto interno </td>
</tr>
<tr>
<td>lb</td>
<td>TCP</td>
<td>WAN</td>
<td>80</td>
<td>192.168.10.234</td>
<td>80 </td>
</tr>
<tr>
<td>gitea</td>
<td>TCP</td>
<td>WAN</td>
<td>3000</td>
<td>192.168.10.234</td>
<td>3000 </td>
</tr>
</table>
TELMEX Port Forwarding
<table>
<tr>
<td>Nombre de la Aplicación</td>
<td>Puerto WAN</td>
<td>Puerto LAN</td>
<td>Nombre del Dispositivo</td>
<td>Cliente Interno</td>
<td>Protocolo</td>
<td>Descripción </td>
</tr>
<tr>
<td>Configuración de Usuario</td>
<td>51820~51820</td>
<td>51820~51820</td>
<td>WR3000</td>
<td>192.168.1.64</td>
<td>UDP</td>
<td>vpn </td>
</tr>
<tr>
<td>Configuración de Usuario</td>
<td>80~80</td>
<td>80~80</td>
<td>WR3000</td>
<td>192.168.1.64</td>
<td>TCP</td>
<td>web </td>
</tr>
<tr>
<td>Configuración de Usuario</td>
<td>3000~3000</td>
<td>3000~3000</td>
<td>WR3000</td>
<td>192.168.1.64</td>
<td>TCP</td>
<td>gitea server </td>
</tr>
</table>
En cudy el activador de puerto vpn hago esto:
Nombre: VPN
Protocolo de activación: TCP+UDP
Puerto de Activación: 51820
Protocolo Externo:
VPN Clientes:
| IP Cliente | Usuario |
| ---------- | --------------- |
| 10.10.10.2 | dix-lenovo |
| 10.10.10.3 | router_zandunga |

View File

@ -1,227 +1,231 @@
¡Claro, David! Aquí tienes una guía clara para instalar **n8n** en **WSL (Windows Subsystem for Linux)**. Usaremos Node.js (v18 LTS o superior) y npm para instalarlo directamente.
---
### ✅ **Requisitos previos**
Asegúrate de tener lo siguiente:
1. **WSL** ya instalado (preferentemente Ubuntu).
2. **Node.js** (v18 o superior).
3. **npm** (gestor de paquetes de Node.js).
---
### 🔧 **Pasos para instalar n8n en WSL**
#### 1. Actualiza tu sistema
```bash
sudo apt update && sudo apt upgrade -y
```
#### 2. Instala Node.js (vía nvm recomendado)
```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm use --lts
```
==Para ubuntu server la instalación de Node.js==
```bash
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
```
Verifica que estén bien instalados:
```bash
node -v
npm -v
```
#### 3. Instala n8n globalmente
```bash
npm install -g n8n
```
Esto instalará el CLI de n8n de forma global.
#### 4. Ejecuta n8n
```bash
n8n
```
Verás un mensaje como:
```
n8n ready on 127.0.0.1, port 5678
```
Desde Windows, abre tu navegador y ve a:
📍 `http://localhost:5678`
---
### 🛡️ Opcional: Configurar credenciales y seguridad
Por defecto, n8n se instala sin autenticación. Para producción o pruebas seguras, puedes establecer una contraseña así:
```bash
export N8N_BASIC_AUTH_ACTIVE=true
export N8N_BASIC_AUTH_USER=admin
export N8N_BASIC_AUTH_PASSWORD=mi_contraseña_segura
n8n
```
---
### 🛠️ ¿Quieres levantarlo en segundo plano?
Puedes usar `tmux`, `screen` o `pm2`:
Ejemplo con `pm2`:
```bash
npm install -g pm2
pm2 start n8n
pm2 startup
pm2 save
```
---
¿Quieres que n8n arranque automáticamente al iniciar WSL o levantarlo con Docker también? Puedo ayudarte con eso también si gustas.
# ejecutar en segundo plano n8n en wsl:
Sí, el enfoque que muestras con `systemd` para levantar un servidor de Minecraft **es perfectamente replicable** para **n8n**, con unas pequeñas adaptaciones.
### 🚫 PERO HAY UN DETALLE IMPORTANTE:
WSL **no soporta `systemd` por defecto** en versiones antiguas. Sin embargo, **WSL2 en Windows 11** ya permite activarlo.
---
## ✅ OPCIÓN A: Si tienes WSL2 con systemd habilitado
### 1. Verifica que `systemd` esté habilitado
En `/etc/wsl.conf`, debe decir:
```ini
[boot]
systemd=true
```
Luego reinicia WSL:
```bash
wsl --shutdown
```
---
### 2. Crear servicio systemd para n8n
```bash
sudo nano /etc/systemd/system/n8n.service
```
Contenido del archivo (ajusta tu nombre de usuario y la ruta si es necesario):
```ini
[Unit]
Description=n8n workflow automation
After=network.target
[Service]
User=web # <- tu usuario de WSL
Environment=PATH=/home/web/.nvm/versions/node/v18.XX.X/bin:/usr/bin:/bin
Environment=NODE_ENV=production
WorkingDirectory=/home/web
ExecStart=/home/web/.nvm/versions/node/v18.XX.X/bin/n8n
Restart=on-failure
[Install]
WantedBy=default.target
```
📌 Reemplaza `v18.XX.X` con la versión exacta que tienes (`node -v` y `which n8n` te ayudan a saberlo).
---
==Para ubuntu server==
```bash
ExecStart=/usr/bin/n8n
```
### 3. Habilita y levanta el servicio
```bash
sudo systemctl daemon-reload
sudo systemctl enable n8n
sudo systemctl start n8n
```
Verifica que esté funcionando:
```bash
systemctl status n8n
```
==Para ubuntu server==
Para que puedas acceder a `n8n` desde otro equipo (navegador o API):
- Asegúrate de configurar el host:
```bash
export N8N_HOST=0.0.0.0
```
- O en el archivo de servicio:
```bash
Environment=N8N_HOST=0.0.0.0
```
- Y abre el puerto 5678:
```bash
sudo ufw allow 5678/tcp
```
---
## 🟡 OPCIÓN B: Si NO tienes systemd activado (por ejemplo en Windows 10 o WSL1)
Usa mejor **PM2** para ejecutar en segundo plano:
```bash
npm install -g pm2
pm2 start n8n
pm2 startup
pm2 save
```
Con eso n8n se ejecutará como demonio cada vez que abras WSL.
---
## 🔄 ¿Cómo reiniciar n8n con systemd?
```bash
sudo systemctl restart n8n
```
¿Quieres que también tenga autenticación, log de errores o conecte a PostgreSQL? Puedo ayudarte a extender el servicio según tus necesidades.
¿Te gustaría saber cómo revisar logs o cómo incluir variables de entorno como el webhook URL base?
¡Claro, David! Aquí tienes una guía clara para instalar **n8n** en **WSL (Windows Subsystem for Linux)**. Usaremos Node.js (v18 LTS o superior) y npm para instalarlo directamente.
---
### ✅ **Requisitos previos**
Asegúrate de tener lo siguiente:
1. **WSL** ya instalado (preferentemente Ubuntu).
2. **Node.js** (v18 o superior).
3. **npm** (gestor de paquetes de Node.js).
---
### 🔧 **Pasos para instalar n8n en WSL**
#### 1. Actualiza tu sistema
```bash
sudo apt update && sudo apt upgrade -y
```
#### 2. Instala Node.js (vía nvm recomendado)
```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm use --lts
```
==Para ubuntu server la instalación de Node.js==
```bash
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
```
Verifica que estén bien instalados:
```bash
node -v
npm -v
```
#### 3. Instala n8n globalmente
```bash
#sudo npm install -g n8n
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=$PATH:~/.npm-global/bin
```
Esto instalará el CLI de n8n de forma global.
#### 4. Ejecuta n8n
```bash
n8n
```
Verás un mensaje como:
```
n8n ready on 127.0.0.1, port 5678
```
Desde Windows, abre tu navegador y ve a:
📍 `http://localhost:5678`
---
### 🛡️ Opcional: Configurar credenciales y seguridad
Por defecto, n8n se instala sin autenticación. Para producción o pruebas seguras, puedes establecer una contraseña así:
```bash
export N8N_BASIC_AUTH_ACTIVE=true
export N8N_BASIC_AUTH_USER=admin
export N8N_BASIC_AUTH_PASSWORD=mi_contraseña_segura
n8n
```
---
### 🛠️ ¿Quieres levantarlo en segundo plano?
Puedes usar `tmux`, `screen` o `pm2`:
Ejemplo con `pm2`:
```bash
npm install -g pm2
pm2 start n8n
pm2 startup
pm2 save
```
---
¿Quieres que n8n arranque automáticamente al iniciar WSL o levantarlo con Docker también? Puedo ayudarte con eso también si gustas.
# ejecutar en segundo plano n8n en wsl:
Sí, el enfoque que muestras con `systemd` para levantar un servidor de Minecraft **es perfectamente replicable** para **n8n**, con unas pequeñas adaptaciones.
### 🚫 PERO HAY UN DETALLE IMPORTANTE:
WSL **no soporta `systemd` por defecto** en versiones antiguas. Sin embargo, **WSL2 en Windows 11** ya permite activarlo.
---
## ✅ OPCIÓN A: Si tienes WSL2 con systemd habilitado
### 1. Verifica que `systemd` esté habilitado
En `/etc/wsl.conf`, debe decir:
```ini
[boot]
systemd=true
```
Luego reinicia WSL:
```bash
wsl --shutdown
```
---
### 2. Crear servicio systemd para n8n
```bash
sudo nano /etc/systemd/system/n8n.service
```
Contenido del archivo (ajusta tu nombre de usuario y la ruta si es necesario):
```ini
[Unit]
Description=n8n workflow automation
After=network.target
[Service]
User=web # <- tu usuario de WSL
Environment=PATH=/home/web/.nvm/versions/node/v18.XX.X/bin:/usr/bin:/bin
Environment=NODE_ENV=production
WorkingDirectory=/home/web
ExecStart=/home/web/.nvm/versions/node/v18.XX.X/bin/n8n
Restart=on-failure
[Install]
WantedBy=default.target
```
📌 Reemplaza `v18.XX.X` con la versión exacta que tienes (`node -v` y `which n8n` te ayudan a saberlo).
---
==Para ubuntu server==
```bash
ExecStart=/usr/bin/n8n
```
### 3. Habilita y levanta el servicio
```bash
sudo systemctl daemon-reload
sudo systemctl enable n8n
sudo systemctl start n8n
```
Verifica que esté funcionando:
```bash
systemctl status n8n
```
==Para ubuntu server==
Para que puedas acceder a `n8n` desde otro equipo (navegador o API):
- Asegúrate de configurar el host:
```bash
export N8N_HOST=0.0.0.0
```
- O en el archivo de servicio:
```bash
Environment=N8N_HOST=0.0.0.0
```
- Y abre el puerto 5678:
```bash
sudo ufw allow 5678/tcp
```
---
## 🟡 OPCIÓN B: Si NO tienes systemd activado (por ejemplo en Windows 10 o WSL1)
Usa mejor **PM2** para ejecutar en segundo plano:
```bash
npm install -g pm2
pm2 start n8n
pm2 startup
pm2 save
```
Con eso n8n se ejecutará como demonio cada vez que abras WSL.
---
## 🔄 ¿Cómo reiniciar n8n con systemd?
```bash
sudo systemctl restart n8n
```
¿Quieres que también tenga autenticación, log de errores o conecte a PostgreSQL? Puedo ayudarte a extender el servicio según tus necesidades.
¿Te gustaría saber cómo revisar logs o cómo incluir variables de entorno como el webhook URL base?

View File

@ -1,72 +1,72 @@
# Soluciones
Modal
# Navbar
- [x] Cambiar tipo de letra (Calibri ó Aptos)
- [x] Cambiar el tamaño de fuente
- [ ] Cambiar el estilo de Contacto
- [x] Footer y Navbar hacer letra más grande
https://www.buk.mx/
trabajar en sección de
- Publicaciones:
- [ ] Añadir
- [ ] Modificar
- [ ] Eliminar
- Administrador
- [ ] Crear usuario
- [ ] Eliminar usuario
https://codepen.io/david-felipe-huertas/pen/PoNqJgM
uw | main
80 x 90
Soluciones
65 - 70 Letra más grande
- checar relación imagen
QR que mande a la página web
![[Pasted image 20250401111621.png]]
Readme file forma
# Modificaciones en producción
1. Debes de asegurar que el sitio tenga https.
2. Cambiar la configuración en el archivo main.py:
1.
2. response.set_cookie('access_token_cookie', access_token, httponly=True, **secure=True**, samesite='Lax')
soluciones > fondo blanco.
Letra Open-Sans
gradient
pinkelephant-latam.com
https://pinkelephant-latam.com/
### Montserrat, Source Sans Pro, sans-serif
-> Gráficas de algo
- logo vueltas en navbar
- logo en horizontal.
- ojo en contraseña
- re checar arroba
# Soluciones
Modal
# Navbar
- [x] Cambiar tipo de letra (Calibri ó Aptos)
- [x] Cambiar el tamaño de fuente
- [ ] Cambiar el estilo de Contacto
- [x] Footer y Navbar hacer letra más grande
https://www.buk.mx/
trabajar en sección de
- Publicaciones:
- [ ] Añadir
- [ ] Modificar
- [ ] Eliminar
- Administrador
- [ ] Crear usuario
- [ ] Eliminar usuario
https://codepen.io/david-felipe-huertas/pen/PoNqJgM
uw | main
80 x 90
Soluciones
65 - 70 Letra más grande
- checar relación imagen
QR que mande a la página web
![[Pasted image 20250401111621.png]]
Readme file forma
# Modificaciones en producción
1. Debes de asegurar que el sitio tenga https.
2. Cambiar la configuración en el archivo main.py:
1.
2. response.set_cookie('access_token_cookie', access_token, httponly=True, **secure=True**, samesite='Lax')
soluciones > fondo blanco.
Letra Open-Sans
gradient
pinkelephant-latam.com
https://pinkelephant-latam.com/
### Montserrat, Source Sans Pro, sans-serif
-> Gráficas de algo
- logo vueltas en navbar
- logo en horizontal.
- ojo en contraseña
- re checar arroba

View File

@ -1,95 +1,95 @@
En **Ubuntu Server**, puedes crear un nuevo usuario con privilegios de administrador siguiendo estos pasos:
### 📌 1. Crear el usuario
Ejecuta el siguiente comando, reemplazando `nuevo_usuario` con el nombre que quieras:
```bash
sudo adduser nuevo_usuario
```
Te pedirá que configures una contraseña y opcionalmente algunos datos adicionales.
---
### 📌 2. Otorgarle permisos de administrador (sudo)
Agrega el usuario al grupo `sudo`:
```bash
sudo usermod -aG sudo nuevo_usuario
```
Esto le permite ejecutar comandos administrativos con `sudo`.
---
### 📌 3. Verificar que tiene privilegios
Inicia sesión con el nuevo usuario:
```bash
su - nuevo_usuario
```
Luego, prueba ejecutar un comando con permisos de administrador:
```bash
sudo whoami
```
Si devuelve **"root"**, el usuario tiene permisos de administrador correctamente. 🚀
# Eliminar usuario
Para eliminar un usuario en **Ubuntu (o cualquier Linux basado en Debian)**, puedes usar el comando `deluser` o `userdel`.
---
### ✅ **1. Eliminar el usuario pero conservar su carpeta personal**
```bash
sudo deluser usuario
```
Esto **elimina al usuario** pero deja su **directorio `/home/usuario/`** intacto.
---
### ✅ **2. Eliminar el usuario y su carpeta personal**
```bash
sudo deluser --remove-home usuario
```
Esto **elimina al usuario** y también **su directorio `/home/usuario/`**.
---
### ✅ **3. Forzar eliminación con `userdel` (método alternativo)**
Si `deluser` no está disponible, usa:
```bash
sudo userdel -r usuario
```
🔹 **`-r`** → Elimina la carpeta `/home/usuario/`.
⚠️ **Cuidado:** Esto borra todos los archivos del usuario.
---
### ✅ **4. Verificar que el usuario fue eliminado**
Después de eliminarlo, verifica que ya no exista:
```bash
cat /etc/passwd | grep usuario
```
Si no muestra nada, significa que fue eliminado correctamente.
---
En **Ubuntu Server**, puedes crear un nuevo usuario con privilegios de administrador siguiendo estos pasos:
### 📌 1. Crear el usuario
Ejecuta el siguiente comando, reemplazando `nuevo_usuario` con el nombre que quieras:
```bash
sudo adduser nuevo_usuario
```
Te pedirá que configures una contraseña y opcionalmente algunos datos adicionales.
---
### 📌 2. Otorgarle permisos de administrador (sudo)
Agrega el usuario al grupo `sudo`:
```bash
sudo usermod -aG sudo nuevo_usuario
```
Esto le permite ejecutar comandos administrativos con `sudo`.
---
### 📌 3. Verificar que tiene privilegios
Inicia sesión con el nuevo usuario:
```bash
su - nuevo_usuario
```
Luego, prueba ejecutar un comando con permisos de administrador:
```bash
sudo whoami
```
Si devuelve **"root"**, el usuario tiene permisos de administrador correctamente. 🚀
# Eliminar usuario
Para eliminar un usuario en **Ubuntu (o cualquier Linux basado en Debian)**, puedes usar el comando `deluser` o `userdel`.
---
### ✅ **1. Eliminar el usuario pero conservar su carpeta personal**
```bash
sudo deluser usuario
```
Esto **elimina al usuario** pero deja su **directorio `/home/usuario/`** intacto.
---
### ✅ **2. Eliminar el usuario y su carpeta personal**
```bash
sudo deluser --remove-home usuario
```
Esto **elimina al usuario** y también **su directorio `/home/usuario/`**.
---
### ✅ **3. Forzar eliminación con `userdel` (método alternativo)**
Si `deluser` no está disponible, usa:
```bash
sudo userdel -r usuario
```
🔹 **`-r`** → Elimina la carpeta `/home/usuario/`.
⚠️ **Cuidado:** Esto borra todos los archivos del usuario.
---
### ✅ **4. Verificar que el usuario fue eliminado**
Después de eliminarlo, verifica que ya no exista:
```bash
cat /etc/passwd | grep usuario
```
Si no muestra nada, significa que fue eliminado correctamente.
---
🚀 **¿Necesitas eliminar usuarios en masa o algo más específico?** Dime y te ayudo. 😃🔥

View File

@ -1,8 +1,8 @@
sudo apt install xrdp -y
sudo systemctl status xrdp
sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp
sudo ufw allow from 192.168.10.0/24 to any port 3389
conectarse a través de remote desktop
ingresar la ip del equipop remoto en la ui de windows remote desktop
sudo apt install xrdp -y
sudo systemctl status xrdp
sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp
sudo ufw allow from 192.168.10.0/24 to any port 3389
conectarse a través de remote desktop
ingresar la ip del equipop remoto en la ui de windows remote desktop

View File

@ -1,99 +1,99 @@
Sí, puedes usar **Let's Encrypt** para generar certificados SSL gratuitos y configurarlos en **HAProxy** para tus distintos sitios. Aquí tienes un resumen de cómo hacerlo:
---
### 1⃣ **Instalar Certbot en tu Servidor**
Certbot es la herramienta oficial de Let's Encrypt para generar certificados.
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install certbot -y
```
Si HAProxy está en la misma máquina donde se servirán los sitios, puedes usar **Certbot en modo standalone**.
---
### 2⃣ **Generar Certificados para cada Dominio**
Ejecuta el siguiente comando para generar un certificado para tu dominio:
```bash
sudo certbot certonly --standalone -d ejemplo.com -d www.ejemplo.com
# Ejemplo:
sudo certbot certonly --standalone -d ai-reports.1.temporal.work -d www.ai-reports.1.temporal.work
```
Si tienes varios dominios en tu HAProxy, repite el comando para cada uno.
Esto generará los certificados en:
```
/etc/letsencrypt/live/ejemplo.com/fullchain.pem
/etc/letsencrypt/live/ejemplo.com/privkey.pem
```
---
### 3⃣ **Combinar los Certificados para HAProxy**
HAProxy requiere que el certificado y la clave privada estén en un solo archivo. Usa este comando para combinarlos:
```bash
cat /etc/letsencrypt/live/ejemplo.com/fullchain.pem \
/etc/letsencrypt/live/ejemplo.com/privkey.pem > \
/etc/haproxy/certs/ejemplo.com.pem
```
Repite esto para cada dominio y asegúrate de que HAProxy pueda leer los archivos:
```bash
sudo chmod 600 /etc/haproxy/certs/*.pem
```
---
### 4⃣ **Configurar HAProxy para HTTPS**
Edita el archivo de configuración de HAProxy (generalmente en `/etc/haproxy/haproxy.cfg`) y agrega la configuración SSL para cada dominio:
```haproxy
frontend https_front
bind *:443 ssl crt /etc/haproxy/certs/ejemplo.com.pem crt /etc/haproxy/certs/
mode http
use_backend backend_ejemplo if { hdr(host) -i ejemplo.com }
backend backend_ejemplo
server srv1 192.168.1.100:80 check
```
Esto permite que HAProxy seleccione el certificado correcto según el **hostname** de la solicitud.
---
### 5⃣ **Renovación Automática**
Let's Encrypt requiere renovar los certificados cada 90 días. Configura una tarea en **cron** para renovar y actualizar los archivos automáticamente:
Edita el crontab:
```bash
sudo crontab -e
```
Añade esta línea:
```bash
0 3 * * * certbot renew --quiet && systemctl reload haproxy
```
Esto intentará renovar los certificados diariamente a las **3 AM** y recargará HAProxy si hay cambios.
---
### ✅ **Conclusión**
Con esto, HAProxy gestionará múltiples sitios con SSL gratuito de Let's Encrypt. Cada dominio tendrá su propio certificado y la renovación será automática. 🚀
Sí, puedes usar **Let's Encrypt** para generar certificados SSL gratuitos y configurarlos en **HAProxy** para tus distintos sitios. Aquí tienes un resumen de cómo hacerlo:
---
### 1⃣ **Instalar Certbot en tu Servidor**
Certbot es la herramienta oficial de Let's Encrypt para generar certificados.
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install certbot -y
```
Si HAProxy está en la misma máquina donde se servirán los sitios, puedes usar **Certbot en modo standalone**.
---
### 2⃣ **Generar Certificados para cada Dominio**
Ejecuta el siguiente comando para generar un certificado para tu dominio:
```bash
sudo certbot certonly --standalone -d ejemplo.com -d www.ejemplo.com
# Ejemplo:
sudo certbot certonly --standalone -d ai-reports.1.temporal.work -d www.ai-reports.1.temporal.work
```
Si tienes varios dominios en tu HAProxy, repite el comando para cada uno.
Esto generará los certificados en:
```
/etc/letsencrypt/live/ejemplo.com/fullchain.pem
/etc/letsencrypt/live/ejemplo.com/privkey.pem
```
---
### 3⃣ **Combinar los Certificados para HAProxy**
HAProxy requiere que el certificado y la clave privada estén en un solo archivo. Usa este comando para combinarlos:
```bash
cat /etc/letsencrypt/live/ejemplo.com/fullchain.pem \
/etc/letsencrypt/live/ejemplo.com/privkey.pem > \
/etc/haproxy/certs/ejemplo.com.pem
```
Repite esto para cada dominio y asegúrate de que HAProxy pueda leer los archivos:
```bash
sudo chmod 600 /etc/haproxy/certs/*.pem
```
---
### 4⃣ **Configurar HAProxy para HTTPS**
Edita el archivo de configuración de HAProxy (generalmente en `/etc/haproxy/haproxy.cfg`) y agrega la configuración SSL para cada dominio:
```haproxy
frontend https_front
bind *:443 ssl crt /etc/haproxy/certs/ejemplo.com.pem crt /etc/haproxy/certs/
mode http
use_backend backend_ejemplo if { hdr(host) -i ejemplo.com }
backend backend_ejemplo
server srv1 192.168.1.100:80 check
```
Esto permite que HAProxy seleccione el certificado correcto según el **hostname** de la solicitud.
---
### 5⃣ **Renovación Automática**
Let's Encrypt requiere renovar los certificados cada 90 días. Configura una tarea en **cron** para renovar y actualizar los archivos automáticamente:
Edita el crontab:
```bash
sudo crontab -e
```
Añade esta línea:
```bash
0 3 * * * certbot renew --quiet && systemctl reload haproxy
```
Esto intentará renovar los certificados diariamente a las **3 AM** y recargará HAProxy si hay cambios.
---
### ✅ **Conclusión**
Con esto, HAProxy gestionará múltiples sitios con SSL gratuito de Let's Encrypt. Cada dominio tendrá su propio certificado y la renovación será automática. 🚀
Si necesitas ayuda con algún paso, dime cómo tienes configurado tu HAProxy y lo ajustamos. 😃

View File

@ -1,38 +1,38 @@
El comando que has proporcionado realiza lo siguiente:
### **Explicación del comando:**
```bash
sudo apt install samba samba-common-bin -y
```
1. **`sudo`**: Ejecuta el comando con permisos de administrador (root), necesario para instalar software en sistemas basados en Debian/Ubuntu.
2. **`apt install`**: Usa el gestor de paquetes APT (Advanced Package Tool) para instalar software desde los repositorios configurados en el sistema.
3. **`samba`**: Es el paquete principal de Samba, un software que permite compartir archivos e impresoras entre sistemas Linux/Unix y Windows mediante los protocolos SMB/CIFS.
4. **`samba-common-bin`**: Este paquete incluye utilidades adicionales para Samba, como herramientas de configuración (`smbpasswd`, `testparm`, etc.) que son útiles para administrar el servidor Samba.
5. **`-y`**: Responde automáticamente "sí" (yes) a cualquier pregunta de confirmación durante la instalación, evitando interrupciones.
---
### **¿Para qué sirve Samba?**
- Permite compartir archivos y carpetas entre Linux y Windows en una red local.
- Habilita la autenticación de usuarios (puede integrarse con usuarios del sistema o con un dominio Windows Active Directory).
- Es útil para crear servidores de archivos en entornos mixtos (Linux/Windows).
---
### **Pasos posteriores típicos:**
1. **Configurar Samba**: Editar el archivo de configuración `/etc/samba/smb.conf` para definir los recursos compartidos.
2. **Reiniciar el servicio**:
```bash
sudo systemctl restart smbd
```
3. **Añadir usuarios de Samba**:
```bash
sudo smbpasswd -a [usuario]
```
El comando que has proporcionado realiza lo siguiente:
### **Explicación del comando:**
```bash
sudo apt install samba samba-common-bin -y
```
1. **`sudo`**: Ejecuta el comando con permisos de administrador (root), necesario para instalar software en sistemas basados en Debian/Ubuntu.
2. **`apt install`**: Usa el gestor de paquetes APT (Advanced Package Tool) para instalar software desde los repositorios configurados en el sistema.
3. **`samba`**: Es el paquete principal de Samba, un software que permite compartir archivos e impresoras entre sistemas Linux/Unix y Windows mediante los protocolos SMB/CIFS.
4. **`samba-common-bin`**: Este paquete incluye utilidades adicionales para Samba, como herramientas de configuración (`smbpasswd`, `testparm`, etc.) que son útiles para administrar el servidor Samba.
5. **`-y`**: Responde automáticamente "sí" (yes) a cualquier pregunta de confirmación durante la instalación, evitando interrupciones.
---
### **¿Para qué sirve Samba?**
- Permite compartir archivos y carpetas entre Linux y Windows en una red local.
- Habilita la autenticación de usuarios (puede integrarse con usuarios del sistema o con un dominio Windows Active Directory).
- Es útil para crear servidores de archivos en entornos mixtos (Linux/Windows).
---
### **Pasos posteriores típicos:**
1. **Configurar Samba**: Editar el archivo de configuración `/etc/samba/smb.conf` para definir los recursos compartidos.
2. **Reiniciar el servicio**:
```bash
sudo systemctl restart smbd
```
3. **Añadir usuarios de Samba**:
```bash
sudo smbpasswd -a [usuario]
```
Si necesitas ayuda con la configuración de Samba, ¡avísame!

View File

@ -1,95 +1,95 @@
Sí, hay varias herramientas que pueden ayudarte a interpretar mejor el estado del sistema en consola con una visualización más clara y estructurada. Aquí te dejo algunas opciones:
### 1**htop** (Mejor visualización que `top`)
- Es una alternativa mejorada a `top`, con una interfaz en colores y barras gráficas para CPU, memoria y swap.
- Puedes desplazarte por los procesos, ordenarlos y matarlos fácilmente.
- **Instalación**:
```bash
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # CentOS/RHEL
sudo pacman -S htop # Arch Linux
```
- **Uso**:
```bash
htop
```
### 2**glances** (Monitoreo de sistema en tiempo real)
- Proporciona información detallada de CPU, memoria, disco, red y procesos en una sola pantalla.
- Se adapta automáticamente al tamaño de la pantalla y tiene colores para facilitar la lectura.
- **Instalación**:
```bash
sudo apt install glances # Debian/Ubuntu
pip install glances # Alternativa con Python
```
- **Uso**:
```bash
glances
```
### 3**nmon** (Análisis detallado del rendimiento)
- Muestra CPU, memoria, disco, red y más en tiempo real con gráficos ASCII.
- Ideal para diagnósticos de rendimiento.
- **Instalación**:
```bash
sudo apt install nmon # Debian/Ubuntu
```
- **Uso**:
```bash
nmon
```
Luego presiona **c, m, d, n** para ver CPU, memoria, disco y red respectivamente.
### 4**btop** (Interfaz moderna y colorida)
- Es una evolución de `htop`, con una interfaz más visual y amigable.
- Muestra gráficos en tiempo real de CPU, RAM, disco y red.
- **Instalación**:
```bash
sudo apt install btop # Debian/Ubuntu
```
- **Uso**:
```bash
btop
```
### ¿Cuál elegir?
- **Para algo simple y rápido:** `htop`
- **Para información detallada en una pantalla:** `glances`
- **Para análisis de rendimiento:** `nmon`
- **Para una interfaz moderna y visualmente atractiva:** `btop`
Sí, hay varias herramientas que pueden ayudarte a interpretar mejor el estado del sistema en consola con una visualización más clara y estructurada. Aquí te dejo algunas opciones:
### 1**htop** (Mejor visualización que `top`)
- Es una alternativa mejorada a `top`, con una interfaz en colores y barras gráficas para CPU, memoria y swap.
- Puedes desplazarte por los procesos, ordenarlos y matarlos fácilmente.
- **Instalación**:
```bash
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # CentOS/RHEL
sudo pacman -S htop # Arch Linux
```
- **Uso**:
```bash
htop
```
### 2**glances** (Monitoreo de sistema en tiempo real)
- Proporciona información detallada de CPU, memoria, disco, red y procesos en una sola pantalla.
- Se adapta automáticamente al tamaño de la pantalla y tiene colores para facilitar la lectura.
- **Instalación**:
```bash
sudo apt install glances # Debian/Ubuntu
pip install glances # Alternativa con Python
```
- **Uso**:
```bash
glances
```
### 3**nmon** (Análisis detallado del rendimiento)
- Muestra CPU, memoria, disco, red y más en tiempo real con gráficos ASCII.
- Ideal para diagnósticos de rendimiento.
- **Instalación**:
```bash
sudo apt install nmon # Debian/Ubuntu
```
- **Uso**:
```bash
nmon
```
Luego presiona **c, m, d, n** para ver CPU, memoria, disco y red respectivamente.
### 4**btop** (Interfaz moderna y colorida)
- Es una evolución de `htop`, con una interfaz más visual y amigable.
- Muestra gráficos en tiempo real de CPU, RAM, disco y red.
- **Instalación**:
```bash
sudo apt install btop # Debian/Ubuntu
```
- **Uso**:
```bash
btop
```
### ¿Cuál elegir?
- **Para algo simple y rápido:** `htop`
- **Para información detallada en una pantalla:** `glances`
- **Para análisis de rendimiento:** `nmon`
- **Para una interfaz moderna y visualmente atractiva:** `btop`
¿Quieres que te ayude con la configuración de alguna de ellas? 😊

View File

@ -1,236 +1,236 @@
1.- Instalar `rclone` en el servidor (si el servidor no tiene interfaz gráfica también instalalo en tu PC o laptop )
```bash
sudo apt install rclone
```
2.- Para poder usar la herramienta y mandar archivos al servidor debemos hacer la configuración inicial mediante el comando:
```bash
rclone config
```
Primero debemos crear un repositorio remoto, para ello la herramienta nos hará una serie de preguntas y en algunos casos nos dará opciones, en la consola deberás ingresar cada una de las opciones seguida de la tecla enter:
2.1.- La primera vez debemos crear nuestro primer remoto, así que ingresa la letra **n** y **enter**:
```bash
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
```
2.2.- Nombre de nuevo remoto (no dejes espacios, mejor usa guion bajo):
```bash
Enter name for new remote.
name> db_backups
```
2.3.- Selección de la opción 18, es la opción de Google Drive
```bash
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
18 / Google Drive
\ (drive)
Storage> 18
```
2.4.- Te pedirá tu id de cliente de Google pero si no lo tienes solo da enter:
```bash
Option client_id.
Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
If you leave this blank, it will use an internal key which is low performance.
Enter a value. Press Enter to leave empty.
client_id>
```
2.5.- Solicitará tu clave de OAuth pero lo puedes dejar vacío, solo da enter:
```bash
Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret>
```
2.6.- Te pedirá el tipo de acceso que le darás a Drive, para esta caso yo elegiré la 1 que es acceso total a archivos.
```bash
Option scope.
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
1 / Full access all files, excluding Application Data Folder.
\ (drive)
2 / Read-only access to file metadata and file contents.
\ (drive.readonly)
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ (drive.file)
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ (drive.appfolder)
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ (drive.metadata.readonly)
scope> 1
```
2.7.- Te pedirá la ruta de las credenciales en formato JSON pero lo puedes dejar en blanco y solo dar enter:
```bash
Option service_account_file.
Service Account Credentials JSON file path.
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Leading `~` will be expanded in the file name as will environment variables such as `${RCLONE_CONFIG_DIR}`.
Enter a value. Press Enter to leave empty.
service_account_file>
```
2.8- Preguntará si quieres editar la configuración avanzada, la opción es no (n):
```bash
Edit advanced config?
y) Yes
n) No (default)
y/n> n
```
2.9.- Te preguntara si quieres usar el método de configuración automática, pero **ingresa que no, ya que usa una UI y el servidor no tiene interfaz gráfica**.
```bash
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes (default)
n) No
y/n> n
```
2.9.1.- Del comando anterior en consola te mostrará un mensaje como este:
```bash
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "drive" "ayXzY01uSSI8ImRiaXZlIm0"
Then paste the result.
Enter a value.
config_token>
```
En tu computadora local, **NO EN EL SERVIDOR**, deberás abrir una terminal (previamente debiste instalar rclone en esa maquina), y pegar el comando que te da la terminal del servidor que en este caso es:
```bash
rclone authorize "drive" "ayXzY01uSSI8ImRiaXZlIm0"
```
De ese comando verás que te despliega la consola una respuesta como esta:
```bash
2025/06/03 13:12:35 NOTICE: Config file "/home/dave/.config/rclone/rclone.conf" not found - using defaults
2025/06/03 13:12:35 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=VQQBIGPyiSNLYReNNPIXmj
2025/06/03 13:12:35 NOTICE: Log in and authorize rclone for access
2025/06/03 13:12:35 NOTICE: Waiting for code...
```
En la segunda línea del mensaje, copia y pega en tu navegador la URL que aparece despues de link, en este caso es: http://127.0.0.1:53682/auth?state=VQQBIGPyiSNLYReNNPIXmj
En tu navegador te aparecerán las cuentas de gmail, selecciona la cuenta de gmail que corresponde al DRIVE que le darás acceso a rclone, de forma inmediata el navegador te dará un mensaje de **SUCCESS** y debes regresar a tu consola de tu maquina local y te dará un hash largo similar a este:
```bash
Paste the following into your remote machine --->
eyJ0b2tlbiI6IntcImFjY2Vzc19....[muchos-caracteres]....NjowMFwifSJ9
<---End paste
```
Copia lo que esta entre las flechas (---> hash <---) y pégalo en la terminal de tu servidor VPS.
2.10.- Te preguntará que si es un drive compartido, en este caso es no:
```bash
Configure this as a Shared Drive (Team Drive)?
y) Yes
n) No (default)
y/n> n
```
2.11.- Finalmente te hará la pregunta de si quieres mantener la configuración hecha, debes ingresar la y:
```bash
Configuration complete.
Options:
- type: drive
- scope: drive
- token: {"access_token":"datos-de-tu-token-de-acceso","token_type":"tu-tipo-de-token","refresh_token":"hash-del-token","expiry":"time-stamp-expiracion"}
- team_drive:
Keep this "db_backups" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
```
Listo, tu configuración ya esta hecha, ahora solo debes salir de rclone ingresando la letra `q` seguida del enter, y en
### Subir carpeta con `rclone copy`
Este comando copia los archivos de origen a destino, sin borrar nada en destino.
```bash
rclone copy /ruta/local/de/la/carpeta formha_db_backups:/carpeta-en-drive
```
rclone copy /home/dix/backups-db/ formha_db_backups:/formha-db-backups
* `/ruta/local/de/la/carpeta` → la carpeta en tu VPS que quieres subir.
* `formha_db_backups:/carpeta-en-drive` → la carpeta en tu Google Drive (se creará si no existe).
Ejemplo:
```bash
rclone copy /home/dix/backups formha_db_backups:/backups-vps -p --v
```
Esto copiará todo el contenido de `/home/dix/backups` a la carpeta `backups-vps` en Google Drive.
---
### Subir carpeta con `rclone sync`
Si quieres que la carpeta en Google Drive **quede idéntica** a la local (borra archivos en Drive que no estén en local):
```bash
rclone sync /ruta/local/de/la/carpeta formha_db_backups:/carpeta-en-drive
```
Ten cuidado con `sync` porque puede eliminar archivos en Drive.
---
### Otros tips útiles
* Para ver el contenido en Drive:
```bash
rclone ls formha_db_backups:/carpeta-en-drive
```
* Para hacer dry-run (simular qué pasaría sin cambios reales):
```bash
rclone copy --dry-run /home/dix/backups formha_db_backups:/backups-vps
```
---
¿Quieres que te ayude con un script automático o programación de backups?
1.- Instalar `rclone` en el servidor (si el servidor no tiene interfaz gráfica también instalalo en tu PC o laptop )
```bash
sudo apt install rclone
```
2.- Para poder usar la herramienta y mandar archivos al servidor debemos hacer la configuración inicial mediante el comando:
```bash
rclone config
```
Primero debemos crear un repositorio remoto, para ello la herramienta nos hará una serie de preguntas y en algunos casos nos dará opciones, en la consola deberás ingresar cada una de las opciones seguida de la tecla enter:
2.1.- La primera vez debemos crear nuestro primer remoto, así que ingresa la letra **n** y **enter**:
```bash
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
```
2.2.- Nombre de nuevo remoto (no dejes espacios, mejor usa guion bajo):
```bash
Enter name for new remote.
name> db_backups
```
2.3.- Selección de la opción 18, es la opción de Google Drive
```bash
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
18 / Google Drive
\ (drive)
Storage> 18
```
2.4.- Te pedirá tu id de cliente de Google pero si no lo tienes solo da enter:
```bash
Option client_id.
Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
If you leave this blank, it will use an internal key which is low performance.
Enter a value. Press Enter to leave empty.
client_id>
```
2.5.- Solicitará tu clave de OAuth pero lo puedes dejar vacío, solo da enter:
```bash
Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret>
```
2.6.- Te pedirá el tipo de acceso que le darás a Drive, para esta caso yo elegiré la 1 que es acceso total a archivos.
```bash
Option scope.
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
1 / Full access all files, excluding Application Data Folder.
\ (drive)
2 / Read-only access to file metadata and file contents.
\ (drive.readonly)
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ (drive.file)
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ (drive.appfolder)
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ (drive.metadata.readonly)
scope> 1
```
2.7.- Te pedirá la ruta de las credenciales en formato JSON pero lo puedes dejar en blanco y solo dar enter:
```bash
Option service_account_file.
Service Account Credentials JSON file path.
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Leading `~` will be expanded in the file name as will environment variables such as `${RCLONE_CONFIG_DIR}`.
Enter a value. Press Enter to leave empty.
service_account_file>
```
2.8- Preguntará si quieres editar la configuración avanzada, la opción es no (n):
```bash
Edit advanced config?
y) Yes
n) No (default)
y/n> n
```
2.9.- Te preguntara si quieres usar el método de configuración automática, pero **ingresa que no, ya que usa una UI y el servidor no tiene interfaz gráfica**.
```bash
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes (default)
n) No
y/n> n
```
2.9.1.- Del comando anterior en consola te mostrará un mensaje como este:
```bash
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "drive" "ayXzY01uSSI8ImRiaXZlIm0"
Then paste the result.
Enter a value.
config_token>
```
En tu computadora local, **NO EN EL SERVIDOR**, deberás abrir una terminal (previamente debiste instalar rclone en esa maquina), y pegar el comando que te da la terminal del servidor que en este caso es:
```bash
rclone authorize "drive" "ayXzY01uSSI8ImRiaXZlIm0"
```
De ese comando verás que te despliega la consola una respuesta como esta:
```bash
2025/06/03 13:12:35 NOTICE: Config file "/home/dave/.config/rclone/rclone.conf" not found - using defaults
2025/06/03 13:12:35 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=VQQBIGPyiSNLYReNNPIXmj
2025/06/03 13:12:35 NOTICE: Log in and authorize rclone for access
2025/06/03 13:12:35 NOTICE: Waiting for code...
```
En la segunda línea del mensaje, copia y pega en tu navegador la URL que aparece despues de link, en este caso es: http://127.0.0.1:53682/auth?state=VQQBIGPyiSNLYReNNPIXmj
En tu navegador te aparecerán las cuentas de gmail, selecciona la cuenta de gmail que corresponde al DRIVE que le darás acceso a rclone, de forma inmediata el navegador te dará un mensaje de **SUCCESS** y debes regresar a tu consola de tu maquina local y te dará un hash largo similar a este:
```bash
Paste the following into your remote machine --->
eyJ0b2tlbiI6IntcImFjY2Vzc19....[muchos-caracteres]....NjowMFwifSJ9
<---End paste
```
Copia lo que esta entre las flechas (---> hash <---) y pégalo en la terminal de tu servidor VPS.
2.10.- Te preguntará que si es un drive compartido, en este caso es no:
```bash
Configure this as a Shared Drive (Team Drive)?
y) Yes
n) No (default)
y/n> n
```
2.11.- Finalmente te hará la pregunta de si quieres mantener la configuración hecha, debes ingresar la y:
```bash
Configuration complete.
Options:
- type: drive
- scope: drive
- token: {"access_token":"datos-de-tu-token-de-acceso","token_type":"tu-tipo-de-token","refresh_token":"hash-del-token","expiry":"time-stamp-expiracion"}
- team_drive:
Keep this "db_backups" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
```
Listo, tu configuración ya esta hecha, ahora solo debes salir de rclone ingresando la letra `q` seguida del enter, y en
### Subir carpeta con `rclone copy`
Este comando copia los archivos de origen a destino, sin borrar nada en destino.
```bash
rclone copy /ruta/local/de/la/carpeta formha_db_backups:/carpeta-en-drive
```
rclone copy /home/dix/backups-db/ formha_db_backups:/formha-db-backups
* `/ruta/local/de/la/carpeta` → la carpeta en tu VPS que quieres subir.
* `formha_db_backups:/carpeta-en-drive` → la carpeta en tu Google Drive (se creará si no existe).
Ejemplo:
```bash
rclone copy /home/dix/backups formha_db_backups:/backups-vps -p --v
```
Esto copiará todo el contenido de `/home/dix/backups` a la carpeta `backups-vps` en Google Drive.
---
### Subir carpeta con `rclone sync`
Si quieres que la carpeta en Google Drive **quede idéntica** a la local (borra archivos en Drive que no estén en local):
```bash
rclone sync /ruta/local/de/la/carpeta formha_db_backups:/carpeta-en-drive
```
Ten cuidado con `sync` porque puede eliminar archivos en Drive.
---
### Otros tips útiles
* Para ver el contenido en Drive:
```bash
rclone ls formha_db_backups:/carpeta-en-drive
```
* Para hacer dry-run (simular qué pasaría sin cambios reales):
```bash
rclone copy --dry-run /home/dix/backups formha_db_backups:/backups-vps
```
---
¿Quieres que te ayude con un script automático o programación de backups?

View File

@ -1,101 +1,101 @@
Sí, **puedes usar una Raspberry Pi como cliente WireGuard y compartir Internet a través de ella**, como si fuera un router. Esto es útil, por ejemplo, si quieres que dispositivos conectados a la Raspberry (por cable o Wi-Fi) usen la conexión VPN.
### ✅ Requisitos
- Raspberry Pi (con Raspberry Pi OS o similar).
- Conexión a Internet.
- Configuración de cliente WireGuard funcional (`wg0.conf`).
- IP forwarding habilitado.
- `iptables` o `nftables` para NAT.
---
### 🔧 Pasos
#### 1. **Instala WireGuard**
```bash
sudo apt update
sudo apt install wireguard
```
#### 2. **Configura el cliente WireGuard**
Crea el archivo `/etc/wireguard/wg0.conf` con los datos del servidor:
```ini
[Interface]
PrivateKey = TU_CLAVE_PRIVADA
Address = 10.10.10.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = CLAVE_PUBLICA_DEL_SERVIDOR
Endpoint = IP_DEL_SERVIDOR:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
```
Activa el túnel:
```bash
sudo wg-quick up wg0
```
#### 3. **Habilita IP forwarding**
Edita `/etc/sysctl.conf` y descomenta o añade:
```bash
net.ipv4.ip_forward=1
```
Aplica el cambio:
```bash
sudo sysctl -p
```
#### 4. **Configura NAT para compartir Internet**
Asumiendo que los clientes están en `eth0` o `wlan0` y que la VPN va por `wg0`:
```bash
# Reglas NAT
sudo iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
# Permitir reenvío entre interfaces
sudo iptables -A FORWARD -i wg0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o wg0 -j ACCEPT
```
Haz persistente con `iptables-persistent`:
```bash
sudo apt install iptables-persistent
sudo netfilter-persistent save
```
#### 5. **Crea un hotspot o red para compartir**
Puedes usar `hostapd` para crear un punto de acceso Wi-Fi, o compartir por Ethernet usando una IP estática y DHCP (`dnsmasq` o similar).
---
### 📶 Ejemplo de uso
- Raspberry conectada a Internet por Wi-Fi.
- Cliente se conecta por Ethernet a la Raspberry.
- Todo el tráfico del cliente pasa por la VPN (WireGuard).
---
Sí, **puedes usar una Raspberry Pi como cliente WireGuard y compartir Internet a través de ella**, como si fuera un router. Esto es útil, por ejemplo, si quieres que dispositivos conectados a la Raspberry (por cable o Wi-Fi) usen la conexión VPN.
### ✅ Requisitos
- Raspberry Pi (con Raspberry Pi OS o similar).
- Conexión a Internet.
- Configuración de cliente WireGuard funcional (`wg0.conf`).
- IP forwarding habilitado.
- `iptables` o `nftables` para NAT.
---
### 🔧 Pasos
#### 1. **Instala WireGuard**
```bash
sudo apt update
sudo apt install wireguard
```
#### 2. **Configura el cliente WireGuard**
Crea el archivo `/etc/wireguard/wg0.conf` con los datos del servidor:
```ini
[Interface]
PrivateKey = TU_CLAVE_PRIVADA
Address = 10.10.10.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = CLAVE_PUBLICA_DEL_SERVIDOR
Endpoint = IP_DEL_SERVIDOR:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
```
Activa el túnel:
```bash
sudo wg-quick up wg0
```
#### 3. **Habilita IP forwarding**
Edita `/etc/sysctl.conf` y descomenta o añade:
```bash
net.ipv4.ip_forward=1
```
Aplica el cambio:
```bash
sudo sysctl -p
```
#### 4. **Configura NAT para compartir Internet**
Asumiendo que los clientes están en `eth0` o `wlan0` y que la VPN va por `wg0`:
```bash
# Reglas NAT
sudo iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
# Permitir reenvío entre interfaces
sudo iptables -A FORWARD -i wg0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o wg0 -j ACCEPT
```
Haz persistente con `iptables-persistent`:
```bash
sudo apt install iptables-persistent
sudo netfilter-persistent save
```
#### 5. **Crea un hotspot o red para compartir**
Puedes usar `hostapd` para crear un punto de acceso Wi-Fi, o compartir por Ethernet usando una IP estática y DHCP (`dnsmasq` o similar).
---
### 📶 Ejemplo de uso
- Raspberry conectada a Internet por Wi-Fi.
- Cliente se conecta por Ethernet a la Raspberry.
- Todo el tráfico del cliente pasa por la VPN (WireGuard).
---
Si me das detalles sobre cómo quieres compartir (Wi-Fi o Ethernet), te puedo ayudar a configurar eso también.

View File

@ -1,78 +1,78 @@
¡Perfecto! 🎯
Eso confirma que `ip.xala.dev` ya **resuelve directamente a tu IP real pública (`189.131.79.23`)**, y **el proxy de Cloudflare está desactivado** (ícono gris / Solo DNS). Bien hecho. ✅
---
### 🧩 Entonces… ¿por qué `git push` aún no funciona con `ip.xala.dev:3000`?
Si el dominio resuelve bien y aún falla, quedan estas **posibles causas clave**:
---
### 1. ❌ **Cloudflare nunca estuvo en medio, pero tu servidor Git está restringido por `Host`**
Algunos servidores Git (como **Gitea**) pueden rechazar peticiones HTTP que usen un nombre de dominio diferente al configurado.
**Ejemplo típico de fallo:**
```bash
# Este sí funciona porque coincide con la configuración del servidor
git remote add origin http://dix-ip.duckdns.org:3000/repo.git
# Este no funciona porque el servidor solo acepta dix-ip.duckdns.org como Host HTTP
git remote add origin http://ip.xala.dev:3000/repo.git
```
👉 **Solución:**
- Si usas Gitea, revisa el valor `DOMAIN` o `ROOT_URL` en su archivo `app.ini`.
- Asegúrate de que incluya `ip.xala.dev` o configúralo así:
```ini
ROOT_URL = http://ip.xala.dev:3000/
```
Y reinicia Gitea.
---
### 2. 🔒 **Tu servidor Git usa una ACL o firewall basado en nombres**
Revisa si el servidor tiene alguna lógica o `nginx` / `apache` virtual host configurado para solo aceptar conexiones desde ciertos hosts.
---
### 3. 🧪 **Verifica que responde por nombre**
Haz esta prueba desde la máquina cliente:
```bash
curl -v http://ip.xala.dev:3000/
```
Y también:
```bash
curl -v http://dix-ip.duckdns.org:3000/
```
- Si uno responde y el otro no: el problema está en cómo el servidor maneja el **nombre del host** (`Host: ...`) en la cabecera HTTP.
---
### ✅ Solución temporal de prueba (si no puedes modificar el servidor):
Puedes engañar a Git y al servidor editando tu `/etc/hosts` y agregando:
```bash
189.131.79.23 dix-ip.duckdns.org ip.xala.dev
```
Así, cuando uses `ip.xala.dev`, Git usará el nombre que acepta el servidor, como si fueran sinónimos.
---
¡Perfecto! 🎯
Eso confirma que `ip.xala.dev` ya **resuelve directamente a tu IP real pública (`189.131.79.23`)**, y **el proxy de Cloudflare está desactivado** (ícono gris / Solo DNS). Bien hecho. ✅
---
### 🧩 Entonces… ¿por qué `git push` aún no funciona con `ip.xala.dev:3000`?
Si el dominio resuelve bien y aún falla, quedan estas **posibles causas clave**:
---
### 1. ❌ **Cloudflare nunca estuvo en medio, pero tu servidor Git está restringido por `Host`**
Algunos servidores Git (como **Gitea**) pueden rechazar peticiones HTTP que usen un nombre de dominio diferente al configurado.
**Ejemplo típico de fallo:**
```bash
# Este sí funciona porque coincide con la configuración del servidor
git remote add origin http://dix-ip.duckdns.org:3000/repo.git
# Este no funciona porque el servidor solo acepta dix-ip.duckdns.org como Host HTTP
git remote add origin http://ip.xala.dev:3000/repo.git
```
👉 **Solución:**
- Si usas Gitea, revisa el valor `DOMAIN` o `ROOT_URL` en su archivo `app.ini`.
- Asegúrate de que incluya `ip.xala.dev` o configúralo así:
```ini
ROOT_URL = http://ip.xala.dev:3000/
```
Y reinicia Gitea.
---
### 2. 🔒 **Tu servidor Git usa una ACL o firewall basado en nombres**
Revisa si el servidor tiene alguna lógica o `nginx` / `apache` virtual host configurado para solo aceptar conexiones desde ciertos hosts.
---
### 3. 🧪 **Verifica que responde por nombre**
Haz esta prueba desde la máquina cliente:
```bash
curl -v http://ip.xala.dev:3000/
```
Y también:
```bash
curl -v http://dix-ip.duckdns.org:3000/
```
- Si uno responde y el otro no: el problema está en cómo el servidor maneja el **nombre del host** (`Host: ...`) en la cabecera HTTP.
---
### ✅ Solución temporal de prueba (si no puedes modificar el servidor):
Puedes engañar a Git y al servidor editando tu `/etc/hosts` y agregando:
```bash
189.131.79.23 dix-ip.duckdns.org ip.xala.dev
```
Así, cuando uses `ip.xala.dev`, Git usará el nombre que acepta el servidor, como si fueran sinónimos.
---
¿Sabes qué servidor Git estás usando (¿Gitea, GitLab, bare Git+nginx?)? Puedo ayudarte a ajustar la configuración.

View File

@ -1,254 +1,254 @@
Perfecto, David. A continuación te dejo el **manual completo y actualizado** para instalar `n8n` de forma manual en Ubuntu Server (sin Docker), incluyendo:
- Instalación limpia de Node.js 20
- Instalación de n8n y pm2
- Script de arranque con autenticación básica
- Ejecución en segundo plano con reinicio automático al encender el servidor
---
# 🛠 Manual actualizado para instalar n8n (sin Docker) en Ubuntu Server
---
## ✅ 1. Actualiza el sistema e instala dependencias
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg build-essential
```
---
## ✅ 2. Instala Node.js 20 (requerido por versiones recientes de n8n)
```bash
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
```
Verifica que esté instalado correctamente:
```bash
node -v
npm -v
```
Debe mostrar algo como `v20.x.x`.
---
## ✅ 3. Instala `n8n` y `pm2` globalmente
```bash
sudo npm install -g pm2 n8n
```
---
## ✅ 4. Crea el script de arranque `n8n`
```bash
nano ~/start-n8n.sh
```
Pega el siguiente contenido:
```bash
#!/bin/bash
export N8N_HOST=0.0.0.0
export N8N_PORT=5678
export N8N_BASIC_AUTH_ACTIVE=true
export N8N_BASIC_AUTH_USER=admin
export N8N_BASIC_AUTH_PASSWORD=Shala55951254
n8n
```
Guarda y cierra (Ctrl+O, Enter, Ctrl+X).
Hazlo ejecutable:
```bash
chmod +x ~/start-n8n.sh
```
---
## ✅ 5. Ejecuta el script para probar
```bash
~/start-n8n.sh
```
Deberías ver un mensaje como:
```
Editor is now accessible via: http://0.0.0.0:5678
```
📌 Accede desde el navegador con la IP del servidor:
```
http://TU_IP:5678
```
Usuario: `admin`
Contraseña: `Shala55951254`
---
## ✅ 6. Ejecutar n8n en segundo plano con `pm2`
### A. Inicia el proceso con `pm2`:
```bash
pm2 start ~/start-n8n.sh --name n8n
```
### B. Guarda el proceso para que se reinicie con el sistema:
```bash
pm2 startup
```
Copia y ejecuta la línea que te devuelva (ejemplo):
```bash
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u $USER --hp /home/$USER
```
Luego:
```bash
pm2 save
```
---
## ✅ 7. (Opcional) Abre el puerto en el firewall
```bash
sudo ufw allow 5678/tcp
sudo ufw enable
sudo ufw status
```
---
## ✅ 8. Comandos útiles
- Ver estado de procesos:
```bash
pm2 list
```
- Ver logs en tiempo real:
```bash
pm2 logs n8n
```
- Parar o reiniciar:
```bash
pm2 stop n8n
pm2 restart n8n
```
- Eliminar proceso:
```bash
pm2 delete n8n
```
---
¿Quieres que ahora te dé el manual con NGINX + HTTPS (Let's Encrypt) para que accedas por dominio seguro como `https://n8n.tudominio.com`?
# hacer que el servicio de n8n se reincie con el equipo
Excelente pregunta, David. Si `n8n` no se reinicia automáticamente tras reiniciar tu servidor, lo más probable es que **faltó ejecutar correctamente uno de los pasos con `pm2`** para registrar el arranque del proceso.
Aquí te explico cómo asegurar que n8n se inicie automáticamente al arrancar el servidor:
---
## ✅ Paso a paso para activar reinicio automático con `pm2`
### 1. Asegúrate de que `n8n` está corriendo con `pm2`
Confirma con:
```bash
pm2 list
```
Deberías ver un proceso llamado `n8n`.
---
### 2. Genera el script de arranque para `systemd`
```bash
pm2 startup
```
Esto te devolverá una línea como esta (con tu usuario):
```bash
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u web --hp /home/web
```
🔁 **Cópiala y ejecútala exactamente**.
> ⚠️ Este paso es **clave**: si no ejecutas esa línea, `pm2` no se integrará con `systemd` y no podrá reiniciar tus procesos al arrancar el servidor.
---
### 3. Guarda el estado actual de los procesos
```bash
pm2 save
```
Esto crea un snapshot de los procesos actuales que serán restaurados al reinicio.
---
### 4. Verifica que todo esté correcto
Puedes simular un reinicio:
```bash
sudo reboot
```
Luego, tras reiniciar, verifica:
```bash
pm2 list
```
Y accede a `http://IP:5678` para confirmar que `n8n` se levantó automáticamente.
---
## ✅ Resumen de comandos clave
```bash
pm2 start ~/start-n8n.sh --name n8n
pm2 startup # (ejecutar también la línea que devuelve)
pm2 save
```
---
Perfecto, David. A continuación te dejo el **manual completo y actualizado** para instalar `n8n` de forma manual en Ubuntu Server (sin Docker), incluyendo:
- Instalación limpia de Node.js 20
- Instalación de n8n y pm2
- Script de arranque con autenticación básica
- Ejecución en segundo plano con reinicio automático al encender el servidor
---
# 🛠 Manual actualizado para instalar n8n (sin Docker) en Ubuntu Server
---
## ✅ 1. Actualiza el sistema e instala dependencias
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg build-essential
```
---
## ✅ 2. Instala Node.js 20 (requerido por versiones recientes de n8n)
```bash
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
```
Verifica que esté instalado correctamente:
```bash
node -v
npm -v
```
Debe mostrar algo como `v20.x.x`.
---
## ✅ 3. Instala `n8n` y `pm2` globalmente
```bash
sudo npm install -g pm2 n8n
```
---
## ✅ 4. Crea el script de arranque `n8n`
```bash
nano ~/start-n8n.sh
```
Pega el siguiente contenido:
```bash
#!/bin/bash
export N8N_HOST=0.0.0.0
export N8N_PORT=5678
export N8N_BASIC_AUTH_ACTIVE=true
export N8N_BASIC_AUTH_USER=admin
export N8N_BASIC_AUTH_PASSWORD=Shala55951254
n8n
```
Guarda y cierra (Ctrl+O, Enter, Ctrl+X).
Hazlo ejecutable:
```bash
chmod +x ~/start-n8n.sh
```
---
## ✅ 5. Ejecuta el script para probar
```bash
~/start-n8n.sh
```
Deberías ver un mensaje como:
```
Editor is now accessible via: http://0.0.0.0:5678
```
📌 Accede desde el navegador con la IP del servidor:
```
http://TU_IP:5678
```
Usuario: `admin`
Contraseña: `Shala55951254`
---
## ✅ 6. Ejecutar n8n en segundo plano con `pm2`
### A. Inicia el proceso con `pm2`:
```bash
pm2 start ~/start-n8n.sh --name n8n
```
### B. Guarda el proceso para que se reinicie con el sistema:
```bash
pm2 startup
```
Copia y ejecuta la línea que te devuelva (ejemplo):
```bash
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u $USER --hp /home/$USER
```
Luego:
```bash
pm2 save
```
---
## ✅ 7. (Opcional) Abre el puerto en el firewall
```bash
sudo ufw allow 5678/tcp
sudo ufw enable
sudo ufw status
```
---
## ✅ 8. Comandos útiles
- Ver estado de procesos:
```bash
pm2 list
```
- Ver logs en tiempo real:
```bash
pm2 logs n8n
```
- Parar o reiniciar:
```bash
pm2 stop n8n
pm2 restart n8n
```
- Eliminar proceso:
```bash
pm2 delete n8n
```
---
¿Quieres que ahora te dé el manual con NGINX + HTTPS (Let's Encrypt) para que accedas por dominio seguro como `https://n8n.tudominio.com`?
# hacer que el servicio de n8n se reincie con el equipo
Excelente pregunta, David. Si `n8n` no se reinicia automáticamente tras reiniciar tu servidor, lo más probable es que **faltó ejecutar correctamente uno de los pasos con `pm2`** para registrar el arranque del proceso.
Aquí te explico cómo asegurar que n8n se inicie automáticamente al arrancar el servidor:
---
## ✅ Paso a paso para activar reinicio automático con `pm2`
### 1. Asegúrate de que `n8n` está corriendo con `pm2`
Confirma con:
```bash
pm2 list
```
Deberías ver un proceso llamado `n8n`.
---
### 2. Genera el script de arranque para `systemd`
```bash
pm2 startup
```
Esto te devolverá una línea como esta (con tu usuario):
```bash
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u web --hp /home/web
```
🔁 **Cópiala y ejecútala exactamente**.
> ⚠️ Este paso es **clave**: si no ejecutas esa línea, `pm2` no se integrará con `systemd` y no podrá reiniciar tus procesos al arrancar el servidor.
---
### 3. Guarda el estado actual de los procesos
```bash
pm2 save
```
Esto crea un snapshot de los procesos actuales que serán restaurados al reinicio.
---
### 4. Verifica que todo esté correcto
Puedes simular un reinicio:
```bash
sudo reboot
```
Luego, tras reiniciar, verifica:
```bash
pm2 list
```
Y accede a `http://IP:5678` para confirmar que `n8n` se levantó automáticamente.
---
## ✅ Resumen de comandos clave
```bash
pm2 start ~/start-n8n.sh --name n8n
pm2 startup # (ejecutar también la línea que devuelve)
pm2 save
```
---
¿Quieres que revise también cómo levantar `pm2` con un usuario distinto al login por defecto o con logs persistentes en un archivo?

View File

@ -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.

View File

@ -1,4 +1,4 @@
cd ~/Minecraft/ && zip -r "/home/web/backups_minecraft/world_gorromina_$(date +'%d-%m-%Y_%H-%M').zip" "world_gorromina"
rclone copy ~/backups_minecraft/ mc_backup:/mc_backup -P -v
cd ~/Minecraft/ && zip -r "/home/web/backups_minecraft/world_gorromina_$(date +'%d-%m-%Y_%H-%M').zip" "world_gorromina"
rclone copy ~/backups_minecraft/ mc_backup:/mc_backup -P -v

View File

0
Sin título.md Normal file
View File