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 · 11:35 UTC+2

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.

3 / 4

services online

6,872

active connections

275,411

requests · 24h

↑ 93 GB↓ 138 GB

WAN traffic · 24h

Edge Defense

router + nginx
2,065threats 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.

931Honeypot hits
1,029Tarpit Hits
105Nginx Bans
3,693CrowdSec · blocked IPs

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

MikroTiknetwork layer · honeypot
Blacklisted scanners
940
Packets dropped · 24h
11,618
On router blocklist
3,693
Attack Regions
  • DE — 3,590 hits
  • CA — 2,237 hits
  • BG — 1,741 hits
  • US — 860 hits
CrowdSec + NGINXapplication layer · WAF
Nginx Bans
105
Distinct IPs · 24h
18
Attack Regions
  • BE — 383 hits
  • US — 250 hits
  • DE — 98 hits
  • BG — 96 hits

Public services

Online

Mastodon

A decentralized social network server. Part of the Fediverse.

19,248Known Instances
4.8.0-alpha.2Mastodon
Visit mstdn.jmrp.io
Offline

Matrix

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

Known Servers
1.159.0Synapse
Chat on Matrix
Online

AT Protocol

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

228Records
0.4.5034PDS
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.0.0 · 3/3 instances
  • mcp.jmrp.io/libgen v1.7.2 · 3/3 instances
Open mcp.jmrp.io

Tor Network · 4 nodes

4monitored nodes
inbound connections · 24h
live traffic
relayed traffic · 24h
Running

Tor Bridge (ES0)

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

9,144Connections (24h)

LocationValencia, Spain
Adv. Bandwidth7.0 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.

Connections (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.

Peers (24h)

LocationVPS (United Kingdom)
Adv. Bandwidth10.0 MB/s
View on Tor Metrics
Running

Tor Relay (ES)

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

Peers (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
CPU1.4%
RAM27.0%
Temp · Optimal59°C

Matrix Homeserver

Synapse

CPU
RAM
63°C

Mastodon

Fediverse instance

Optimal
CPU17.7%
RAM38.3%
Temp · Optimal63°C

TrueNAS

ZFS storage

Optimal
CPU50.4%
RAM78.1%
Temp · Optimal63°C

Edge Router

MikroTik · CrowdSec

Optimal
CPU5.0%
RAM28.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.