Skip to main content

Activity for jmrp.eu

Active on:

Loading activity...

PostedBluesky network

Mi RB5009 tenía un bucle de capa 2. Lo delataba el log del kernel, no el de RouterOS ni su monitor de puertos. Lo vi con mikroscope, que he hecho: un agente Go en un contenedor de RouterOS, de 1 a 100 Hz, y una CLI que reenvía a 11 destinos. MIT. github.com/jmrplens/mik... #Mikrotik #OpenSource

  • El logo de mikroscope, nueve barras ámbar de distinta altura cruzadas por una línea plana a su media, con las tres del centro por encima, sobre el nombre mikroscope y el lema: telemetría de kernel por debajo del segundo desde dentro de un router MikroTik. Un panel titulado lo que RouterOS promedia o pasa por alto enumera cuatro cifras. En torno a 1 s: la carga de CPU en la API, una media móvil, 0,1 a 0,6 s tarde en dos horas medidas. 2,5 %: una ráfaga de 100 ms en un núcleo, en una media de 1 s y 4 núcleos, que no dice cuándo. 0: líneas del bucle en el log de RouterOS, con el kernel anotando el bucle de capa 2 cada 2 s. Unas 35 000: interrupciones del temporizador por segundo, en ráfagas de 20 a 90 s en un núcleo cada vez, desde unas 2 500, con Home Assistant consultando la API; el profile de RouterOS apenas lo mostró. Debajo: mikroscope corre en el router, en un contenedor, y lee los contadores del propio kernel de 1 a 100 Hz. Medido en un RB5009, RouterOS 7.24.2 y 7.24.4; el 2,5 % es aritmética. Al pie, github.com/jmrplens/mikroscope y: código abierto, MIT, RouterOS 7.24 o posterior, arm64, arm y x86_64.
  • Cómo funciona mikroscope, en cuatro pasos numerados. 1, el kernel del router: /proc, /sys, /dev/kmsg y perf. El contenedor ve la CPU, interrupciones y memoria del router. 2, el agente, en un contenedor de RouterOS: binario Go estático en imagen scratch, sin conexión saliente. Muestrea de 1 a 100 Hz, 10 por defecto; guarda los últimos 60 s. Sirve deltas de ticks en bruto por HTTP en un veth /30. 3, el colector, a 11 destinos: con la API de RouterOS, añade el tráfico por interfaz a 1 Hz. Los destinos: fichero, Prometheus, InfluxDB 3, Loki, OTLP, Graphite, Elasticsearch, script SQL, PostgreSQL, Telegraf y salida estándar. 4, Grafana: 5 dashboards, uno por almacén, de 30 a 177 paneles. Reglas de alerta para InfluxDB 3, Prometheus y PostgreSQL. Lo que cuesta el agente a 10 Hz: 2,69 % de un núcleo, 13,2 MiB de memoria residente, 0 huecos y 0 pérdidas; RB5009UG+S+, RouterOS 7.24.2, 2026-09-18, una ventana de 300 s. Al final, doctor solo lee; install lista cada orden y pregunta antes, sobre dos órdenes: mikroscope doctor --router admin@192.168.88.1 y mikroscope install --router admin@192.168.88.1.
PostedBluesky network

