Post

I Appreciate The Lenovo Tiny Even More Now

I Appreciate The Lenovo Tiny Even More Now

I Appreciate The Lenovo Tiny Even More Now

INTRODUCTION

When you first spot a dusty Lenovo ThinkCentre M720 Tiny on a bargain bin shelf, the instinct is to walk away. The device’s modest footprint, low price, and under‑spec’d stock configuration make it an easy candidate for “just another cheap PC”. Yet, after a recent deep‑dive into homelab infrastructure, I discovered that the Tiny’s compact chassis hides a surprisingly capable platform for modern DevOps workloads.

This post unpacks why the Lenovo Tiny has become a cornerstone of my self‑hosted environment, and how you can leverage it to run a reliable, automated stack of containers, monitoring agents, and network services. We’ll walk through the entire lifecycle – from initial hardware evaluation and prerequisite planning, through a step‑by‑step installation of Docker Engine and Docker Compose, to advanced configuration hardening and troubleshooting techniques.

If you’re an experienced sysadmin or DevOps engineer looking to expand a homelab without breaking the bank, the insights here will help you transform a $150‑ish refurbished Tiny into a production‑grade node that runs everything from CI pipelines to private registries. The guide is deliberately technical, avoids any marketing spin, and sticks to proven, community‑vetted practices.

What you’ll learn

  • How to evaluate the Tiny’s hardware against typical homelab requirements.
  • A complete, version‑specific installation of Docker Engine and Compose on a fresh Ubuntu Server image.
  • Strategies for securing container workloads, including user namespaces and seccomp profiles.
  • Real‑world examples of Docker Compose files that spin up monitoring, logging, and backup services.
  • Performance tuning tips that keep the Tiny responsive under concurrent container loads.
  • A concise troubleshooting checklist for common networking and storage issues.

By the end of this article you should feel confident that the Lenovo Tiny is not just a cheap throw‑away PC, but a versatile building block for a robust, self‑hosted infrastructure.


UNDERSTANDING THE TOPIC

What is the Lenovo Tiny in a DevOps context?

The Lenovo ThinkCentre M720 Tiny is a small form‑factor desktop that ships with an Intel Core i7‑9700T processor, integrated graphics, and a set of M.2 and SATA storage options. While it is not a rack‑mount server, its dimensions (approximately 7 × 7 × 2 inches) and low power draw (≈ 45 W under load) make it ideal for desk‑side or wall‑mounted deployments.

From a DevOps perspective, the Tiny serves three primary purposes:

  1. Edge compute node – hosts containerized workloads that need to be physically close to edge devices or IoT sensors.
  2. Self‑hosted service platform – runs private registries, CI runners, and monitoring stacks without relying on public cloud offerings.
  3. Learning sandbox – provides a low‑risk environment to experiment with Kubernetes (k3s), Nomad, or other orchestration tools.

Brief history and development

When Lenovo released the M720 Tiny in 2019, the target market was small‑business workstations. The hardware quickly attracted the homelab community because of its:

  • Compact chassis – fits into standard 1U rack shelves with a simple bracket.
  • Sufficient CPU cores – 6 physical cores and 12 threads handle multiple Docker containers concurrently.
  • Multiple storage interfaces – one M.2 NVMe slot and two 2.5‑inch SATA bays allow for fast SSDs and bulk HDDs.
  • Low acquisition cost – refurbished units often sell for $100‑$200 on marketplaces.

Since then, community projects have built scripts to automate Ubuntu Server installation, Docker Engine setup, and even k3s provisioning, turning the Tiny into a “plug‑and‑play” homelab node.

Key features and capabilities

FeaturePractical impactTypical use case
6‑core i7‑9700THandles 10‑15 simultaneous Docker containers with modest CPU pressureRunning a GitLab Runner fleet, Prometheus + Grafana stack
Up to 64 GB DDR4 RAM (2 × 32 GB DIMMs)Enables larger in‑memory workloads, such as Elasticsearch or TimescaleDBFull‑stack observability pipelines
M.2 NVMe + 2× SATAFast boot times and flexible storage tiering (SSD for OS, HDD for backups)Separate data volumes for Docker overlay and backup archives
Integrated Intel UHD 630No need for discrete GPU; useful for headless environmentsPure container workloads, no graphics required
Low power envelopeOperates on a single 12 V adapter; can be powered from UPS24/7 operation with minimal electricity cost

Pros and cons

Pros

  • Cost‑effective – Price per compute unit is among the lowest in the market.
  • Small footprint – Can be mounted behind a monitor or in a 1U rack.
  • Quiet operation – Fanless or low‑speed fan profiles keep noise below 30 dB.
  • Rich I/O – Multiple USB‑3.0 ports, HDMI, and Ethernet enable diverse peripheral connections.

