Tom's Blog

Tips, tricks, and troubleshooting from my homelab.

Welcome to the Blog

I'll keep this updated with issues that have stumped me and the solutions I've found — from Nginx quirks to SSH tips and self-hosted deployments.

July 2025 · Nginx, SSL

Quick Nginx Setup with Certbot SSL

A comprehensive guide to quickly set up Nginx on Ubuntu for your website and secure it with free SSL certificates from Let's Encrypt.

Installation

bash
sudo apt update
sudo apt install nginx certbot python3-certbot-nginx -y

Create Server Block

bash
sudo mkdir -p /var/www/example.com/html
sudo nano /etc/nginx/sites-available/example.com
nginx
server {
    listen 80;
    listen [::]:80;
    root /var/www/example.com/html;
    index index.html;
    server_name example.com www.example.com;
    location / { try_files $uri $uri/ =404; }
}

Enable Site & Get SSL

bash
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d example.com -d www.example.com

Pro tip: Use sudo certbot renew --dry-run to test auto-renewal.

Video Guide

June 2025 · SSH, Security

SSH Key Management Tips

Best practices for managing SSH keys and securing remote access.

bash
# Generate an ed25519 key (recommended)
ssh-keygen -t ed25519 -C "your@email.com"

# Copy key to remote server
ssh-copy-id user@server-ip

# Test the connection
ssh user@server-ip

After setting up keys: Disable password authentication in /etc/ssh/sshd_config by setting PasswordAuthentication no.

Home Buy Me a Beer