My RB5009's kernel logged a layer-2 loop, a line every 2 s, while RouterOS's log and port monitor showed a healthy device. I saw it with mikroscope, which I built: Go agent in a RouterOS container, 1 to 100 Hz, and a CLI that forwards to 11 sinks. github.com/jmrplens/mik... #Mikrotik #OpenSource

  • The mikroscope logo, nine amber bars of different heights crossed by a flat line at their average, with the three middle bars rising above it, over the name mikroscope and the tagline: sub-second kernel telemetry from inside a MikroTik router. A panel headed what RouterOS averages or overlooks lists four figures. About 1 s: CPU load over the API, a trailing mean, 0.1 to 0.6 s late in two measured hours. 2.5 %: a 100 ms burst on one core, in a 4-core, 1 s average, which cannot say when. 0: loop lines in RouterOS's log, while the kernel logged the layer-2 loop every 2 s. About 35 000: timer interrupts a second, in 20 to 90 s bursts on one core at a time, up from about 2 500, while Home Assistant polled the API; RouterOS's own profile barely showed it. Below: mikroscope runs on the router, in a container, and reads the kernel's own counters at 1 to 100 Hz. Measured on one RB5009, RouterOS 7.24.2 and 7.24.4; the 2.5 % is arithmetic. At the foot, github.com/jmrplens/mikroscope and: open source, MIT, RouterOS 7.24 or later, arm64, arm and x86_64.
  • mikroscope, how it works, in four numbered steps. 1, the router's kernel: /proc, /sys, /dev/kmsg and perf. The container sees the router's CPU, interrupts and memory. 2, the agent, in a RouterOS container: static Go binary in a scratch image, no outbound connection. Samples at 1 to 100 Hz, 10 by default; keeps the last 60 s. Serves raw tick deltas over HTTP on a /30 veth. 3, the collector, into 11 sinks: with the RouterOS API, adds per-interface traffic at 1 Hz. The sinks: file, Prometheus, InfluxDB 3, Loki, OTLP, Graphite, Elasticsearch, SQL script, PostgreSQL, Telegraf and stdout. 4, Grafana: 5 dashboards, one per store, of 30 to 177 panels. Alert rules for InfluxDB 3, Prometheus and PostgreSQL. What the agent costs at 10 Hz: 2.69 % of one core, 13.2 MiB resident memory, 0 gaps and 0 drops; RB5009UG+S+, RouterOS 7.24.2, 2026-09-18, one 300 s window. Last, doctor only reads; install lists every command and asks first, above two commands: mikroscope doctor --router admin@192.168.88.1 and mikroscope install --router admin@192.168.88.1.
PostedBluesky network

GitHub guarda el tráfico 14 días y la actividad hasta 300 eventos. ghchronicle lo conserva todo: 92 medidas con su fecha, en InfluxDB, PostgreSQL, Prometheus y 8 destinos más, con dashboards de Grafana. Go, MIT. github.com/jmrplens/ghc... #GitHub #OpenSource #Grafana

  • El logo de ghchronicle, una cuadrícula verde de cinco por cinco que sube en diagonal, sobre el lema: todas las métricas que da GitHub, con la fecha en que ocurrieron. Un panel enumera lo que GitHub deja escapar: el tráfico a los 14 días, la actividad más allá de los 300 últimos eventos, las notificaciones leídas y las fechas de las estrellas cuando la lista crece. ghchronicle las recoge periódicamente y guarda cada una como un punto con fecha.
  • Cómo funciona ghchronicle, en cuatro pasos. 1, GitHub: REST y GraphQL, 34 familias, 92 medidas. 2, ghchronicle: barridos periódicos, cada punto con la fecha en que ocurrió y un backfill que se reanuda tras un corte. 3, once destinos: InfluxDB, PostgreSQL, TimescaleDB, Graphite, Elasticsearch, OpenSearch, Prometheus, OpenTelemetry, Loki, Telegraf y fichero. 4, Grafana: cinco dashboards de 154 paneles cada uno, que publica el propio binario. Se instala con una línea y se configura con ghchronicle -setup.
PostedBluesky network

GitHub keeps traffic for 14 days and your activity feed for 300 events. ghchronicle keeps all of it: 92 measurements dated when they happened, into InfluxDB, PostgreSQL, Prometheus and 8 more, with Grafana dashboards. Go, MIT. #GitHub #OpenSource #Grafana github.com/jmrplens/ghc...

  • The ghchronicle logo, a five by five grid of green squares rising on the diagonal, above the tagline: every metric GitHub will give, kept with the date it happened. A panel lists what GitHub lets go of: traffic after 14 days, the activity feed beyond the last 300 events, read notifications, and star dates once the list grows. ghchronicle sweeps them on a schedule and keeps each one as a dated point.
  • How ghchronicle works, in four steps. 1, GitHub: REST and GraphQL, 34 families, 92 measurements. 2, ghchronicle: sweeps on a schedule, dates each point when it happened, and a backfill that resumes after a kill. 3, eleven destinations: InfluxDB, PostgreSQL, TimescaleDB, Graphite, Elasticsearch, OpenSearch, Prometheus, OpenTelemetry, Loki, Telegraf and a file. 4, Grafana: five dashboards of 154 panels each, published by the binary itself. Install in one line, then run ghchronicle -setup.
PostedBluesky network

GitHub stacked PRs are now in public preview. Break a big change into ordered small PRs, review each layer separately, merge the whole stack in one click. Checks and branch protections still apply. gh extension install github/gh-stack gh.io/stacks #github #git #dev

PostedBluesky network

