Infrastructure tutorials
Production-grade guides for Linux, servers, security and performance. Copy-paste commands, multi-distro support, written by engineers who run this in production.
Browse by topic
Linux
System administration, shell scripting, package management
Hosting & Servers
Web servers, reverse proxies, SSL, domains
Security
Firewalls, hardening, encryption, access control
Performance
Caching, optimization, profiling, load testing
Databases
MySQL, PostgreSQL, Redis, backups, replication
Networking
DNS, load balancing, VPN, TCP/IP, routing
DevOps
CI/CD, Docker, Kubernetes, automation
Monitoring
Logging, alerting, metrics, observability
Most viewed
Install and configure Deno for web development with systemd and reverse proxy
hostingInstall and configure Caddy web server with automatic HTTPS and reverse proxy
hostingInstall and configure Uvicorn ASGI server with systemd and reverse proxy for FastAPI applications
hostingInstall and configure Ollama for local AI models on Linux servers
devopsInstall and configure Uptime Kuma for website monitoring with SSL and email alerts
monitoringRecently published
Configure custom SNMP MIBs for vendor-specific monitoring with SNMP v2c and v3
monitoringImplement NGINX Plus active health checks for enterprise environments
hostingSetup Prometheus Blackbox Exporter for endpoint monitoring with SSL and alerting
monitoringConfigure Prometheus alerting with AlertManager notifications and webhook integration
monitoringConfigure Elasticsearch cross-cluster replication for disaster recovery
databasesSet up Redis monitoring with Prometheus and Grafana dashboards
Configure comprehensive Redis monitoring using Prometheus Redis Exporter and Grafana dashboards. Monitor Redis performance metrics, memory usage, connections, and replication status with automated alerts for production environments.
Setup Caddy with Consul service discovery for dynamic load balancing
Configure Caddy web server to automatically discover backend services through Consul, enabling dynamic load balancing without manual configuration updates. This setup provides high availability and automatic failover for microservices architectures.
Setup Tomcat 10 clustering with HAProxy load balancing for high availability
Configure Apache Tomcat 10 clustering with HAProxy load balancing to distribute traffic across multiple application server instances. Implement session replication and automatic failover for production-grade Java web applications with high availability and zero-downtime deployments.
Set up Node.js application security with Helmet and rate limiting
Secure your Node.js Express applications against common vulnerabilities with Helmet.js middleware and implement rate limiting to prevent abuse and DDoS attacks.
Configure GitLab SAML authentication with Keycloak for enterprise SSO
Set up single sign-on (SSO) authentication between GitLab and Keycloak using SAML 2.0 protocol. This enables centralized user management and secure authentication for your GitLab instance through your existing identity provider infrastructure.
Implement Varnish cache warming with automated content preloading for high-performance websites
Set up automated Varnish cache warming with priority URL preloading, systemd timers for scheduled content refreshing, and comprehensive monitoring to optimize cache hit rates and reduce backend server load for high-traffic websites.
Deploy Django application with Gunicorn and PostgreSQL database migrations
Learn how to deploy a production-ready Django application with Gunicorn WSGI server, PostgreSQL database, and automated database migrations on Ubuntu, Debian, AlmaLinux, and Rocky Linux systems.
Configure Linux environment variables and PATH management for development workflows
Learn how to properly configure Linux environment variables and manage your PATH for development workflows. This guide covers temporary and persistent variables, user vs system-wide configuration, and troubleshooting common issues across Ubuntu, Debian, AlmaLinux, Rocky Linux, and Fedora.
Configure Linux user session limits with systemd and pam_limits for resource management
Set up comprehensive user session resource limits using systemd and PAM to prevent resource exhaustion, fix 'too many open files' errors, and enforce memory, CPU, and process restrictions for better system stability.
Install and configure Gunicorn application server with systemd and reverse proxy for Python web applications
Deploy Python web applications in production using Gunicorn WSGI server with systemd service management and Nginx reverse proxy. Includes performance tuning, security hardening, and monitoring setup.
Optimize HAProxy performance with connection pooling and advanced load balancing algorithms
Configure HAProxy with connection pooling, advanced load balancing algorithms, and performance tuning for high-throughput workloads. Learn to implement least-conn, URI hashing, and buffer optimization.
Set up BGP routing with FRRouting for dynamic network routing and failover
Configure BGP routing with FRRouting to implement dynamic network routing, automatic failover, and high availability for enterprise network infrastructure with route filtering and policy management.
Need help?
Don't want to manage this yourself?
We handle infrastructure for businesses that depend on uptime. From initial setup to ongoing operations.
Talk to an engineer