Back to Portfolio

Docker Server

A remote Arch Linux host running containerized services, HTTPS routing, and a Git-based deployment flow.

Docker Traefik Nginx Forgejo Grafana Portainer

Tip: click a screenshot thumbnail to view it larger.

Project screenshot

Screenshots: Portainer, Traefik dashboard, Grafana dashboard

Role
Owner / Developer / Operator
Tech Stack
Arch Linux, Docker Compose, Traefik, Nginx, Forgejo, Grafana, Portainer, Vaultwarden, Gonic, Nextcloud, Wiregaurd

Overview

Hosting my own docker server has not only been a valuable learning experience, but has also proved very useful for hosting personal projects and experimenting. I host services such as Nextcloud and Vaultwarden that I use daily, for file syncing between devices and password management respectively.

The server hardware is nothing special. I used an HP Compaq 8200 Elite SFF PC from 2011 that I bought used for 20$. I upgraded the RAM to 32GB at 1333 MT/s with 4 8GB RAM sticks I bought from a recycler in Fresno. I also added roughly 4TB of hard drives. This hardware is a good start and I have not ran into any performance issues with my current configuration, however I would like to upgrade in the future.

Containers

  • Traefik: reverse proxy + TLS termination + routing to containers
  • Nginx: a web server for hosting this website and more
  • Forgejo: self-hosted Git forge (public code visibility)
  • Nextcloud: cloud file system for storing personal files and syncing between devices
  • Gonic: a Subsonic music streaming server that I use to access my digital music across devices
  • Grafana: a dashboard to visualize and monitor server resources
  • Vaultwarden: self-hosted password manager for securely accessing passwords across devices.
  • Wiregaurd: a VPN server that allows me to connect to my server's network from anywhere to do things like maintenance and configuration.
  • Home Assistant: I use this to automatically control my LED light strips
  • Portainer: a web UI for managing Docker containers