Cons

  • Limited expansion – Only one PCIe slot (used for the Wi‑Fi card) restricts add‑in cards.
  • Thermal ceiling – Sustained high CPU loads may trigger throttling if airflow is poor.
  • Single‑channel memory on some configurations can bottleneck memory‑intensive workloads.

Use cases and scenarios

  • Private Docker registry – Hosting a secure image repository for internal CI pipelines.
  • Prometheus + Alertmanager – Collecting metrics from edge devices and triggering alerts.
  • Home‑automation hub – Running Home Assistant or Node‑RED containers with access to GPIO pins via USB‑to‑serial adapters.
  • Development sandbox – Providing a reproducible environment for developers to test Helm charts locally.

The Tiny continues to be supported by the Ubuntu LTS releases (20.04, 22.04, 24.04) and receives regular firmware updates from Lenovo’s BIOS. Community projects now ship pre‑configured cloud‑init ISO images that install Docker, Docker Compose, and Portainer in a single boot.

Looking ahead, the Tiny may serve as a reference platform for edge‑AI workloads that combine lightweight inference engines (e.g., ONNX Runtime) with containerized services. Its modest power draw aligns with the growing emphasis on sustainable computing in edge locations.

Comparison to alternatives

PlatformApprox. price (refurbished)CPU coresRAM maxTypical use case
Lenovo M720 Tiny$120‑$180664 GBHomelab, edge compute
Raspberry Pi 5$70‑$1004 (ARM)8 GBLow‑power IoT, lightweight services
Intel NUC 11$250‑$3508‑1032‑64 GBHigher‑performance homelab
Dell OptiPlex 3020$100‑$1504‑632 GBGeneral purpose server, virtualization

While the Raspberry Pi excels at ultra‑low power tasks, it lacks the CPU horsepower for multiple concurrent containers. The NUC offers more cores but at a higher price point. The Tiny strikes a balance: enough cores for modest workloads, ample RAM headroom, and a price that makes it accessible for hobbyists and professionals alike.


PREREQUISITES

System requirements

ComponentMinimum specRecommended spec
CPUIntel i5‑7200U or equivalentIntel i7‑9700T (6 cores)
RAM4 GB16 GB‑64 GB DDR4
Storage16 GB SSD256 GB NVMe SSD + 2 TB HDD (optional)
Network1 GbE Ethernet1 GbE or 2.5 GbE NIC
Power12 V 5 A adapter12 V 5 A with UPS support

Required software

SoftwareVersionReason
Ubuntu Server22.04 LTSLong‑term support, recent kernel
Docker Engine24.0.xLatest security patches and features
Docker Compose2.24.xMulti‑container orchestration
git2.34.xFor cloning configuration repositories
curl7.88.xHealth‑check scripts
ufw0.36.xBasic host firewall

Network and security considerations

  • Static IP assignment – Recommended for servers to avoid DHCP lease changes. Configure via /etc/netplan/01-netcfg.yaml.
  • Firewall rules – Allow only required ports (e.g., 2375 for Docker API, 80/443 for web services). Use ufw allow selectively.
  • User permissions – Add non‑root users to the docker group; avoid running Docker as root in production.

User permissions and access levels

Create a dedicated devops group and add all administrative users:

1
2
3
sudo groupadd devops
sudo usermod -aG devops $USER
newgrp devops

Ensure that the docker socket is owned by the group:

1
2
sudo chown root:devops /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock

Pre‑installation checklist

  1. Verify BIOS settings: enable VT‑x/AMD‑V, disable Secure Boot (or enroll keys).
  2. Update firmware via Lenovo Vantage or fwupd.
  3. Install Ubuntu Server 22.04 LTS using a USB stick.
  4. Perform initial system update: sudo apt update && sudo apt upgrade -y.
  5. Reboot to apply kernel updates.
  6. Confirm hardware detection: lshw -class cpu,memory,storage.

INSTALLATION & SETUP

Step‑by‑step Docker Engine installation

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 1. Remove any old packages
sudo apt-get remove -y docker docker-engine docker.io containerd runc

# 2. Install prerequisite packages
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release

# 3. Add Docker’s official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 4. Set up the stable repository
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 5. Install Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

# 6. Verify installation
docker version

Explanation of each step

  1. Removing legacy packages prevents version conflicts.
  2. ca-certificates, curl, gnupg, and lsb-release are required for secure apt operations.
  3. The GPG key ensures package integrity.
  4. The repository line uses $(lsb_release -cs) to target the correct Ubuntu codename (e.g., jammy).
  5. The docker-ce package pulls the latest stable release.
  6. docker version confirms both client and server versions.

Installing Docker Compose as a plugin

1
2
3
4
5
6
# Create a directory for Compose plugins
mkdir -p ~/.docker/cli-plugins

# Download the latest stable Compose binary
curl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64 \
  -
This post is licensed under CC BY 4.0 by the author.