📚 libgen-mcp: a Go MCP server so your AI can search & download from Library Genesis (books, papers, comics…). No account, no API key, self-hosted, ~1.9k tokens. Works with Claude, Cursor & VS Code. github.com/jmrplens/libgen-mcp #AI #MCP #SelfHosted #SciHub

  • Infographic for libgen-mcp: a Go MCP server to search and download from Library Genesis. Download-arrow-over-a-book logo on a dark teal background. Stats: 3 tools, ~1.9k tokens, 99.9% test coverage, MIT. No account or API key, self-hosted (Windows/Linux/macOS), works with Claude, Cursor and VS Code. Available on MCP Registry, Cursor, Glama and Smithery.
PostedBluesky network

📚 libgen-mcp: servidor MCP en Go para que tu IA busque y descargue de Library Genesis (libros, papers, cómics…). Sin cuenta ni API key, self-hosted, ~1.9k tokens. Con Claude, Cursor y VS Code. github.com/jmrplens/libgen-mcp #IA #MCP #SelfHosted

  • Infografía de libgen-mcp: servidor MCP en Go para buscar y descargar de Library Genesis. Logo de flecha sobre un libro, fondo verde azulado. 3 herramientas, ~1,9k tokens, 99,9% cobertura, MIT. Sin cuenta ni API key, self-hosted, con Claude, Cursor y VS Code. En MCP Registry, Cursor, Glama, Smithery.
PostedBluesky network

🚀 New Bluesky feed: “Open Source & Homelab EN” Open source, dev & self-hosting in one place: C/C++, Rust, Python, firmware, Linux, Docker, Proxmox, NAS… Auto-curated + human reviewed, no AI. Add it and tell me what to improve 👇 #OpenSource #Homelab #SelfHosted

  • Blue banner: New feed for Bluesky — Open Source & Homelab EN. Open source, development and self-hosting, in English. Logo with terminal, git branch, chip, server and house.
PostedBluesky network

🚀 Estreno feed en Bluesky: «Open Source y Homelab ES» Open source, desarrollo y self-hosting en español: C/C++, Rust, Python, firmware, Linux, Docker, Proxmox, NAS… Curación automática + revisión humana, sin IA. Añádelo y cuéntame qué mejorarías 👇 #OpenSource #Homelab #SoftwareLibre

  • Cartel naranja: Nuevo feed para Bluesky — Open Source y Homelab ES. Código abierto, desarrollo y self-hosting, en español. Logo con terminal, rama git, chip, servidor y casa.
PostedBluesky network

🚀 GitLab MCP Server, novedad: Dynamic Toolset Misma cobertura de la API, solo 3 tools visibles al arranque. ⚡ Tools individuales: ~550K tokens 🔥 Dinámico: ~2.2K Validado en 512 runs, 100% de acierto en Anthropic, Gemini, OpenAI y Qwen. 💻 github.com/jmrplens/gitlab-mcp-server #AI #MCP #GitLab

  • Banner técnico titulado 'GitLab MCP Server — Same GitLab API coverage. Far less MCP context', con tres columnas comparando el uso de tokens (individual, meta-tools, dinámico).
PostedBluesky network

🎉 cs-routeros-bouncer is now on the CrowdSec Hub! Connects CrowdSec to MikroTik: a malicious IP detected → blocked on your router in ms. ⚡ ~25k IPs in <3 min 📊 Prometheus + Grafana dashboard 🐳 Docker / systemd / binary 💻 github.com/jmrplens/cs-routeros-bouncer #CrowdSec #MikroTik #CyberSecurity

  • Architecture diagram: from Internet/attackers to CrowdSec, to the Go bouncer (Prometheus metrics, auto-sync), to the MikroTik router that filters traffic and protects the local network.
  • The bouncer's Grafana dashboard with panels for uptime, CrowdSec IPs (~28k), firewall traffic, blocked packets and remediations.
PostedBluesky network

🎓 New release of my LaTeX template for BSc/MSc theses (EPS, University of Alicante) — and reusable for much more: ✅ 21 official covers ✅ Syntax-highlighted code (minted 3.x) ✅ 50+ components ✅ Accessible PDFs ✅ TeX Live 2025 👉 github.com/jmrplens/TFG-TFM_EPS #LaTeX #OpenSource #TeX

  • A grid of 21 official BSc/MSc thesis covers from the University of Alicante, each in a different colour by degree.
  • Template PDF pages with syntax-highlighted code blocks (Python, JavaScript, Ruby) rendered with minted.
  • Template PDF pages with custom components: coloured callout boxes, a directory tree and a table of supported languages.
