← Back to novovictus

NUC Tailscale Exit Node: Open-Air Cooling Stabilization

A small side quest to thermally stabilize an open-air Intel NUC while it was serving as a quiet, dedicated Tailscale exit node, using targeted heatsinks and low-RPM airflow.

Tailscale exit node NUC thermal stabilization edge systems

Lifecycle Note

This cooling pass was performed during the system's earlier life as a dedicated Windows Tailscale exit node. The hardware was later repurposed as a Proxmox host while retaining the same open-air cooling arrangement.

See the later Home Assistant and Proxmox migration.

Measured Result

The final sustained-load temperature landed below the platform's previous idle operating temperature.

~92°FInitial idle reading
~125°FInitial full CPU load after 5 minutes
~88°FFinal full CPU load after 5 minutes

Build Context

The NUC was originally built as a dedicated Tailscale exit node. The software build was intentionally minimal: strip down as far as practical, install Tailscale, log in, and add the required route. The hardware work was the part worth documenting.

Because the system was running as an open-air platform, the goal was quiet sustained reliability rather than enclosure aesthetics.

Thermal Pass

The sticker was removed from the copper heatsink, the surface was cleaned with automotive cleaner to remove adhesive residue, and heatsinks were stacked onto the copper wherever there was useful surface area.

The surrounding board components were probed under load. Any chip that climbed past roughly 100°F received a small heatsink. Larger heatsinks were added to the NVMe SSD and exposed RAM chips where they physically made sense.

The heatsinks were aligned parallel to the existing airflow path.

Airflow

An 80 mm fan was mounted behind the integrated blower and powered from a lower-voltage wall wart. This kept the fan at lower RPM for reduced noise while still adding useful board-level airflow across the open platform.

Result

Before the modifications, the system measured about 92°F at idle and about 125°F after five minutes of full CPU load. After the passive heatsink pass and low-RPM airflow assist, the same sustained-load window measured about 88°F.

The result is straightforward: full-load temperature after the build was lower than the original idle temperature.

GitHub: github.com/novovictus
Contact: contact@ninja-neer.net