Setup, power and thermals, and software tips for running a Mac mini as a home server or self-hosting box.
Tududi 1.2.0 is a self-hosted tool for tasks, projects, notes, and areas of life or work. It runs as a single container and uses SQLite by default, so it can start without a separate database setup. It does not require an account and does not send telemetry. The project has reached 3,000 GitHub stars and 213 forks. This version adds a Kanban board with custom columns that can be turned on per project, a goals layer for organizing work as Areas > Goals > Projects > Tasks, an AI Assistant on the Today page, an Eisenhower Matrix for sorting tasks by urgency and importance, and people management for contacts. The AI Assistant shows a daily brief, task insights, and project insights; it needs an OpenAI API key, but it is optional and can be disabled in settings.
fin is a terminal tool for controlling Jellyfin or Subsonic-style media servers. It is written in Rust and works both as an interactive text app and as a command you run once for a specific task. At login, it can detect server types such as Navidrome, Airsonic, Gonic, and Astiga. It can search a music or video library, manage playlists, and send playback to the local computer, a Chromecast on the same network, or UPnP MediaRenderer devices such as Sonos, Kodi, Roon endpoints, and Samsung or LG TVs. Local music playback is now handled inside fin instead of going through mpv. Remote playback supports a queue, and the client can move to the next item automatically when one item ends.
The current setup uses an HP EliteDesk 800 G5 Mini with Proxmox. It already runs Home Assistant OS, AdGuard, a Minecraft server, a Docker LXC with Portainer, and Twingate. Storage is handled by a TerraMaster F4-425 Plus NAS running its default TOS system. The planned addition is a Jellyfin media server plus automation tools such as Radarr, Sonarr, Prowlarr, and qBittorrent. One option is to upgrade the Proxmox machine to 16GB of memory using spare sticks and run the whole media setup there, while keeping the NAS only for file storage. The other option is to buy an SSD for the NAS, install TrueNAS Scale, and run the media setup directly on the NAS. The main questions are whether 16GB is enough for Proxmox, the existing services, and the full media stack, and whether the NAS can handle transcoding if two people watch different videos at the same time.
File Orbit is a file explorer project meant to sync files across personal servers and storage devices. Its alpha version reached an early milestone: file explorer apps running on two machines can now sync with each other. The design uses an AT Protocol-based filesystem together with IPFS in a P2P setup. The goal is to avoid the pain of relying on one self-hosted cloud box after a home server fails, while allowing many NAS instances to talk to each other under one login. Login and data ownership are meant to sit with a Personal Data Server, so people do not have to use File Orbit’s hosted service if they prefer BlueSky or their own Personal Data Server. Installers are available for macOS and Windows, with Linux planned next. The project was renamed from substratum.cloud to File Orbit to avoid naming trouble for a hosted service model, while the protocol name remains so others can adopt, fork, and host their own versions.
Authelia is being used to protect several self-hosted sites, with passkeys and TOTP set up and two-factor authentication required for those sites. The problem is that the Authelia settings page can still be opened with only a username and password. The configuration tries to protect the `/settings` path with a `two_factor` policy and also requires a second factor for elevated sessions, but that is not producing the expected result. New users will be added manually. When adding TOTP or passkeys, the setup still asks for an email one-time password, and the goal is to use an existing passkey or TOTP instead. Authelia was chosen because RAM is limited, Traefik is the reverse proxy, and CrowdSec is already used to block brute-force attempts against Authelia.
Reticle is a tool for drawing a home or work server setup and checking its health directly on the same diagram. Self-hosted systems often force people to switch between old architecture PDFs, monitoring pages, and command windows, which makes it easy to leave services running without a clear view of the whole system. Reticle lets the real layout of servers, services, and links be drawn on a large canvas. Each node can run health checks through SSH or kubectl, and a failing node turns red on the map. The whole map is stored as one YAML file, so changes can be compared, edited in vim, and reflected live on the canvas. The personal desktop app is free and MIT licensed, and it is built with Rust/Tauri. The paid team option is a single-binary daemon that serves the same interface to browsers on the local network and runs checks all day.
A home printer can be made easier for family use by giving it its own email address. A previous phone upload page did not work well because people had to remember an internal address and pick files through a browser. The new setup sends mail for the print address through Cloudflare Email Routing into a mailbox, then a filter moves those messages into a dedicated folder. A small container on a home server checks that folder over IMAP and prints attached PDFs or images. Word files are converted to PDF first with headless LibreOffice, then printed. If there is no attachment, the email body is turned into a PDF and printed, which makes forwarded school notices work. Printing goes through CUPS to an HP laser printer, processed messages move to a Printed folder so restarts do not print them again, and the sender gets a confirmation email. The key safety step is a sender allow-list that blocks everyone else by default, because an open email-to-print address can turn spam into wasted paper.
When a live service alert goes off, the first work is often mechanical: gather logs, check recent deployments, look at dashboards, and inspect service state before the real thinking starts. Many newer AI incident tools do this work, but they are SaaS products, so logs and infrastructure data must be sent to another company’s cloud. That can be unacceptable in workplaces with strict security rules. The proposed tool is an open-source, self-hosted version. When an alert fires, an automated agent would pull logs, check recent deployments, inspect container state, connect symptoms across services, and post a diagnosis to a dashboard. The infrastructure data would stay on the operator’s systems, with only the LLM API call leaving the environment. The tool would be read-only, so it can inspect but not change anything. Every diagnosis would need to link back to evidence it actually collected, and unsupported claims would be marked as guesses. Connectors such as alert sources would be handled as plugins.
Several browser-based server tools are being compared from hands-on use: Guacamole, Termix, and Nexterm. Guacamole was hard to set up and maintain. Termix was very useful, but its interface became unpleasant enough to make daily use frustrating. Nexterm looks good, but it often loses server connections for no clear reason, making it unreliable. The current need is only SSH access, not RDP, because Windows clients are being phased out. The practical requirement is a simple, stable, pleasant SSH-focused tool for managing servers.
Papra 26.6.0 adds automatic tagging to a self-hosted document archive. Papra is an open-source tool similar to Paperless-ngx, with a focus on being easier for everyday people to use. After Papra extracts text from a document, AI can now choose matching tags by looking at tag names and descriptions. It can also create new tags if that option is turned on. The new tagging system can connect to multiple LLM providers, which also prepares Papra for more AI features later. Document extraction and OCR are now more configurable, so different engines such as Mistral OCR, Azure DI, and Docling can be used by document type or as backups when another engine fails.
The idea is to use a home PC or server like a VPN while staying in China. Phone traffic would go first to the home machine, then out to services such as Instagram, and then back again. The reason is practical: during a 48-hour trip from Latin America, WhatsApp and other Meta services are important for staying in touch with family and sending photos. Tailscale, RustDesk, and AnyDesk came up as possible tools, but the short answer points to Shadowsocks as the best bet. VLESS/V2Ray is also mentioned as a possible option, while Tailscale may work but can be unreliable. There is also a clear warning to follow local law.
After several weeks of hands-on testing, the biggest problems were not only setup, but daily editing, mobile use, and sync. Obsidian was difficult to run on a VPS, and even a local setup with Syncthing did not feel good because editing behaved unpredictably and switching between edit and preview modes was tiring. Anytype became easier to understand over time, but its desktop and mobile apps did not match well enough; mobile did not show queries and basic formatting like paragraph indentation did not work. Joplin had the same problem with Markdown-style editing and a webview feel, and sync was not instant because it ran every 5 minutes unless triggered by hand. SiYuan had the best editor experience of the group, but mobile access through a browser was too awkward because each shortcut tap opened a new tab. Notesnook also had a strong editor, close to SiYuan, but running more than 8 containers, opening many ports, and setting up multiple subdomains made it too heavy to operate.
A Mac mini can work well as a small local AI voiceover machine. For local voice models, memory and model size are often the real limits, not raw CPU speed. Smaller models can run on a fairly basic Apple Silicon Mac mini, but more unified memory helps reduce waiting and limits on what model you can use. This setup works better as a batch machine than as a tool for instantly generating one short line. A practical workflow is to write or import a script, generate a rough voice pass, listen while doing something else, fix the weak lines, regenerate only those sections, and export when the result is good enough. Local text-to-speech is often better for repeated drafts than for final polish. Cloud tools may still be better for a very polished marketing clip, but local generation is useful for YouTube drafts, course narration, audiobook-style checking, private documents, and placeholder dialogue because it avoids worrying about credits. Storage can also be easy to underestimate because the app may be small while model files take more space.
Portabase now backs up and restores Docker volumes. Portabase is an open-source backup and restore tool for people who run their own servers, and it already supports 9 databases, including PostgreSQL, MariaDB, MongoDB, and Redis. The new Docker volume support matters because many self-hosted apps keep important data outside the database. That can include WordPress uploads, Nextcloud user files, media libraries, app settings, and other files stored by services running in Docker. Portabase uses one central server to manage backups, with small agents running close to the services being protected. The goal is to make backup and restore easier to run and less fragile. Portabase is looking for feedback on real restore workflows, useful Docker integrations, and unusual cases that should be handled early.
Four MacBook Air M2 machines with 16 GB of memory each are being considered as a small cluster for large language model inference. The planned setup would connect the machines through Thunderbolt 4 in a ring, so they can work as distributed nodes. An earlier test with exo-explore/exo was slow, producing under 6 to 8 tokens per second on a Qwen 2.5/3.5 9B 4-bit model. The next idea is to use vllm-metal with separate roles: one node handles the early input work, and another handles answer generation. LMCache would be added so the M2 machines can act as shared or offloaded KV cache storage. The open question is whether vllm-metal can already run tensor parallelism or pipeline parallelism across multiple Apple Silicon machines in a stable way. Current notes suggest cross-Mac communication through mx.distributed is still experimental or still being built. It is also unclear whether LMCache can plug into vllm-metal well enough to make a useful distributed KV cache layer and improve speed.
A lending business founder spent money on several Notion consultants, bought a Mac Mini, and started building a local AI setup with n8n and AI agents. The business handled about 30 deals a month, funded 8 to 10 of them, and made roughly $25,000. Every deal still had to go through the founder personally. The first instinct was to automate intake, meaning the first step where new applications or requests come in. The real problem was that the work was not organized enough for another person to run from start to finish. Automation does not clean up a broken process; it repeats the same confusion faster and more often. The practical order is to make one clear process that a real person can follow, then automate it.
The second part of a four-part series on private network mesh setups focuses on what happens when clean network design meets the messy real internet. Remote access to a self-hosted server can fail because firewalls block traffic, routers hide devices from the outside, and Carrier-Grade NAT can drop or prevent incoming connections. Carrier-Grade NAT is especially important because it can make a home device hard to reach directly from the public internet. Overlay networks try to keep connections working by adapting to these limits and finding usable paths between devices. The main idea is network resilience: keeping access alive even when the surrounding internet setup is restrictive.
Plotix is a self-hosted tool that turns small pieces of numeric data into graphs on a web page. A machine can send data with a simple `curl` command, such as central processor load 60 and graphics processor load 45, to an address like `localhost:8080/computer-temps`. Plotix then displays that data as a customizable graph. The GitHub repo includes documentation and a Docker Compose example. The tool started as a personal way to graph sponsorship numbers, then was redesigned and released publicly over the last two days. The project may be dropped if there is not enough demand.
A 2018 Mac mini used as a Linux server may not need t2linux if only a few hardware features matter. Modern Linux distros can support T2 Macs to some extent, but some devices may still need kernel patches, especially the keyboard, Bluetooth, and Wi-Fi. For a server setup, those devices may not matter. If the main needs are Thunderbolt and Ethernet, a normal upstream kernel may be enough without a separate t2linux kernel. The t2linux support list suggests that many features are already supported upstream.
Tome is a self-hosted ebook library server built for KOReader users. It was created after BookLore stopped being maintained and other options did not combine a clean interface, easy book information handling, and detailed reading records. The server provides a KOReader plugin from its settings page with the server URL and API key already included, so setup only requires adding the plugin and restarting KOReader. Tome avoids KOSync’s file hash matching and uses a stable ID, so reading history is less likely to break when a book is downloaded again or its metadata is edited. It records reading sessions, time, pages, device, streaks, heatmaps, pace, per-book intensity, and estimated completion dates, and it can import existing KOReader history. It syncs reading position and highlights in both directions and includes a web reader for EPUB and CBZ files. It can send ratings and progress to Hardcover in one direction, and it includes series management for manga and light novels, OPDS, metadata fetching, roles, and a file inbox for bulk imports. It is built with Python/FastAPI and React, uses SQLite, runs as one Docker image, and does not require outside services.
A free YouTube tutorial set covers the basic tools many people need when running their own small server at home or in a small office. Each guide stands alone, so only the useful topics need to be watched. The networking section covers installing a pfSense firewall, setting up WAN/LAN, creating firewall rules, and configuring DNS. The VPN server guide shows how to run remote access on your own hardware with WireGuard or OpenVPN, without relying on a third-party service. The VLAN guide explains how to split a network with a managed switch, such as keeping smart home devices on their own separate network. The services section covers Docker basics, including containers, Compose, volumes, and networking. Zabbix is used for monitoring network devices, alerts, and dashboards. The set also includes SSH on Windows Server for mixed home labs, plus backup planning for home labs and small businesses using the 3-2-1 backup rule and practical tools. All videos are free on YouTube with no paywall.
A cloud-dependent voice assistant setup has been replaced with a local voice setup running OpenClaw on a Raspberry Pi 5-based open hardware device called Hoorii Stage. Voice data stays inside the home network instead of being sent to outside servers. The device turns spoken commands into structured meanings and sends them directly to Home Assistant. Because the hardware is open, it connected more easily to custom automation scripts and template switches. The Raspberry Pi 5 feels fast enough for a desktop voice terminal. The unresolved issue is how to protect high-risk devices, such as a garage door or smart locks, at the server level. One option under consideration is a long-lasting, low-permission token in Home Assistant so the voice terminal cannot directly reach sensitive devices.
Setting up the Arr stack with Jellyfish and related tools was relatively easy, but automating books and manga was not satisfying. A Usenet provider and an indexer were already in place, and Readarr was tested with its book information source changed to api.bookinfo.pro. Some books still failed to connect correctly to their authors. LazyLibrarian was also tested, but after a book was removed, it could not be searched for again. The practical question is which tool and guide can make book and manga automation reliable enough to run.
A beginner in self-hosting is looking for easy management tools. The desired tools are similar to Runtipi or Dokploy, where apps can be brought online quickly and managed with less setup work. The goal is not to avoid managing apps completely, but to test an interesting repository in a few minutes before spending time on full setup. The planned machine is a Beelink SER8 for a homelab, but the main question is about choosing a simple self-hosting manager rather than about that specific hardware.
A home server project can start with documentation before adding more machines. Commands can usually be repeated later, but the reasons behind each choice and the mistakes made along the way are easy to lose. The example setup uses 3 small nodes to run one Kubernetes cluster. All nodes use Talos Linux, which avoids SSH and a normal shell, so configuration files become the main way to manage the machines. The roles are split into 1 control plane and 2 workers. The main lesson is that rebuilding a node is less important than preserving why the node was built that way.
The goal is to control online music and locally stored music from one place. Playlists should not be scattered across several apps, and speakers in different rooms should be selectable from the same screen with shared volume control. Home automation alerts should be able to interrupt music when needed. The same interface should also send music to whatever speaker a device is connected to, such as a car speaker. The current setup runs Home Assistant on one device with a supervisor install, plus a custom Music Assistant setup and a custom plugin. When a song is requested from an online provider, the plugin talks to Lidar. The aim is simple use, but the setup has become brittle because several moving parts depend on each other.
InkDrop is a self-hosted tool for managing missing manga and comics on a personal media server. It is not connected to the commercial Inkdrop notes app, and the name may change before public release. Kavita still handles the library and reading side, while InkDrop sits in front of it to manage wanted items, search, downloads, imports, and failure history. It tracks series, issues, wanted entries, queue status, source attempts, downloads, imports, provider health, history, and cases that need manual review. The interface is being shaped more like Sonarr, Radarr, and Prowlarr than a loose set of scripts. It uses ComicVine data to identify series and issues, and it checks Kavita first so existing files are not treated as missing. Searches run through a configured list of sources, with SLSKD named as a useful integration. Downloads can be passed to qBittorrent or SABnzbd when that fits the source.
A CalDigit TS5 Plus dock connected to a MacBook M1 Max can stop reading SD card and mini SD card slots after staying connected for a long time. Unplugging and reconnecting the dock makes the slots work again, but only for a short time before the same failure returns. The practical workaround is to use the Mac’s own card reader instead of the dock. A similar problem also appears with external drives. After one drive is connected to the front USB ports and then quickly swapped for another drive, the new device may not be detected. Keeping the software fully updated has not fixed the issue.
A Mac Mini M2 Pro may become the main storage machine for a family with a large amount of files. Some family members still use older iMacs, and a computer upgrade may happen in 2 to 4 years. Past problems with memory card size limits raised a concern that external hard drives might have similar limits. Current single hard drives can reach about 40TB, and future Toshiba drives could possibly reach 150TB. The main question is whether a Mac user needs to check a maximum size limit for each external drive, or whether backward compatibility of the connection is the main issue.
AudioMuse-AI is a free open-source tool that analyzes music files and creates automatic playlists. It works with Jellyfin, Navidrome, Emby, Lyrion, and music servers that support the Open Subsonic API. Jellyfin and Navidrome plugins are already available, and a Music Assistant provider plugin is planned so it can be controlled by voice later. In a Raspberry Pi 5 8GB setup with an SSD expansion board, version 2.4.0 used about half of the CPU and memory on average during the heaviest step, which is music analysis. Short peaks still did not fill all available resources. The setup keeps analysis and data on the owner’s own computer, so it depends less on outside services that could later add a paywall or block access.