PostedBluesky network

🚀 GitLab MCP Server update: Dynamic Toolset Same full API coverage, only 3 tools visible at startup. ⚡ Individual tools: ~550K tokens 🔥 Dynamic: ~2.2K tokens Validated in 512 runs, 100% accuracy on Anthropic, Gemini, OpenAI & Qwen. 💻 github.com/jmrplens/gitlab-mcp-server #AI #MCP #GitLab

  • Technical banner titled 'GitLab MCP Server — Same GitLab API coverage. Far less MCP context', with three columns comparing token usage (individual, meta-tools, dynamic).
Posted: 🚀 Nuevo proyecto: GitLab MCP Server Conecta cualquier IA (Claude, Copilot, Cursor…) a toda la API de GitLab vía MCP. ⚡ 1006 tools — REST …Bluesky network
Posted: 🚀 New project: GitLab MCP Server Plug any AI assistant (Claude, Copilot, Cursor…) into the entire GitLab API via MCP. ⚡ 1006 tools — REST…Bluesky network
PostedBluesky network

Nuevo post: cómo montar un puente Tor en Linux 🧅 obfs4 + WebTunnel, camuflaje con Nginx, Prometheus y CrowdSec. La red tiene ~8.000 relays pero solo ~2.000 puentes — el punto de entrada más escaso para los censurados. 🌐 EN/ES → jmrp.io/blog/009-running-tor-bridge #Tor #Privacy #CyberSecurity

  • Cabecera del post 'Running a Tor Bridge': diagrama de las capas de cifrado onion (guard, middle, exit) desde un usuario censurado hasta la internet libre, con cifras — ~2K puentes, ~8K relays, 2,5M usuarios diarios, 98% uso normal.
PostedBluesky network

New post: how to run a Tor bridge on Linux 🧅 obfs4 + WebTunnel, Nginx camouflage, Prometheus & CrowdSec. The network has ~8,000 relays but only ~2,000 bridges — the scarcest entry point for censored users. 🌐 EN/ES → jmrp.io/blog/009-running-tor-bridge #Tor #Privacy #CyberSecurity

  • Header of the 'Running a Tor Bridge' post: a diagram of the onion encryption layers (guard, middle, exit) from a censored user to the free internet, with stats — ~2K bridges, ~8K relays, 2.5M daily users, 98% normal web use.
PostedBluesky network

🎉 cs-routeros-bouncer ya está en el CrowdSec Hub! Conecta CrowdSec con MikroTik: IP maliciosa detectada → bloqueada en el router en ms. ⚡ ~25k IPs en <3 min 📊 Dashboard Prometheus + Grafana 🐳 Docker / systemd / binario 💻 github.com/jmrplens/cs-routeros-bouncer #CrowdSec #MikroTik #CyberSecurity

  • Diagrama de arquitectura: de Internet/atacantes a CrowdSec, al bouncer en Go (métricas Prometheus, auto-sync), al router MikroTik que filtra el tráfico y protege la red local.
  • Dashboard de Grafana del bouncer con paneles de uptime, IPs de CrowdSec (~28k), tráfico de firewall, paquetes bloqueados y remediaciones.
PostedBluesky network

New on jmrp.io: an interactive WireGuard config generator for MikroTik 🛡️ Dual-stack IPv4+IPv6, firewall, NAT, keys and .conf files — all generated in your browser. 🔧 jmrp.io/tools/wireguard-config-generator #WireGuard #MikroTik #VPN

  • Web UI of the WireGuard config generator: a form with interface name, network, peers and options.
  • Generated RouterOS config for dual-stack WireGuard, with the interface, IPv4/IPv6 addresses and firewall rules, in a dark terminal.
PostedBluesky network

Nuevo en jmrp.io: generador interactivo de configuración WireGuard para MikroTik 🛡️ Dual-stack IPv4+IPv6, firewall, NAT, claves y archivos .conf — todo generado en tu navegador. 🔧 jmrp.io/tools/wireguard-config-generator #WireGuard #MikroTik #VPN

  • Interfaz web del generador de configuración WireGuard: formulario con nombre de interfaz, red, peers y opciones.
  • Archivo de configuración RouterOS generado para WireGuard dual-stack, con interfaz, direcciones IPv4/IPv6 y reglas de firewall, en terminal oscuro.