엔지니어 레퍼런스
Linux, Docker, Git, 네트워킹, 보안 설정 등 실무에서 바로 써먹는 기술 가이드 모음.
분야별 탐색
최근 가이드140
Kubernetes RBAC Complete Guide — Controlling Permissions with Role, RoleBinding, and ServiceAccount
How to minimize cluster permissions with Role, ClusterRole, bindings, and ServiceAccount. Covers kubectl auth can-i debugging and least-privilege examples for CI deployments.
The Complete Guide to PostgreSQL Privilege Management — Roles, GRANT, REVOKE, and Schema Privileges
A role is both a user and a group; privileges stack in three layers (database → schema → table); DEFAULT PRIVILEGES covers tables that do not exist yet. Design read-only accounts and least privilege with production-ready SQL.
keepalived VRRP Complete Guide — High Availability with Virtual IP Failover
Share a virtual IP across nodes with VRRP so traffic fails over without downtime when the master dies. Covers MASTER/BACKUP setup, vrrp_script health checks, and split-brain prevention for production.
Ansible Basics — Automating Servers with Inventory, Playbooks, and Modules
Codify server configuration with agentless Ansible. This guide walks through the core flow of idempotent automation—inventory, ad-hoc commands, playbooks, handlers, and roles—with practical examples.
The Complete git bisect Guide — Find the Commit Where a Bug First Appeared with Binary Search
Pinpoint where a regression was introduced among hundreds of commits using binary search. Covers manual bisect, automating with git bisect run, exit-code rules, and custom test scripts.
AWS Route 53 — Complete Guide to DNS, Routing Policies, and Health Checks
Covers Route 53 hosted zones and record types, plus simple, weighted, latency, failover, and geolocation routing policies with health checks. A practical guide to managing records with the AWS CLI and configuring failover and traffic distri
Practical Modern CLI Tools — Speed Up Your Work with ripgrep, fd, fzf, and bat
Compares ripgrep (rg), fd, fzf, and bat with classic tools like grep, find, and cat, covering installation, basic usage, and shell integration. A practical guide to speeding up terminal work with fast search, intuitive syntax, a fuzzy finde
Complete logrotate Guide — Automatic Log Rotation and Compression
This guide explains how to automatically rotate, compress, and retain log files with logrotate. It covers the /etc/logrotate.conf and /etc/logrotate.d layout, the rotate, size, compress, and postrotate directives, copytruncate vs create, cr
Complete Git LFS Guide — Version Control for Large Files
How Git Large File Storage (LFS) works, plus installation, tracking patterns with git lfs track, .gitattributes management, history migration, partial checkout, and repository size control—everything you need to handle large files in Git.
Jenkins Pipeline Basics — Building CI/CD with Declarative Pipeline
This guide explains Declarative Pipeline syntax with a Jenkinsfile from the ground up. It covers the agent, stages, and steps structure, environment variables, parallel builds, post blocks, credential management, and shared libraries so you
Diagnosing TIME_WAIT Socket Exhaustion — TCP Connection States and Kernel Tuning
Why TIME_WAIT exists in the TCP state machine, how to diagnose it with ss, its relationship to ephemeral port exhaustion, tcp_tw_reuse vs. the removed tcp_tw_recycle, and SO_REUSEADDR—covered accurately for practitioners.
Wireshark Packet Analysis in Practice — Display Filters and Traffic Debugging
A practical debugging walkthrough centered on the Wireshark GUI: capture vs. display filters, essential display filters, Follow TCP Stream, Expert Information, IO Graphs, and tshark CLI usage.
HashiCorp Vault Basics — Secret Management and Dynamic Credentials
Covers HashiCorp Vault core concepts (seal/unseal, tokens, policies, secrets engines) and walks through KV v2 static secrets, database dynamic credentials, and AppRole authentication.
Building a BIND9 DNS Server — A Complete Guide to Running an Authoritative Nameserver
Set up an authoritative nameserver with BIND9. Covers named.conf layout, forward and reverse zone files, SOA/NS/MX records, master/slave zone transfers, and DNSSEC basics.
Caddy Web Server — A Complete Guide to Automatic HTTPS Reverse Proxying
A practical operations guide covering Caddy's automatic HTTPS (ACME), Caddyfile syntax, reverse proxying, headers, compression, logging, and zero-downtime configuration via the API.
Grafana Dashboards — Prometheus Integration and Alerting Setup
Connect a Prometheus data source to Grafana and build panel dashboards. Covers provisioning automation, template variables, Grafana unified alerting rules, and contact points from a practitioner’s perspective.
Prometheus + Node Exporter — Building Server Metrics Monitoring
Collect CPU, memory, disk, and network metrics from Linux servers with Prometheus and Node Exporter. Configure scrape_configs, PromQL queries, recording rules, and retention policy to production standards.
PostgreSQL VACUUM and autovacuum — Diagnosing and Tuning Table Bloat
Diagnose dead tuples and table bloat caused by PostgreSQL's MVCC, and tune VACUUM/autovacuum parameters. Covers pg_stat_user_tables, wraparound prevention, and alternatives to VACUUM FULL.
Redis Sentinel — High Availability and Automatic Failover Setup
Configure Redis Sentinel for master-replica monitoring, automatic failover, and service discovery. A hands-on walkthrough of quorum behavior, client integration, and operational pitfalls.
MySQL Replication — Complete Guide to Master-Slave High Availability
A practitioner’s walkthrough of building Master-Slave (Source-Replica) high availability with MySQL/MariaDB binlog replication, covering GTID, semi-sync, lag diagnosis, and failover.
Diagnosing Kubernetes Pod CrashLoopBackOff — Complete Fixes by Cause
Understand what CrashLoopBackOff actually means and how backoff works, then walk through a systematic diagnosis and fix for each cause—exit codes, logs, probes, OOMKilled, missing config, and more.
Docker Swarm Cluster — A Complete Guide to Service Deployment and Scaling
Build a manager/worker cluster with Docker Swarm and practice service deployment, scaling, rolling updates, overlay networks, and secrets from an operations perspective.
Kubernetes HPA Autoscaling — Resource-Based Automatic Pod Scaling
A practical guide covering metrics-server installation, HorizontalPodAutoscaler setup with CPU/memory and custom metrics, scaling behavior tuning, and troubleshooting.
Kubernetes ConfigMap and Secret — A Complete Guide to Managing Configuration and Sensitive Data
Separate configuration and sensitive data from container images with ConfigMaps and Secrets, covering practical patterns such as env/volume injection, auto-reload, and encryption.
Complete Kubernetes Ingress Guide — Routing External Traffic with the Nginx Ingress Controller
Install the Nginx Ingress Controller and learn practical Ingress setup step by step: host- and path-based routing, TLS termination, rewrites, and authentication.
MSSQL Log Shipping — Disaster Recovery Redundancy Setup
Set up a Primary–Secondary DR configuration with SQL Server Log Shipping, and practice scheduling backup, copy, and restore jobs plus monitoring.
MSSQL Always On Availability Groups — SQL Server HA Redundancy Configuration
This guide walks through configuring Primary–Secondary redundancy with SQL Server Always On Availability Groups, including automatic failover and read-only routing.
Building a PostgreSQL Automatic Failover HA Cluster with Patroni and etcd
Configure a 3-node PostgreSQL HA cluster with Patroni and etcd, including automatic failover when the Primary fails and HAProxy-based load balancing.
PostgreSQL Streaming Replication — Primary/Replica High Availability Setup
Configure Primary–Replica high availability with PostgreSQL Streaming Replication, and learn WAL-based real-time synchronization and failover principles through hands-on practice.
Zombie Processes · OOM Killer — Diagnosis and Prevention
Covers why zombie processes appear and how to find the parent to clean them up, plus how to detect, prevent, and tune OOM Killer priority, and how to cap memory with cgroups.
Diagnosing DNS Resolution Errors — nslookup · dig · systemd-resolved
How to diagnose and fix DNS issues such as lookup failures, cache pollution, and incorrect nameserver configuration using nslookup, dig, host, and systemd-resolved.
Diagnosing I/O Bottlenecks — iostat · iotop · blktrace
Learn how to check disk I/O utilization with iostat, find I/O-heavy processes with iotop, and measure storage performance with blktrace and fio.
Slow Query Analysis — pg_stat_statements · MySQL Slow Log
How to find slow queries with PostgreSQL pg_stat_statements, diagnose index issues using the MySQL slow query log and EXPLAIN ANALYZE, and optimize your queries.
PgBouncer Connection Pooling — PostgreSQL Performance Optimization
Covers installing and configuring PgBouncer, choosing a pooling mode (session/transaction/statement), setting up user authentication, and using monitoring queries to cut PostgreSQL connection counts and improve performance.
MySQL Basics — Installation, Users, Privileges, and Essential Queries
Covers MySQL operational basics: installation, root security hardening, creating users and databases, granting privileges, essential CRUD queries, and configuration file tuning.
Azure Basics — Getting Started with VMs, Storage, and Networking
A hands-on walkthrough of core Azure services: installing the Azure CLI, creating resource groups and VMs, storage accounts, virtual networks, and NSG configuration.
AWS CloudWatch — Practical Monitoring, Alarms, and Log Collection
Covers how to query CloudWatch metrics, publish custom metrics, configure alarms, query logs with Logs Insights, and build dashboards for EC2, Lambda, and RDS.
AWS Lambda Basics — Writing and Deploying Serverless Functions
An introduction to serverless covering how to create Lambda functions, connect triggers (API Gateway, S3, EventBridge), configure environment variables, IAM roles, and layers, and deploy with the CLI.
AWS VPC Network Design — Subnets, Routing, and Security Groups
Explains how to build an AWS network: create a VPC, design public and private subnets, and configure an Internet Gateway, NAT Gateway, route tables, security groups, and NACLs.
Centralizing Logs with rsyslog — Remote Collection and Filtering
This guide explains how to collect logs from multiple servers onto a central server with rsyslog, configure filtering, parsing, and forwarding rules, and route logs to Elasticsearch or files.
AppArmor Basics — A Practical Guide to Restricting Process Privileges
Covers AppArmor modes, applying and disabling existing profiles, creating new profiles with aa-genprof, log analysis, and Nginx and MySQL profile examples.
Hardening Server Security with Nmap Port Scans: A Practical Guide
Explains how to detect open ports, services, and operating systems with nmap, how to self-audit server security, and how to interpret scan results.
NFS · Filesystem Mounting — A Complete Guide to /etc/fstab
A practical guide to Linux filesystem mounting: NFS server and client setup, persistent mounts with /etc/fstab, UUID-based disk mounts, tmpfs, bind mounts, and more.
systemd timers — A complete guide to replacing cron
How to schedule recurring jobs with systemd timer units, configure failure notifications, logs, and delayed execution, plus the trade-offs versus cron.
SSH Port Forwarding and Tunneling: A Complete Guide
How to reach databases and Redis with local port forwarding, expose an internal server with remote port forwarding, and set up a SOCKS proxy with dynamic port forwarding.
curl · wget Practical Guide — API Testing and File Downloads
How to test REST APIs with curl—including headers, authentication, and request bodies—how to download and mirror files with wget, and when to choose each tool.
Complete Guide to Installing and Configuring WireGuard VPN
Covers WireGuard server and client installation, key generation, configuration files, adding peers, and routing so you can set up site-to-site VPN and remote access.
Complete Git Submodules Guide — Add, Update, and Remove
How to include an external repository in your project with Git submodules, covering initialization, updates, removal, and fixes for common mistakes.
Complete Guide to GitLab CI/CD Pipelines
Covers the essentials of GitLab CI/CD: .gitlab-ci.yml syntax; stage, job, and artifact configuration; automated Docker builds; environment-specific deployments; and GitLab Runner registration.
Private Docker Registries — Operating Harbor, AWS ECR, and GHCR
This guide covers standing up a self-hosted Harbor registry, pushing and pulling images with AWS ECR and GitHub Container Registry, and patterns for using private registries from Kubernetes.
Helm Chart Basics — Kubernetes Package Management
Covers the essential Kubernetes package management basics: installing Helm, deploying public charts, customizing with values.yaml, writing your own charts, and managing releases.
strace · ltrace in Practice — Tracing System Calls and Library Calls
Learn how to diagnose file, network, and signal issues by tracing a process’s system calls with strace, and how to analyze library function calls with ltrace.
Mastering the SSH Config File — Managing Multi-Server Access
How to manage multi-server shortcuts, jump hosts, key files, and port forwarding with ~/.ssh/config, and how to load keys automatically with ssh-agent.
jq Practical Guide — JSON Parsing, Filtering, and Transformation
Production patterns for parsing, filtering, and transforming curl API responses, config files, and logs with jq. The standard way to handle JSON in shell scripts.
Diagnosing Network Packet Loss — ping · mtr · tcpdump
How to confirm packet loss with ping, locate the hop where it occurs with mtr, and capture live packets with tcpdump to analyze retransmissions and errors.
Memory Leak Diagnosis — /proc/meminfo · smaps · valgrind
Covers how to assess memory status with /proc/meminfo and free, analyze process memory with smaps and pmap, and find leaks with Valgrind and AddressSanitizer.
CPU Overload Diagnosis — top · htop · perf · uptime
How to pinpoint CPU-heavy processes with top/htop, check load trends with uptime/vmstat, and find bottleneck causes with perf and strace.
SQLite Practical Guide — CLI · Schema · Backup · Python Integration
A practical rundown of using SQLite as a lightweight database: CLI usage, table design, indexes and triggers, .dump backups, and CRUD with Python’s sqlite3 module.
Getting Started with Elasticsearch — Installation, Indexes, Queries, and Connecting Kibana
A hands-on introduction to search engine fundamentals: installing Elasticsearch, creating indexes and performing document CRUD, match/term/range queries, aggregations, and connecting Kibana.
MongoDB Fundamentals in Practice — CRUD, Indexes, and Aggregation Pipelines
A practical rundown of MongoDB for practitioners: install, collection CRUD, index creation, aggregation pipelines ($match/$group/$lookup), and mongodump backups.
Cloudflare DNS · Proxy · Page Rules Setup Guide
This guide covers registering a domain with Cloudflare, configuring DNS, orange-cloud (proxy) mode, Page Rules, SSL/TLS options, and basic WAF settings.
GCP Compute Engine Basics — Creating VMs, Firewalls, SSH, and Snapshots
Covers how to create VM instances on GCP Compute Engine, configure firewall rules, connect over SSH, and manage disk snapshots and machine images.
AWS RDS Configuration Guide — Instances, Parameters, Backups, and Snapshots
A practical walkthrough of RDS setup: creating instances, configuring security groups, tuning parameter groups, managing automated backups and snapshots, and creating read replicas.
AWS IAM Roles and Policies in Practice — Least Privilege Best Practices
Covers the conceptual differences among IAM users, groups, roles, and policies; how to write JSON policies; applying least privilege; enforcing MFA; and IAM best practices.
SSH Two-Factor Authentication — Google Authenticator OTP Setup
A step-by-step guide to installing the Google Authenticator PAM module and adding TOTP-based two-factor authentication to SSH logins.
Complete File Permissions Guide — chmod · chown · ACL
A practical rundown of permission management: chmod numeric and symbolic notation, chown ownership changes, umask defaults, and fine-grained ACL control with setfacl/getfacl.
Fail2Ban Advanced — Custom Filters, Actions, and Whitelists
This guide covers advanced Fail2Ban configuration: parsing application logs with custom filters, adding actions, and managing whitelists and blacklists.
sudo Privilege Management — sudoers · Least Privilege · Audit Logs
Covers sudoers file syntax, granting sudo privileges to users and groups, least-privilege rules that allow only specific commands, and how to audit sudo logs.
Linux Extraction Commands: tar.gz, tar.zst, zst, zip, and 7z
A per-extension reference for extracting tar.gz, tar.zst, and standalone zst archives. Covers tar xzf options, keeping originals, missing or unsupported zstd errors, and how to choose a format.
Complete Environment Variable Guide — .bashrc · .zshrc · export · env
Covers setting, inspecting, and unsetting environment variables; making them persistent (.bashrc/.zshrc/.profile); passing variables to processes; and managing .env files.
Complete Process Management Guide — ps · kill · nice · htop
A practical rundown of Linux process management: inspecting processes with ps, sending signals with kill, adjusting priority with nice/renice, and using htop in real-world workflows.
Apache Virtual Host Configuration — Virtual Host and Module Management
Practical Apache setup for per-domain virtual hosts, covering module enablement, redirects, SSL integration, and separate logs.
iptables in Practice — Adding Rules, NAT, and Port Forwarding
A practical guide to firewall configuration with iptables, covering chain structure, inbound/outbound filtering, NAT masquerading, port forwarding, and persisting rules.
HAProxy Load Balancer: Installation, Health Checks, and Sticky Sessions
A step-by-step practical guide to HAProxy setup, covering round-robin and least-connections algorithms, health checks, sticky sessions, and SSL termination.
Semantic Versioning + Conventional Commits + Automated CHANGELOG
Explains SemVer rules, the Conventional Commits format, and how to automatically generate version tags and a CHANGELOG with standard-version / release-please.
Git Hooks in Practice — Automating Code Quality with pre-commit
Explains how to write pre-commit, commit-msg, and pre-push hooks yourself, or use the pre-commit framework to automatically run linting, formatting, and tests before a commit.
kubectl Basics — Practical Commands for Pods, Deployments, and Services
A practical rundown of the core kubectl commands and real-world patterns for creating, inspecting, updating, and deleting Pods, Deployments, and Services.
Docker Multi-stage Builds — Minimizing Image Size
This guide shows how to cut image size dramatically by stripping build dependencies with multi-stage builds, using Node.js, Go, and Java examples.
Docker Volumes vs Bind Mounts — A Complete Guide to Data Persistence
A practical rundown of Docker data persistence patterns: volume vs bind-mount differences, backup and restore, and how to fix permission issues.
Vim Practical Guide — Using Vim at Work Without Plugins
Covers mode switching, motions, visual block, macros, and multi-file editing so you can use Vim on the job immediately—no plugins required.
grep · cut · sort · uniq · wc: Practical Pipelines
A practitioner’s roundup of production patterns that combine grep regex, cut field splitting, sort, uniq deduplication, and wc counts into pipelines.
Advanced Bash Scripting — Functions, Arrays, getopts, and trap
A practical roundup of production automation patterns: function definitions and return values, array manipulation, option parsing with getopts, and signal handling with trap.
Completely Fix git push rejected — non-fast-forward · protected branch · pre-receive hook
A guide to identifying the cause of each git push failure type—Updates were rejected, remote rejected, pre-receive hook declined, and more—and resolving it safely.
Too many open files — Fixing ulimit File Descriptor Limits
A guide to resolving file descriptor limit errors such as EMFILE: too many open files and accept4() failed (24: Too many open files) using ulimit, limits.conf, and systemd LimitNOFILE.
Fixing SSL Certificate Expiry and Renewal Failures — A Complete Guide to certbot renew Errors
A step-by-step guide to resolving Let's Encrypt SSL certificate renewal errors, including NET::ERR_CERT_DATE_INVALID, certbot renew failures, a blocked port 80, and Nginx reload failures.
When Docker Containers Keep Restarting — Causes and Fixes by Exit Code
A guide to diagnosing and fixing containers that repeatedly show Restarting or Exited in docker ps by checking logs, exit codes, and the restart policy.
Completely Fixing MySQL/MariaDB Connection Errors — ERROR 1045 · Can't connect · socket
Causes and fixes for MySQL/MariaDB connection errors by type, including ERROR 1045 (28000): Access denied, Can't connect to MySQL server on localhost, and a missing socket file.
Address already in use — Finding and resolving port conflicts
When you hit a bind: address already in use error, use ss, lsof, and fuser to identify the process occupying the port, then free it safely or change the port.
Linux Disk Full — Fix "No space left on device" in 10 Minutes
When a "No space left on device" error appears, this guide shows how to find the culprit in 10 minutes with df, du, and find, then safely clean logs, Docker, package caches, and large files.
Fixing Nginx 502 Bad Gateway: Causes by Log Message and Inspection Order
Diagnose Nginx 502 Bad Gateway from error.log. Separate connection refused, PHP-FPM socket and permission issues, upstream connection closures, and oversized header errors, then walk through the fix and verification.
SSH Connection Error Troubleshooting Guide (Connection refused, Permission denied, etc.)
A troubleshooting guide to quickly pinpoint causes and fix SSH connection errors by type, including Connection refused and Permission denied (publickey).
Initial Security Setup for a New Linux Server — First 10-Minute Checklist
On day one with a new server, completeness matters more than depth. This beginner checklist covers 8 steps—SSH keys, UFW, fail2ban, and automatic updates—in 30 minutes; deeper configuration for each item is covered in separate guides.
Linux Kernel Parameter Tuning — sysctl · Network Stack · Memory Optimization
An in-depth guide to controlling the TCP stack, file descriptors, and memory management with sysctl, and applying optimal parameters for production workloads (high-traffic web servers, databases, and container hosts).
Linux Performance Diagnostics in Depth — Hands-on with perf, eBPF, and FlameGraph
Measure CPU hotspots with perf, trace kernel events with eBPF/bpftrace, and visualize bottlenecks with FlameGraph — an in-depth guide to digging production performance problems down to the root.
GitOps in Practice — Fully Automating Kubernetes Deployments with Argo CD
An advanced guide to configuring Argo CD according to GitOps principles and fully automating multi-environment Kubernetes deployments as code with ApplicationSet, Sync Waves, and Rollouts.
Container Security In Depth — Image Scanning · Runtime Security · Least Privilege
Covers every layer of production container security — Trivy image vulnerability scanning, Seccomp and AppArmor runtime isolation, rootless containers, and Docker Content Trust.
Advanced Nginx Operations — Load Balancing · Caching · Rate Limiting · Security Headers
A deep-dive guide to taking full control of production Nginx — covering upstream load-balancing strategies, proxy_cache content caching, limit_req rate limiting, and security headers.
PostgreSQL Replication, WAL, and PITR — A Complete Guide to Production HA
An in-depth PostgreSQL operations guide for building high availability with Streaming Replication and implementing point-in-time recovery (PITR) with WAL archiving.
Amazon EKS in Practice — Cluster Setup, Deployment Strategies, and Operational Patterns
An in-depth guide to provisioning an EKS cluster with eksctl and running production-grade Kubernetes workloads with ALB Ingress, HPA, and Karpenter.
Linux System Security Auditing — Lynis, auditd, and SELinux in Practice
From automated Lynis audits and auditd event tracing through SELinux policy enforcement — an in-depth guide to measuring and hardening production server security.
Complete MySQL/MariaDB Backup and Restore Guide
Covers logical backup and restore with mysqldump, automation scripts, and binary-log point-in-time recovery.
Redis Fundamentals in Practice — Caching, Sessions, and Message Queues
A practitioner-focused guide covering Redis from installation through String, Hash, List, and Sorted Set data structures, plus caching strategies and TTL.
PostgreSQL Index Optimization — Diagnosing Slow Queries and Index Strategy
A practical guide to finding slow queries with EXPLAIN ANALYZE and choosing the right index types to improve performance.
Terraform Basics — Managing Infrastructure as Code
A beginner-friendly guide covering Terraform installation, provisioning an AWS EC2 instance, state management, and real-world workflows.
Complete Guide to AWS CLI Installation, Configuration, and Essential Commands
A practitioner-focused walkthrough of AWS CLI v2 installation, profile setup, and the EC2, S3, and IAM commands you use most in day-to-day work.
Practical OpenSSL — Generating, Inspecting, and Converting Certificates
A practical rundown of essential openssl commands: generating self-signed certificates, issuing CSRs, inspecting certificate details, and converting between PEM and PFX formats.
Blocking SSH brute-force attacks with fail2ban — jail setup and monitoring
Automatically detect and block SSH brute-force attacks with fail2ban. Covers jail.local core parameters, recidive long-term bans, email alerts, Cloudflare and ipset integration, and day-to-day commands. See the separate guide for baseline S
Memory and Swap Management — free, vmstat, Swap Configuration
A practical guide to checking server memory status, analyzing OOM causes, creating swap files, and tuning swappiness.
Mastering journalctl — Querying and Analyzing systemd Logs
A practical guide to querying, filtering, and analyzing system logs with journalctl, covering real-world scenarios.
Disk Management in Practice — lsblk, df, du, fdisk, LVM
A practical rundown of the core commands for server disk management, from checking capacity to creating partitions and extending LVM volumes.
Complete DNS Record Guide — Configuring A, CNAME, MX, TXT and Using dig
A practical rundown of each DNS record type, how to configure them, and how to diagnose DNS issues yourself with the dig command.
Diagnosing Network Status with ss, netstat, and tcpdump
A practitioner-focused rundown of Linux network diagnostics—from checking listening ports and inspecting connection state to capturing packets with the core tools.
Automating Docker Image Builds and Registry Deployment with GitHub Actions
Set up a CI/CD pipeline that builds Docker images with a GitHub Actions workflow and pushes them to GHCR or Docker Hub.
git rebase · cherry-pick: A Practical Guide
A practitioner-focused walkthrough of rebase and cherry-pick—from cleaning up commit history and syncing branches to applying specific commits.
Debugging Running Containers — docker exec, logs, inspect
A practical rundown of debugging commands and patterns to use when a container is not behaving as expected.
Docker Compose in Practice — Configuring Multi-Container Apps
A practical rundown of patterns from writing docker-compose.yml through service dependencies, volumes, environment variables, and health checks.
Safe File Synchronization and Backup with rsync
A practitioner-focused guide covering rsync’s essential options, remote server synchronization, and automated incremental backups.
tmux Complete Guide — Session, Window, and Pane Management
tmux is an essential tool for remote server work. This practical guide covers session persistence, window splitting, and configuration customization.
awk · sed in Practice — Log Parsing and Text Transformation
A practical roundup of awk and sed patterns used every day on the job—log analysis, CSV conversion, config-file patching, and more.
Complete Practical Guide to the find Command
A job-ready rundown of the find command—from file search and conditional filters to exec-based delete and convert workflows you can use in production.
PostgreSQL Installation and Basic Configuration
How to install PostgreSQL on Ubuntu, create users and databases, and configure remote access and backups.
Creating AWS S3 Buckets and Using the CLI
How to create an S3 bucket, configure bucket policies and ACLs, and upload, download, and sync files with the AWS CLI.
Getting Started with AWS EC2 Instances
A step-by-step guide to creating an EC2 instance, configuring security groups, connecting via SSH, and completing basic server setup.
GPG Key Generation and Practical File Encryption
How to generate a GPG key pair, encrypt and decrypt files, and apply symmetric encryption and signing in day-to-day work.
Linux System Resource Monitoring
A practical roundup of commands and tools for real-time CPU, memory, disk, and network monitoring, and for finding bottlenecks.
Linux User and Group Management
Covers end-to-end server user administration, including creating and deleting users, managing groups, configuring sudo privileges, and applying password policies.
Complete Guide to UFW Firewall Configuration
A practical guide to Ubuntu UFW: opening and closing ports, allowing specific IPs, logging, and checking firewall status.
Issuing a Free HTTPS SSL Certificate with Let's Encrypt
How to issue a free SSL certificate for your domain with Certbot, apply it to Nginx, and set up automatic renewal.
Nginx Web Server Basics and Reverse Proxy
A practical guide covering Nginx installation, static file serving, reverse proxy, and load balancing so you can apply the settings immediately in production.
Building a CI/CD Pipeline with GitHub Actions
A step-by-step guide to writing GitHub Actions workflows that automate tests, builds, and deployments on push events.
Complete Guide to Recovering from Git Mistakes — reset, revert, stash
From bad commits and work on the wrong branch to files you deleted by accident — a situation-by-situation guide to undoing Git mistakes.
Git Branching Strategy — GitHub Flow & Git Flow
Compares GitHub Flow, which fits small teams, with Git Flow for teams that have a defined release cycle, and explains how to choose between them.
Understanding Docker Networks and Practical Configuration
Explains the differences between bridge, host, and overlay networks, how containers communicate with each other, and how to expose them externally.
Dockerfile Optimization — Reducing Image Size and Build Time
Techniques for cutting image size by more than half using layer caching, multi-stage builds, and removing unnecessary files.
Practical Shell Scripting Basics
Explains how to write bash scripts you can use immediately in production, covering variables, conditionals, loops, functions, and error handling.
Cron Job Scheduler: A Practical Guide
Covers crontab syntax, environment variable setup, and logging methods for automating recurring jobs.
Complete Guide to systemd Service Management
A step-by-step guide to starting, stopping, and enabling services with systemctl, and writing your own service unit files.
100 Essential Linux Commands
A category-by-category roundup of Linux commands you use every day on the job—from file operations to process management.
Complete Guide to SSH Configuration and Access Control — Hardening sshd_config and Key Authentication
Covers sshd_config hardening, switching to key-based authentication, and controlling SSH access with AllowGroups, Match blocks, and MFA. Automatic brute-force blocking with fail2ban is covered in a separate guide.
Setting Up a Development Environment with Docker Compose
Practical patterns for building a consistent development environment with Docker Compose, covering volumes, networks, and environment variable management.