Self-Hosted Web Server

Server screenshot

About this project

This project is a complete setup of a personal self-hosted web server running on a (literally) headless Debian. It handles multiple websites and apps using NGINX as a reverse proxy, Cloudflared tunnels for secure public access, and HTTPS via Cloudflare with no open ports.

The server hosts various types of apps: static portfolio, PHP project, React/Next.js frontends, APIs and more. Each site is deployed in its own Docker container or NGINX block, using subdomains configured through Cloudflare DNS.

All the websites that you see on this portfolio are hosted on this server, including the portfolio itself.

Technologies

  • Debian 12 Headless
  • NGINX
  • Cloudflared tunnels
  • Cloudflare DNS
  • Docker
  • Docker Compose
  • PHP
  • MariaDB / MySQL
  • React / Next.js

Key Features

  • NGINX reverse proxy for routing requests
  • Multi-site hosting on a single server
  • Secure public access via Cloudflared tunnels
  • HTTPS for all sites via Cloudflare
  • Dockerized frontend/backend apps
  • SSH access secured via tunnel
  • No open ports on the server