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 Ollama for local AI models on Linux servers
devopsInstall and configure Uvicorn ASGI server with systemd and reverse proxy for FastAPI applications
hostingInstall and configure Uptime Kuma for website monitoring with SSL and email alerts
monitoringRecently published
Setup Node.js error tracking with Sentry for production monitoring and debugging
monitoringImplement Node.js application monitoring with Prometheus metrics and Grafana dashboards
monitoringImplement OSPF multi-area design with FRRouting and advanced routing policies
networkingConfigure Istio security policies with external authorization services integration
securityImplement Docker network security with custom bridge networks and container isolation
securityConfigure TimescaleDB automated data retention policies for efficient storage management
Set up automated data retention and compression policies in TimescaleDB to optimize storage usage and maintain database performance. Learn to configure drop_chunks and compression policies with monitoring.
Monitor PostgreSQL performance with pg_stat_statements extension for query analysis and optimization
Set up pg_stat_statements extension to collect query statistics, analyze slow queries, and optimize PostgreSQL database performance with automated monitoring alerts.
Configure Linux transparent huge pages and memory optimization for database workloads
Learn to configure transparent huge pages (THP) and optimize Linux memory management for database workloads. Covers THP disable/enable strategies, performance monitoring, and automation with systemd.
Configure Tomcat 11 database connection pooling with JNDI and HikariCP for high availability
Set up production-grade database connection pooling in Tomcat 11 using JNDI resources and HikariCP for optimal performance and high availability. Learn to configure server.xml, context.xml, and monitor connection pools effectively.
Monitor Django applications with Prometheus and Grafana for comprehensive performance insights
Set up comprehensive Django application monitoring using Prometheus metrics collection and Grafana dashboards. Configure django-prometheus middleware to track request metrics, database queries, and application performance with real-time alerting.
Monitor PostgreSQL performance with Prometheus and Grafana dashboards
Set up comprehensive PostgreSQL monitoring using Prometheus PostgreSQL exporter and Grafana dashboards. Configure performance metrics collection, visualization, and alerting for database optimization and troubleshooting.
Benchmark and optimize Linux disk I/O performance with fio testing
Learn how to benchmark disk I/O performance using fio (Flexible I/O tester) to identify storage bottlenecks and optimize your Linux system's disk performance through comprehensive read/write testing and analysis.
Optimize Linux filesystem performance with mount options and I/O schedulers
Learn to optimize Linux filesystem performance by configuring I/O schedulers, tuning ext4 mount options, and monitoring disk performance with iostat and iotop for high-throughput workloads.
Configure Linux system resource limits with systemd and ulimit for application performance
Learn to configure Linux system resource limits using systemd, ulimit, and /etc/security/limits.conf to prevent application failures from resource exhaustion. Master per-user, per-service, and system-wide limits for optimal performance.
Optimize MySQL query performance with indexes and query profiling for high-traffic applications
Learn how to dramatically improve MySQL query performance using proper indexing strategies, query profiling tools, and InnoDB optimization techniques. This tutorial covers slow query log analysis, EXPLAIN plan interpretation, and memory tuning for production databases.
Configure Linux memory management and swap optimization for high-performance workloads
Optimize Linux memory subsystem performance through advanced swap configuration, virtual memory tuning, and memory compression techniques. Learn to configure transparent huge pages, zram, and application-specific memory settings for high-performance workloads.
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