Setup, power and thermals, and software tips for running a Mac mini as a home server or self-hosting box.
A self-hosted web tool is needed for collecting inspiration files such as photos, videos, and screenshots in one place, then organizing them with folders, tags, and notes. Eagle.cool works locally on one computer, but it does not solve remote web access and its folder structure can become messy. Immich is usable, but it is already being used for personal photos, so switching between separate libraries would add friction. Stash has some useful media features, but its adult-content-focused structure does not fit this need. Pinry is no longer actively updated and lacks folder support. Karakeep does not support video, which rules it out. The needed setup is installation through Docker Compose, management in Portainer, media storage on a NAS, folders and subfolders, annotations, tags, a web UI, and remote access through Nginx. Video preview thumbnails would be a useful extra.
One 27-inch monitor is being shared between a Windows work laptop and a Mac mini M4. A Logitech MX Keys keyboard makes it easy to switch typing between the two machines. The missing piece is the screen, because changing the monitor back and forth is inconvenient. A 7-to-10-inch display under the main monitor would keep the Mac mini visible and ready, while an HDMI switch has already been tried and did not feel right.
The Mac mini’s power button can still be pressed by lifting the device slightly. Putting the button on the bottom keeps the outside of the machine cleaner and more continuous. Complaints about the button placement may be stronger than the real everyday problem. The basic tradeoff is simple: a cleaner look versus an easier-to-reach button.
On an M3 Mac with 16GB of memory, running an IDE, a database, a Docker image, Excel, Postman, and Chrome at the same time can push memory use hard. Compressed memory is rising, which usually means macOS is trying to fit more active work into limited memory. The possible upgrade is an M4 Mac mini with 24GB of memory and 512GB of storage. The real question is not only speed, but whether the machine will last longer and whether the upgrade is worth the money when income from projects is currently lower.
A setup guide is available for running a local LLM with OpenClaw on a Mac mini. It was tested on macOS machines with 16GB to 24GB of memory. The guide uses a quantized version of qwen 3.5 and configures it specifically for OpenClaw. It also includes a test skill so the setup can be checked after installation. The goal is to reduce the friction of getting a local model working with OpenClaw. People who run into problems are asked to report them in the comments.
nasdisks.com puts current NAS hard drives into one searchable table. Each drive shows whether it uses CMR or SMR, its real failure rate, and live pricing. The failure rates are calculated from Backblaze’s full 2025 stats instead of manufacturer marketing claims. Prices are shown as cost per terabyte across seven regions: the US, Germany, the UK, France, Spain, Italy, and Canada. Each drive also has a small price history chart, which helps show whether a deal is actually good. The site needs no account, has no ads, and does not ask for email. The full CSV/JSON dataset is free to download under CC BY 4.0, and there is also an API for people who want to pull the data into their own tools.
A public website with about 100 visitors a day needs a better way to collect visit statistics. Plausible is already in use, but other tools are being considered, especially tools that can be installed and run on a private server. There are no ads on the site, and ads are not planned. The goal is mainly to understand traffic and collect useful statistics. GDPR compliance is important, especially if it avoids showing a cookie consent banner. The main need is a lightweight self-hosted analytics setup that can collect as much useful site data as possible without adding unnecessary tracking or legal friction.
In a classroom with 12 M1 Mac Studio machines, 8 suddenly started showing a self assigned IP. That usually means the Mac did not receive a normal network address. The machines had worked in the same room for three years, were fine on Friday, and stopped checking in by Monday morning. A Mac laptop connected to the same network port received a normal IP address. The affected Mac Studio machines could connect when a Thunderbolt Ethernet adapter was used, so the failure seems tied to the built-in NIC. Wiping one affected machine and removing all JAMF profiles did not fix it. Moving a working Mac Studio to one of the supposedly bad spots still allowed it to get an IP address, so the issue does not look like a simple bad port or cable problem.
MiniMax M3, GLM-5.1, and Nemotron 3 Ultra are new open-weight models aimed at coding agents and reasoning work. Their benchmark scores are close enough that the practical question is not which one ranks highest, but which one can actually run on available hardware, what license it uses, and how it connects to an agent setup. All three need server-class machines. A realistic setup means an 8x H100 or 8x H200 system, or 4 to 8 B200 GPUs, and renting that hardware by the hour may be the practical route. None of these models fits on a single GPU, a laptop, or a small home server. MiniMax M3 has 427 billion total parameters with 26 billion active parameters, uses MoE, supports a 1 million-token context, and uses the MiniMax Community License. GLM-5.1 has 754 billion parameters, uses MoE, supports about a 200,000-token context, and uses the MIT license. Self-hosting makes sense for privacy, large-scale throughput, or fine-tuning, not just to save a small amount on API costs.
Corvus is a communication platform that teams and communities can run on their own server. Its goal is to offer Discord- or Slack-style chat and voice while giving the operator more direct control over where the service runs and how the data is handled. Planned features include real-time messages, servers, channels, roles, permissions, invites, direct messages, group chats, threads, reactions, embeds, and typing indicators. Voice and video channels use LiveKit, with screen sharing and push-to-talk also planned. The desktop app uses Tauri instead of the heavier Electron approach and includes native notifications. The roadmap also includes stage channels, Kanban boards, docs, and GitHub code review views. The backend is meant to be self-hosted and uses Postgres and Supabase. The project is still early, so it is not ready to fully replace Discord or Slack today.
Uhella is a photo-management tool that runs on a Mac mini. When it is installed and left running, it creates a special “Keep Forever” album in iCloud. The user can choose how many photos should stay in iCloud. After that limit is passed, older photos are moved into a backup archive automatically. The cleanup happens in the background without manual sorting each time. The project is available on GitHub.
The planned home lab server has a budget of about $1,000. The existing setup already includes a UDM Pro, three Raspberry Pis, and Pi-hole, with a rack-mounted UniFi power-over-network switch planned next. The new server would run Proxmox with several virtual machines and Docker containers. The services would include Jellyfin, Immich, Home Assistant, a Minecraft server, and a Kubernetes learning setup. It would also be used for coding, Android app development, and possibly light AI experiments later. The internet connection is 2.5 gigabit fiber, with a planned 10 gigabit network card. The target starting memory is 64 gigabytes, with room for several NVMe drives. A newer Ryzen or Intel setup is preferred over an older Xeon server unless there is a strong reason to choose the older hardware.
Replacing Spotify with a self-hosted music setup needs more than playing music files stored on a home server. The desired experience is closer to Spotify or Tidal, working smoothly on both phone and PC. The key requirements are searching external sources, streaming songs directly, getting useful recommendations, finding public playlists online, and creating personal playlists. A useful extra would be automatic caching, where played songs are saved on the server for a while and deleted later if they are not used. Offline playback on a phone would also be helpful. Navidrome is being considered, but it is unclear whether it can cover all of these needs.
Trinket.io was shutting down and released its source code as open source. That made it possible for someone else to run the service again. Trinket is now available for free at https://trinket.strivemath.org/. When web services close without releasing their source code, useful sites, software, games, and small tools can disappear permanently. This case shows how open source releases can let another operator preserve a service after the original one ends.
papersweep.eu turns one large scanned PDF into separate, sorted documents. It uses blank pages to split the scan into document sections, then Mistral AI OCR reads the text on each page. A second Mistral AI step classifies each document into one of 16 types, including invoices, tax documents, insurance papers, payslips, contracts, and medical documents. The output is a ZIP file with categorized folders plus an Excel log. It can handle mixed European languages in the same batch, detect each document’s language, and create folder and file names in that same language. It does not require an account or cookies, and files on EU servers are deleted within 2 hours or immediately on request.
A Mac Mini M4 used all day and night for AI development work may need extra attention to cooling. The workload includes Codex, Claude Code, a Hermes agent with 6 sub agents, and MiniMax 3 for app development. The main point is that a small, quiet Mac Mini can still face heat pressure when it is treated like an always-on work machine. No temperature readings, cooling method, product choice, or before-and-after result were provided.
NZBdav and AIOstreams are running from Docker Compose templates. Searches in Stremio or Nuvio return results as expected, but choosing a stream to download and watch always fails with an error saying access to the /data path is denied. The container folder appears to have the intended permissions, but the failure points to a mismatch between the path inside the container, the folder mounted from the host machine, the user ID, or the group ID. The setup includes timezone settings, user ID and group ID settings, restart rules, Docker networks, Traefik routing, Authelia protection, and a mounted nzbdav data folder. The import strategy is set to STRM files.
A small home server is built with an AMD Ryzen 3500, an Nvidia P2000 graphics card, 32GB of DDR4 memory, four 3TB HDDs, two 2TB HDDs, two 250GB SSDs, and an LSI9300-16i 12G storage card. TrueNAS is being tested, but it does not feel easy or comfortable to use. The goal is to find another home server OS that is free and easier to understand. The practical need is an operating system that can handle many drives without making setup and daily management feel too complicated.
Jellyfin fails during a custom install because port 1900 is reported as already in use. The setup is meant to point Jellyfin at the correct movie and TV show folders. The system is a clean Zorin install, and Jellyfin is the first app being installed. That means the conflict may come from a default system service or base setup, not from a long list of existing apps. The next useful step is to find what is using port 1900 and then change either that service or Jellyfin’s settings.
A home Jellyfin media server buffers badly on some video files, especially one specific file. Other videos at the same quality level start right away, both on the home network and from outside the home through Tailscale. The internet connection has 900Mbps upload speed, so bandwidth does not look like the main limit. An RTX 3060 graphics card is dedicated to video conversion, and GPU access through Docker is already working. Most of the library is made of Blu-ray 1080p remux files. The issue is more likely tied to that file’s format, encoding, subtitles, audio track, or how Jellyfin decides to convert it, rather than the whole server being too weak.
Ghost CMS suddenly used 100% CPU even though there was no traffic jump and no update running. Restarting the container only helped for a few minutes before the problem returned. The cause was one bad record in the SQLite database table `welcome_email_automation_runs`. Its `next_welcome_email_automated_email_id` value pointed to an email that did not exist, so Ghost CMS kept retrying the welcome email job in a loop. Running `sqlite3 /path/to/ghost.db "UPDATE welcome_email_automation_runs SET next_welcome_email_automated_email_id=NULL;"` cleared the bad value and fixed the CPU usage right away. No restart was needed. It is still unclear whether this happens more often with SQLite than with MySQL setups.
A Raspberry Pi 4B running a separate reverse proxy caused much slower access when services were opened through a domain name. The test was done inside the LAN, not over a remote connection. Access through the FQDN dropped to about 350Mbps, while direct IP:port access reached about 600Mbps. Moving the reverse proxy to the main computer, which has a 2.5Gb connection, brought speeds back in line with direct access. That points to the reverse proxy device or its network connection as the likely bottleneck. The setup still needs a separate ingress device because the main computer is often used for tinkering, and keeping network entry on another machine helps reliability. The desired replacement is small enough for a Raspberry Pi rack shelf and has at least one 2.5Gb port or two gigabit ports. The Radxa X4 looked like a good fit, but it was hard to find for sale at a reasonable price.
AWS often appears as a job requirement, and the main question is why that is so common. Self-hosting can look cheaper than paying for cloud services. The key issue may be auto-scaling, which lets a service add or remove server capacity when demand changes. The practical question is whether a self-hosted setup can offer something similar without using AWS.
The goal is to run a macOS virtual machine on a Dell Precision 5820 with Proxmox, so it can act as close as possible to a real Mac laptop. The planned practice work includes enrolling a device into Intune, sending apps from Intune to Apple devices, managing Apple devices with other MDM tools, and learning Apple certificate requirements for Intune. The hardware has an i9-10980XE processor, 128GB of memory, a 1TB SSD, and VT-x support. The needed setup is not just a basic bootable macOS system, but one with good enough performance to feel like a working Mac. The main concerns are how to get and install macOS, which macOS version to choose, how to avoid performance problems, and how to stay within Apple licensing and legal rules. The background is strong Windows, Linux, and cybersecurity experience, but little direct Mac experience.
The goal is to keep an international SIM card available for receiving SMS verification codes, then forward those messages to a main phone. The desired forwarding methods are email, notifications, webhook, or any API that can be wired into automation. Two possible setups are on the table: connecting a modem that can hold the SIM card, or using an old phone with SMS forwarding software. No proven setup, product name, carrier detail, or step-by-step method is included yet.
Songs on music streaming services can disappear over time. Copyright issues, local laws, artist takedowns, and missing song versions can slowly shrink a playlist. Some services may also limit personal uploads, so local music collections do not always fit neatly into a normal streaming app. If the main goal is to avoid losing a loved song, a self-hosted music server can be the safer option. The tradeoff is that services like Spotify still offer recommendations, convenience, and exclusive features that a personal server may not replace. The real choice is between long-term control over the music library and the ease of a commercial streaming service.
A donated MacBook Pro still has the previous owner’s Apple ID on it. The owner did not remove the account, and macOS Recovery cannot continue because it asks for a FileVault recovery key. That key is also unknown. The practical question is whether the machine can be reset to factory settings before contacting the previous owner.
A Mac Mini G4 has a failed graphics chip. Common ATI 9000 and ATI 7500 series chips are easier to find, but this machine needs an ATI 9200 SE chip instead. A matching 9200 SE graphics card is available on eBay for about $20, but using it would mean taking the chip off a working card to repair the Mac Mini. The wanted replacement chip markings are “215L74AVA12PH” or “215J78AVA12PH”. Before the chip was removed, the machine had visible display output problems.
In a firsthand trial, Claude Code and a $20 per month Claude Pro account were enough to build a small Mac quick-capture app in 55 minutes. The only visual reference was one screenshot, and the first prompt was 94 words, followed by many approvals and a few extra tweak prompts. The finished native app is 1.4 MB and was installed on a Mac Mini, where it has worked well so far. It connects to a Craft Documents account. It is meant for fast notes during calls that cannot be recorded for privacy reasons, without keeping the full Craft app open all the time. It starts automatically at login, opens with a hotkey, accepts typed notes or dropped-in images, lets the person choose or search for a Craft document, and appends the content right away. The main point is that someone with only light HTML and CSS editing experience could make a useful personal Mac tool from scratch with AI help.
Fluxer is an open-source chat app built around user control and self-hosting. Its internal development work is moving back into public repositories. Self-hosting is now officially supported, with setup docs, pre-built Docker images, and hundreds of reliability fixes. The Android app is publicly available, while the iOS app is in closed beta. The mobile app is still unfinished and does not currently work with self-hosted servers. Android was opened earlier because testing on systems without Google Play Services would be hard if access stayed limited. Stable versions are planned for multiple app stores later.