█click or press any key to skip
$ ssh andrea@homelab
HOMELAB_
One mini PC under a desk. A Minecraft server, a CMS in the making, a manga library, a media server and everything I learned by failing countless times.
- machine
- 1
- threads
- 12
- RAM
- 32 GB
- VM
- 2
- services
- 7
- backups
- 84
The stack / 01 / 04
HARDWARE_
One mini PC under a desk.
- i5-10500
- 6C / 12T
- 32 GB RAM
- NVMe
Network / Who goes where
THREE DOORS_
Readers, players and the team all end up on the same box, but none of them uses the same way in. Each door only opens onto what it's meant for.
- web / HTTPS
- game tunnel
- private network
Community / Minecraft
FANDECRAFT_
A Minecraft server for the community, running 24/7 on the same box.
In October it hosted an event: build a temple for your oshi. The server list counted down to the end, everyone wore their oshi's tag in chat, and at midnight on the last day a script closed the doors and archived the world.
- Version
- Minecraft 26.3
- Server
- Paper 1.21
- Slots
- 50, survival
- Memory
- up to 15 GB
- GC
- ZGC
- Uptime
- Restart=always

FandeCraft - Evento Costruisci il tempio della tua Oshi!
Evento: termina tra 9g 10h 21m 00s
Custom plugins
> /oshiOshiCountdown
Pick your oshi from a clickable list: the tag shows up next to your name in chat and in the tab list. It also put a live countdown to the end of the event straight into the server list.
> /tpaFandeTPA
Ask to teleport to a friend, they get clickable Accetta / Rifiuta buttons. 3 seconds of warm-up (move and it's cancelled), requests expire after 60.
> sneak + axeTreeFeller
Break a log while sneaking and the whole tree comes down. Only natural trees, up to 256 logs, and it stops before your axe breaks.
Hold Shift (or tap SNEAK), then hit the bottom log.
Backups
A server full of temples deserves a safety net.
| 00 | 02 | 04 | 06 | 08 | 10 | 12 | 14 | 16 | 18 | 20 | 22 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| -6d | ||||||||||||
| -5d | ||||||||||||
| -4d | ||||||||||||
| -3d | ||||||||||||
| -2d | ||||||||||||
| -1d | ||||||||||||
| today |
The quiet VM
FANDEMONIO VM_
Its own Debian VM, with 2 vCPU, 6 GB of RAM and a dedicated NVMe, just for the Fandemonio CMS. MySQL is already running, and the team works on it over Tailscale and VS Code Remote. Strapi, Nuxt and a gateway come next.
THE FULL FANDEMONIO STORY →$ ssh fandemonio-vm fandemonio-vm:~$ cat TODO [x] mysql [x] tailscale + vs code remote [ ] strapi [ ] nuxt [ ] gateway + https [x] convince everyone MySQL > SQL Server
Lessons / The hard way
INCIDENT LOG_
Every homelab is a collection of mistakes that were fixed. Here are some of mine, written up like tickets, because old habits.
- INC-001RESOLVED
/stop does not stop.
The server runs with Restart=always, so stopping it from inside the game just restarts it. Great for uptime, confusing at 1 AM. The real off switch is systemctl.
- INC-002RESOLVED
SQL Server was already there.
Strapi doesn't support it. Found out early, flagged it, moved the CMS to MySQL before anyone built on top of the wrong thing.
- INC-003RESOLVED
The event ended at midnight.
A scheduled script closed the October event at 00:00 sharp and archived the world. Nobody had to stay up for it: automation means not setting an alarm.
- INC-004RESOLVED
Java and memory had a talk.
Up to 15 GB for one Minecraft server, and the garbage collector switched to ZGC. A full server deserves smooth ticks.