Back to Blog

Complete Homelab Setup: From Zero to Self-Hosted in One Weekend

Build a fully functional homelab in a single weekend. Step-by-step guide covering hardware setup, Docker installation, and deploying essential self-hosted services.

Posted by

Weekend homelab project

The Weekend Homelab Challenge

You don't need months to build a homelab. In one focused weekend, you can set up a complete self-hosted infrastructure with cloud storage, media server, password manager, and more.

Saturday Morning: Hardware Setup

  • Unbox and connect your mini PC or server
  • Download Ubuntu Server ISO
  • Create bootable USB with Balena Etcher
  • Install Ubuntu Server (takes ~20 minutes)
  • Run updates: sudo apt update && sudo apt upgrade -y

Saturday Afternoon: Docker Foundation

# Install Docker
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER

# Logout and back in, then:
mkdir -p ~/homelab && cd ~/homelab

# Create base compose file
cat > docker-compose.yml << 'EOF'
version: "3.8"
services:
  portainer:
    image: portainer/portainer-ce:latest
    ports:
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    restart: unless-stopped

volumes:
  portainer_data:
EOF

docker compose up -d

Sunday: Deploy Services

Add these services to your compose file:

  • Nextcloud - cloud storage
  • Vaultwarden - password manager
  • Jellyfin - media server
  • Pi-hole - ad blocking
  • Uptime Kuma - monitoring

Sunday Evening: Security

  • Set up SSH keys and disable password auth
  • Configure UFW firewall
  • Install Fail2ban
  • Set up WireGuard for remote access

Congratulations! You now have a fully functional homelab.

Continue Reading