Infrastructure Project

Self-Hosted Infrastructure

A personal infrastructure stack built around TrueNAS, Docker, Caddy, Cloudflare Tunnel, Uptime Kuma, Pterodactyl, and self-hosted services. The goal is to run practical services from my own hardware while learning networking, monitoring, storage, and system administration.

TrueNAS Docker Caddy Cloudflare Tunnel Uptime Kuma
Project Purpose

This project is my personal server and services environment. It hosts my website, game server panel, photo service, status monitoring, and supporting infrastructure. It is designed to be practical, maintainable, and useful rather than just a lab demo.

  • Host public and private web services from home infrastructure
  • Learn and document networking, containers, reverse proxying, and monitoring
  • Use Cloudflare Tunnel to expose services without opening standard inbound ports
  • Monitor service availability with Uptime Kuma and a public status page
TrueNAS

TrueNAS is used as the base storage and server platform. It provides the underlying datasets, storage organisation, and host environment for application data and services.

Storage Datasets Server
Docker Services

Services are run as containers where practical, allowing the stack to be separated into individual applications such as Caddy, Uptime Kuma, Pterodactyl, and photo hosting.

Containers Services Compose
Caddy

Caddy is used for local web serving and reverse proxy style routing. It serves the static website files and integrates neatly with the hosted service layout.

Web Server Reverse Proxy
Cloudflare Tunnel

Cloudflare Tunnel provides external access to services such as the website, status page, game panel, and photos without relying on normal port forwarding for each service.

DNS Tunnel Access
Personal Website

Static engineering portfolio and service hub hosted from the webserver directory and exposed publicly through Cloudflare Tunnel.

HTML/CSS Caddy
Game Server Portal

Pterodactyl is exposed through Cloudflare Tunnel and currently manages a dedicated 7 Days to Die server, including start/stop access, server management, and backup workflows.

Pterodactyl Game Hosting
Photos

Self-hosted photo service for personal image management and gallery access, exposed through the photos subdomain.

Photos Self-hosted
Status Monitoring

Uptime Kuma monitors public services and provides a status page for visibility into website, game panel, photo service, and infrastructure availability.

Uptime Kuma Monitoring
Public Hostnames

The system is organised around subdomains that point to specific internal services through Cloudflare Tunnel.

  • jacksonvoigt.com → main website served by Caddy
  • panel.jacksonvoigt.com → Pterodactyl game server portal
  • photos.jacksonvoigt.com → self-hosted photo service
  • status.jacksonvoigt.com → Uptime Kuma public status page
Monitoring Strategy

Uptime Kuma checks critical endpoints and gives a simple overview of whether the hosted services are online. This also makes the website feel more like a live system rather than a static page.

  • HTTP checks for websites and hosted services
  • TCP checks for game server ports where needed
  • Public status page for external visibility
  • Future option for Discord or email alerts
Planned Additions

This project can be expanded with diagrams, screenshots, network maps, backup strategy, service uptime statistics, and hardware details.

  • Add hardware/server specifications
  • Add network and service routing diagram
  • Add backup/snapshot strategy
  • Add screenshots of Uptime Kuma, Pterodactyl, and service dashboards
  • Add lessons learned and troubleshooting notes