Infrastructure

Homelab

I maintain a homelab to support decentralized networks, personal infrastructure, and continuous learning. Below is the real-time status of my public services.

Live · injected at serve time · 2026-11-02 11:09 UTC+1

Everything described here runs on hardware I own and pay for, on a domestic fibre line in Valencia, Spain — not on a managed platform. The router is a MikroTik RB5009 terminating the ISP link over PPPoE with a delegated IPv6 prefix; the services sit behind it on mini PCs and a NAS, with two VPS for the parts that need to be reachable when the house is not.

The self-hosted services include a Mastodon instance, a Matrix homeserver, an AT Protocol PDS, file sync, media streaming and monitoring. Four Tor nodes run alongside them: two bridges speaking obfs4 and WebTunnel, one in Valencia and one in Alicante, and two middle relays on IONOS VPS instances, one in London and one in Madrid.

Security is one pipeline rather than a set of unrelated rules. A honeypot on the router turns a scanner's first packet into an address-list entry, nginx tarpits and pattern matches on the web tier, both feed CrowdSec, and CrowdSec drives bouncers back on the router and the reverse proxy. The counters above report what that pipeline is stopping. The figures are injected into this page by the edge server itself as it responds — no JavaScript involved — so every reader and every crawler sees the same numbers, stamped with the time they were captured.

4 / 4

services online

9,027

active connections

260,125

requests · 24h

↑ 109 GB↓ 153 GB

WAN traffic · 24h

Edge Defense

router + nginx
4,594threats blocked · 24h

CrowdSec acts as a WAF: it analyses NGINX patterns and, together with the router honeypot, decides which IPs to block. Decisions fan out to every bouncer: NGINX, the server's firewall and the router via my cs-RouterOS-bouncer.

910Honeypot hits
3,374Tarpit Hits
310Nginx Bans
4,785CrowdSec · blocked IPs

MikroTik honeypot + NGINX patterns → CrowdSec · WAF → bouncers (NGINX / firewall / router)

MikroTiknetwork layer · honeypot
Blacklisted scanners
935
Packets dropped · 24h
18,237
On router blocklist
4,785
Attack Regions
  • US — 4,686 hits
  • BG — 4,672 hits
  • DE — 3,255 hits
  • FR — 3,136 hits
CrowdSec + NGINXapplication layer · WAF
Nginx Bans
310
Distinct IPs · 24h
32
Attack Regions
  • AU — 936 hits
  • US — 460 hits
  • FR — 392 hits
  • NL — 368 hits

Public services

Online

Mastodon

A decentralized social network server. Part of the Fediverse.

20,334Known Instances
5.0.0-alpha.2Mastodon
Visit mstdn.jmrp.io
Online

Matrix

Secure, decentralized communication. My Server: matrix.jmrp.eu

7,007Known Servers
1.163.2Synapse
Chat on Matrix
Online

AT Protocol

My self-hosted Personal Data Server on the AT Protocol network — the identity and data behind @jmrp.eu on Bluesky.

—Records
0.4.5051PDS
View on Bluesky
Online

MCP

Model Context Protocol servers I run and expose publicly, so an AI client can call them over HTTP without installing anything.

  • mcp.jmrp.io/gitlab v3.4.0 · 3/3 instances
  • mcp.jmrp.io/libgen v2.2.1 · 3/3 instances
Open mcp.jmrp.io

Tor Network · 4 nodes

4monitored nodes
705,225inbound connections · 24h
27 MB/slive traffic
2.1 TBrelayed traffic · 24h
Running

Tor Bridge (ES0)

Pluggable transport bridge helping censored users access the Tor network from Valencia. Running obfs4 and WebTunnel.

12,081Connections (24h)

LocationValencia, Spain
Adv. Bandwidth9.4 MB/s
View on Tor Metrics
Running

Tor Bridge (ES1)

Pluggable transport bridge helping censored users access the Tor network from Alicante. Running obfs4 and WebTunnel.

109,625Connections (24h)

LocationAlicante, Spain
Adv. Bandwidth3.0 MB/s
View on Tor Metrics
Running

Tor Relay (UK)

Middle relay forwarding encrypted traffic within the Tor network from United Kingdom.

97,704Peers (24h)

LocationVPS (United Kingdom)
Adv. Bandwidth8.5 MB/s
View on Tor Metrics
Running

Tor Relay (ES)

Middle relay forwarding encrypted traffic within the Tor network from Madrid.

485,815Peers (24h)

LocationVPS (Madrid, Spain)
Adv. Bandwidth20 MB/s
View on Tor Metrics

Infrastructure · 5 nodes

live load · injected at serve time

NGINX Edge

Reverse proxy · firewall

Optimal
CPU11.1%
RAM39.3%
Temp · High load87°C

Matrix Homeserver

Synapse

Optimal
CPU1.9%
RAM33.9%
Temp · Optimal59°C

Mastodon

Fediverse instance

Optimal
CPU16.6%
RAM40.2%
Temp · Optimal76°C

TrueNAS

ZFS storage

Optimal
CPU45.9%
RAM78.9%
Temp · Optimal59°C

Edge Router

MikroTik · CrowdSec

Optimal
CPU6.0%
RAM25.0%
Temp · Optimal43°C

Frequently asked questions

What runs on this homelab?

A TrueNAS server (i5-14400, 64 GB, ZFS on 2× 18 TB plus NVMe), a Mastodon node (Ryzen 5 3550H, 64 GB), the nginx edge node that serves this site (Ryzen 5 5500U), a Home Assistant node, a MikroTik RB5009 router, two Tor bridges in Valencia and Alicante and two Tor relays on VPS in London and Madrid. On them: a Mastodon instance, a Matrix homeserver, a Bluesky PDS and the public MCP servers.

Are the figures on this page live?

Yes. The page is static HTML with no JavaScript; nginx replaces each figure at serve time from the homelab's own metrics (InfluxDB, Prometheus and the services' APIs), refreshed at most once a minute. When a source cannot be read, the figure shows a dash rather than a number.

How is the homelab defended?

CrowdSec analyses nginx traffic and, together with a honeypot on the router, decides which addresses to block; the decisions reach three bouncers: nginx, the server's firewall and the router through cs-routeros-bouncer. Probes for sensitive paths land in a tarpit that slows them down instead of answering.