docs: reescribir la guía de instalación, que llevaba a una app rota

SETUP.md no era una guía de instalación: más de la mitad eran los pasos
personales de git y Gitea del autor. Se mueven a un documento privado.

Y lo importante: la configuración de nginx documentada en el README estaba
rota desde la 1.11.0. Indicaba un alias a dashboard.html (un ARCHIVO), pero
con las librerías en vendor/ y rutas relativas eso deja al navegador sin
encontrarlas — página en blanco y ningún error visible. Debe ser un alias al
DIRECTORIO. Quien siguiera el README al pie de la letra no conseguía arrancar.

Ahora hay una guía real con comprobación tras cada paso, incluida la que
descarta ese fallo concreto: curl mirando el content-type, no solo el 200.
Se añaden las librerías al flujo (faltaban, y sin ellas no arranca), se quitan
las rutas personales y se actualiza la estructura del repo.
This commit is contained in:
Aitor
2026-07-27 16:38:48 +02:00
parent b5db5d7e81
commit b579a0653a
5 changed files with 307 additions and 296 deletions
+31 -61
View File
@@ -151,66 +151,29 @@ Probado sobre Ubuntu Server 24.04 con HP EliteDesk (i5, 32GB RAM, 2TB NVMe).
## Instalación
### 1. Clonar el repositorio
**La guía completa está en [SETUP.md](SETUP.md)** — paso a paso, con una
comprobación después de cada uno para que sepas si vas bien sin tener que
descubrirlo al final.
```bash
git clone https://git.bitcointxoko.org/pikaro/txoko-dashboard.git
cd txoko-dashboard
```
Resumen de lo que implica:
### 2. Copiar el dashboard
1. Clonar el repositorio.
2. Copiar `dashboard.html` a un **directorio** propio servido por nginx.
3. Descargar las librerías (React, Babel y las fuentes) a `vendor/`, junto al
dashboard, y verificarlas por hash. No están en el repo: son de terceros y
ocupan ~3 MB.
4. Opcionalmente, instalar el monitor del sistema como servicio systemd.
5. Configurar nginx: el dashboard, un proxy a la API de Mempool y otro al
monitor.
```bash
cp dashboard.html /var/www/txoko/dashboard.html
# o donde lo sirvas con nginx
```
Un aviso que ahorra disgustos: en nginx, el `alias` del dashboard debe apuntar
al **directorio** (con barra final), no al archivo `dashboard.html`. Si apunta
al archivo, el navegador no encuentra `vendor/` y verás una página en blanco
sin ningún error visible. Es el fallo más común, y en SETUP.md hay una
comprobación concreta para descartarlo.
### 3. Copiar el backend de métricas
```bash
cp system-metrics.js /home/armg/txoko/system-metrics.js
```
Editar `system-metrics.js` y añadir tus credenciales RPC de Bitcoin Core
(el archivo del repo usa placeholders).
### 4. Configurar el servicio systemd
```bash
sudo cp txoko-metrics.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable txoko-metrics
sudo systemctl start txoko-metrics
```
### 5. Configurar nginx
Añadir a tu configuración de nginx:
```nginx
# Dashboard
location /dashboard {
alias /var/www/txoko/dashboard.html;
}
# API Mempool (ajusta el puerto según tu instalación)
location /api/ {
proxy_pass http://localhost:8999;
}
# Métricas del sistema
location /system/ {
proxy_pass http://127.0.0.1:4082;
}
```
### 6. Abrir en el navegador
```
http://TU-IP-TAILSCALE:4080/dashboard
```
Introduce la URL de tu Mempool en el modal de configuración y empieza a analizar.
Cuando termines, abre `http://TU-IP:4080/dashboard/`**con la barra final** —,
pulsa CONFIG e introduce la URL de tu Mempool.
---
@@ -218,15 +181,22 @@ Introduce la URL de tu Mempool en el modal de configuración y empieza a analiza
```
txoko-dashboard/
├── dashboard.html # Frontend completo (HTML + CSS + JS en un solo archivo)
├── system-metrics.js # Backend de métricas del nodo (Node.js)
├── txoko-metrics.service # Servicio systemd
├── README.md
├── SETUP.md
├── dashboard.html # La aplicación entera (HTML + CSS + JS en un archivo)
├── system-metrics.js # Monitor del nodo (Node.js) — opcional
├── txoko-metrics.service # Servicio systemd para el monitor
├── instalar-fuentes.sh # Descarga IBM Plex al nodo y genera su CSS
├── tests/ # Pruebas de la criptografía contra vectores oficiales
├── SETUP.md # Guía de instalación
├── FIXTURES.md # Transacciones reales para probar las heurísticas
├── CHANGELOG.md
├── README.md
└── LICENSE
```
Tras la instalación, junto al `dashboard.html` queda además un directorio
`vendor/` con las librerías y las fuentes. No está en el repositorio: se
descarga y se verifica durante la instalación (ver [SETUP.md](SETUP.md)).
El frontend es un único archivo HTML. Sin bundler, sin npm, sin proceso de build: Babel transpila el JSX en el navegador, así que lo que lees en el archivo es exactamente lo que se ejecuta — no hay una versión compilada que auditar por separado.
Las librerías (React, Babel, las fuentes) viven aparte, en `vendor/`, servidas desde tu propio nodo y verificadas por hash durante la instalación. Se dejan fuera del repo a propósito: son código de terceros, y mezclarlas con el tuyo haría más difícil auditar lo que de verdad importa.