~SETUP
The bench never closed.The bench never closed.
It started with opening computers to see how the parts fit. These are the parts I work with today: the desk, the agents, and the homelab that keeps every model I try one line of config away.
~/setupzsh
joao@porto ~ % neofetch
joao@porto
- OS:
- macOS
- Host:
- MacBook Pro (M1 Pro)
- Editor:
- Zed · Dracula
- Terminal:
- Ghostty
- Agents:
- pi → Cindelo
- Gateway:
- LiteLLM @ homelab
- Edge:
- Cloudflare R2 · MCP
joao@porto ~ %
01DESK
Where the work happens.
- U1
MacBook Pro
M1 Pro. I like MacBooks.
- U2
Zed
My editor, in Dracula.
- U3
Ghostty
My terminal.
- U4
pi
The coding agent in my terminal, until Cindelo takes over.
- U5
Cindelo
My own app: the agentic development environment I work in.
02HOMELAB
A home server on Docker Compose, deployed over SSH. The bench, still open.
- U6
LiteLLM
The gateway: every model I follow behind one endpoint, MCP servers included.
- U7
Docker
One compose file per service.
- U8
Pi-hole
DNS and ad blocking for the house.
- U9
Nginx
The reverse proxy in front.
- U10
Homarr
The dashboard.
- U11
Tailscale
How I reach it from anywhere.
- U12
Cloudflare
R2 for storage, and its MCP server behind the gateway.
03OFF THE CLOCK
Still competitive. Mostly for fun.
- U13
Switch & PS5
Nintendo Switch and PS5.