I run my own email, chat and file servers. I can set up yours.

Freelance systems engineer in Panama. Linux servers, networking, automation, and websites for small teams, set up with backups and written notes.

What runs on my servers

This site is served from ARM servers on Oracle Cloud that I set up and maintain. The same machines run:

Platform

Everything below runs as Docker Compose stacks on ARM servers on Oracle Cloud, with Ubuntu as the base OS.

  • Docker
  • Ubuntu
  • Oracle Cloud

Email

A full mail server with spam and virus filtering, webmail, and automatic setup for phone and desktop clients.

  • mailcow
  • Postfix
  • Dovecot

Chat and video calls

A Matrix homeserver with single sign-on, the Element apps, and group video calls.

  • Matrix
  • Element
  • LiveKit

Files and photos

File sync with calls and shared documents, plus a private photo library with search.

  • Nextcloud
  • Immich

Automation

Workflows that move data between forms, spreadsheets, databases, and WhatsApp messages.

  • n8n
  • Node-RED
  • WhatsApp

Databases

Shared database servers for the apps above, each with its own users and backups.

  • PostgreSQL
  • MariaDB
  • Redis

Edge and access

TLS, routing, and a private network for admin access. Secrets stay in a dedicated secrets manager.

  • Traefik
  • OpenResty
  • Cloudflare
  • Let's Encrypt
  • Tailscale

Backups go to S3-compatible storage through a small Python tool I wrote, and the whole setup is copied to a second server. See services

Background

I’m self-taught. Most of what I know about Linux, networking, and containers I learned by running it myself and fixing it when it broke, which is still how I learn anything new.

The server behind this page also runs my email, a Matrix chat server with video calls, file sync, a photo library, and the automations that connect them. I’m the only admin, so every upgrade, certificate renewal, and restore lands on my desk first. That habit carries over to client work.

How I work

I pick the smallest setup that does the job and write down how it fits together. Backups run from day one, credentials live in a secrets manager instead of a text file, and you keep the admin access. If you hire someone else later, they should be able to pick it up from the notes.

I also use AI coding tools daily. They speed up the typing; reading the code and owning the result is still my job.


“Adaptability is about the powerful difference between adapting to cope and adapting to win.” Max McKeown

Latest writing

All posts

Have a server or a site in mind?

Tell me what you run today and what you want to change. I read and answer every email myself.