DevOps & Server Setup
VPS configuration, Docker, Nginx, SSL, CI/CD pipelines, firewall, monitoring and multi-domain production hosting on a single server.
About This Project
I set up and manage production server infrastructure for web applications — from a fresh VPS to a fully running multi-domain deployment with automated deploys, SSL, monitoring and security hardening.
What a typical server setup includes: Ubuntu VPS provisioning (Hetzner, DigitalOcean, Vultr, or any provider), Docker and Docker Compose for containerizing the app, database, Redis and any other services, Nginx as a reverse proxy with proper headers, compression and caching, Let's Encrypt SSL certificates with automatic renewal via Certbot, systemd services for process management with auto-restart on crash, UFW firewall with only necessary ports open, fail2ban for brute-force protection, log rotation and journalctl setup, and SSH key hardening.
CI/CD pipelines I build: GitHub Actions workflows that run tests, build Docker images, push to a registry and SSH-deploy to the server on every push to main. Zero-downtime deploys using rolling restarts or blue-green switching.
Multi-domain hosting: I regularly run multiple independent projects on a single VPS using separate Nginx server blocks and Docker Compose stacks. Each project has its own domain, SSL cert, environment variables and deploy process — completely isolated from the others.
Monitoring: uptime checks with Telegram alerts when a service goes down, disk and memory usage alerts, application log monitoring for error spikes.
I run this setup in production for my own projects (toolpix.dev, devportfolio.dev and others) on a shared Hetzner CPX21 — so this is not theoretical knowledge, it is what I actually operate every day.