Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Headless Mac mini AI server: from toy to production

Description and use

Configuring a Mac mini as a headless AI server requires disabling sleep, using launchd for process management, and limiting concurrency in n8n.

Problem

Running a headless Mac mini as an AI server caused reliability issues—sleep, power management, and lack of proper service orchestration—leading to downtime and debugging headaches.

Outcome

The Mac mini reliably ran as a background AI server, with no unexpected sleep, stable process restarts, and controlled concurrency for n8n workflows.

Workflow

  • 1. Disable system sleep with sudo pmset -a sleep 0 and monitor assertions with pmset -g assertions. 2. Wrap long‑running processes with caffeinate -i to prevent idle sleep. 3. Create a launchd plist (e.g., com.example.aihelper.plist) with ProgramArguments, KeepAlive, WatchPaths, and RunAtLoad. 4. Load the plist using launchctl load or launchctl bootstrap. 5. Tail logs with tail -f /tmp/aihelper.out.log /tmp/aihelper.err.log. 6. Configure n8n concurrency via N8N_CONCURRENCY_PRODUCTION_LIMIT=20 and enable queue mode for production workloads.

Evidence

If you don't explicitly manage power behavior, you're not running a server. You're running a desktop that occasionally pretends to be one.

Source

A practical pattern is: caffeinate -i ollama serve

Source

Launchd is the real primitive for macOS services

Source

  • Record date: 2026-09-21T14:30:36.376Z