The Mac mini is back online, but the Docker services are missing, the knowledge-base index is empty, or the application cannot read its restored files.
Fastest answer: do not rely on Time Machine alone. Use Time Machine for Mac host files, add application-level exports for Docker and local AI data, keep at least one copy away from the original Mac, and test the complete restore on a clean machine.
Who should use this recovery plan
This guide is for anyone running a Mac mini M6 as an always-on home server, especially with Docker Desktop, AnythingLLM, Ollama, or home automation services.
It also fits developers and small technical teams that want to validate a disaster-recovery package on a temporary cloud Mac before touching the production machine.
The recovery target matters more than the backup icon
A completed Time Machine job proves that macOS copied data according to its backup rules. It does not prove that Docker containers, application databases, permissions, vector indexes, and model files can start together after a failure.
We separate recovery into three targets:
- File recovery: retrieve a deleted document, configuration file, or secret.
- Full-machine recovery: rebuild macOS and restore the host environment.
- Service recovery: bring the actual applications back online with their data, credentials, indexes, and expected permissions.
Time Machine is useful for the first target and can contribute to the second. The third target requires an application-aware procedure.
Apple documents Time Machine as a way to back up personal files, apps, and system files, while the recovery process still depends on the condition of the Mac and the destination disk. The relevant boundary is explained in Apple’s Time Machine backup guidance and its Mac restoration instructions.
Our acceptance test is simple: after restoration, the service must answer requests, show its old data, preserve access rights, and survive a restart.
Coverage starts with a complete data map
The first backup mistake is treating “the Docker folder” as the whole application. A Mac server normally has several persistence layers, and each one has a different recovery source.
| Data layer | Typical contents | Preferred protection | Rebuild source |
|---|---|---|---|
| Host files | Compose files, scripts, service notes, certificates, SSH keys, environment files | Time Machine plus an encrypted separate copy | Git, documented setup, or secure secret storage |
| Docker configuration | compose.yaml, .env files, bind-mount declarations, image tags |
Versioned application backup | Recreated from configuration |
| Named volumes | Database files, application state, uploads, internal service data | Quiesced export or application-supported backup | Usually not safely recreated from the image |
| Bind mounts | Local documents, media, automation files, knowledge-base sources | File backup with ownership and permissions checked | Original files or another file repository |
| AnythingLLM storage | Workspace data, documents, database files, vector-related data, cache directories | Application-aware copy after writes stop | Original documents plus application state |
| Ollama data | Downloaded model blobs and model metadata | Re-download plan or a separate model copy | Ollama model registry, if available |
| Docker Desktop VM state | Linux containers and Docker-managed data | Docker Desktop backup or controlled data export | Docker configuration and volume backup |
Docker explains that volumes are managed separately from the container’s writable layer and are intended to persist beyond a container’s lifetime. That means deleting and recreating a container does not automatically recreate the data in its Docker volume storage model.
On macOS, Linux containers run inside Docker Desktop’s virtual machine environment. This creates an important distinction: a visible project directory on the Mac may be only a bind mount, while a named volume may live inside Docker’s managed environment. Copying the project directory alone can therefore miss the database or application state.
Docker Desktop also provides its own backup and restore process for its internal data. We treat Docker Desktop’s backup and restore documentation as a separate recovery path, not as proof that a generic host backup is sufficient.
Does Time Machine back up Docker Desktop containers and volumes?
It can protect files that macOS exposes to the backup system, but “the container is present in a backup” and “the container can be restored and started” are different claims.
A container image is often replaceable. A database inside a named volume, an access token in an environment file, or an uploaded document may not be. Docker Desktop’s internal VM data also has its own lifecycle and compatibility concerns. Restoring an opaque application bundle across Docker Desktop versions should not be treated as equivalent to restoring a portable Compose project and an application-level data export.
Our preferred approach is:
- Keep Compose files and service documentation outside the Docker-managed data area.
- Record image names, tags, runtime variables, ports, mounts, and required networks.
- Back up named volumes using a controlled export or the application’s supported method.
- Back up bind-mounted files directly.
- Use Docker Desktop’s documented backup controls when the recovery objective includes Docker’s internal state.
- Rebuild the environment on a clean Mac instead of assuming a copied VM opens perfectly.
Docker’s settings documentation describes backup-related controls and local file-sharing behavior in Docker Desktop settings. The practical implication is that the backup plan must name the persistence layer being protected. “Docker backup” is too vague to be an acceptance criterion.
A local AI knowledge base needs more than its source documents
A local knowledge base usually contains at least four logically connected elements:
- The original documents.
- The application database and workspace metadata.
- The vector index or vector-store data.
- Configuration such as embedding settings, model selection, API keys, and storage paths.
AnythingLLM’s storage layout is especially important because the documents and application state are not interchangeable. Its repository documentation describes the server storage structure and the role of its stored files in the AnythingLLM storage guide.
A directory copy can still be invalid if the database was changing during the copy. A file may exist, yet the database journal, index, or related metadata may not match it. We therefore pause ingestion, stop the relevant container, or use an officially supported export before creating the backup package.
For a migration to another Mac, restore in this order:
- Install the compatible macOS and Docker Desktop environment.
- Restore the Compose files and configuration templates.
- Restore secrets through a controlled method rather than pasting them into shell history.
- Import the Docker volume or application data export.
- Restore the AnythingLLM storage directory and original documents.
- Start the application with writes disabled until the first validation passes.
- Check that the old workspace, document list, and retrieval results are present.
- Re-enable ingestion only after the restored data is accepted.
This is why a local knowledge-base backup should be assessed by its retrieval result, not by its archive size. If the application opens but cannot find a previously indexed document, the recovery is incomplete.
Ollama models should be ranked by replacement cost
Ollama model files can be large, and their value depends on the recovery environment. The correct decision is not “always copy every model” or “never back up models.”
Ollama documents its macOS storage location and model handling in the Ollama macOS documentation, while its FAQ explains how models and related settings are managed in the official Ollama FAQ.
We classify each model using four questions:
- Can the exact model be obtained again?
- Is the recovery Mac allowed to download it?
- Is the network connection reliable enough for the download?
- Would a model-version change alter the knowledge-base or automation result?
If the answer to the first three questions is favorable, backing up the model manifest, model names, versions, and application configuration may be more efficient than copying every model blob. If the server must work offline, operates behind restricted network access, or depends on a model that may disappear or change, model files deserve their own protected copy.
The original documents and configuration generally outrank replaceable model binaries. That priority reverses when model retrieval is uncertain or the system must recover without internet access.
Consistency is the dividing line between a copy and a usable backup
The most dangerous operation is copying active database or vector-index files while the service is writing to them. The result may look complete in Finder and still fail during startup or search.
Before backup, create a small runbook for each stateful service:
- Stop new document ingestion.
- Wait for current indexing work to finish.
- Export data through the application when that option is supported.
- Stop the related container if a filesystem-level copy is required.
- Record the application, Docker Desktop, Compose, and macOS versions.
- Generate checksums for the archive or exported files.
- Record the backup location and encryption status.
- Restart the service only after the backup job has completed.
For Docker, the volume itself is the data object, not merely the container name. For AnythingLLM, the database, source documents, and vector-related files must be restored as a compatible set. For Ollama, the model inventory and configuration should be recorded even when the model files are not copied.
We do not label a job “successful” because the archive completed. We label it successful only after a clean environment can use the restored application.
Failure isolation requires more than one copy
A local APFS snapshot can help recover from an accidental change, but it lives on the same physical storage system as the original data. An external Time Machine disk improves separation, but a disk that remains permanently attached to the server is still exposed to theft, electrical damage, ransomware, or the same household incident.
The following matrix keeps the failure scope visible:
| Failure | APFS snapshot | External Time Machine disk | Application export | Off-host copy | Clean Mac test |
|---|---|---|---|---|---|
| Accidental deletion | Good | Good | Good if recent | Good | Not essential |
| Docker Desktop corruption | Limited | Possible, but restore must be tested | Good | Good | Recommended |
| macOS reinstall | Limited | Good for host files | Good for services | Good | Recommended |
| Internal disk failure | No | Good if the disk is healthy and separate | Good | Good | Recommended |
| Main Mac unavailable | No | Only if the disk is accessible elsewhere | Good | Good | Required for confidence |
This is not a recommendation to collect backup products without a purpose. Each copy should answer a different failure mode. The minimum sensible design for a permanent home server is Time Machine plus application-level exports plus an off-host copy. A real restore rehearsal then tells us whether those pieces fit together.
The clean-Mac rehearsal proves service recovery
The best test begins with an empty or disposable Mac, not with the production host. Recreate the software layer from documented inputs:
- Install the required macOS release and record the version.
- Install the compatible Docker Desktop release.
- Restore the Compose project and environment-template files.
- Import the named volumes or restore the application export.
- Recreate bind mounts with the intended ownership and permissions.
- Restore AnythingLLM’s data and source documents.
- Install or re-fetch the required Ollama models.
- Start services in dependency order.
- Check container health and logs.
- Open the expected workspace and history.
- Run searches against documents that existed before the incident.
- Reboot the test Mac and repeat the service checks.
- Record checksum results, software versions, errors, and elapsed recovery time.
A temporary cloud Mac can validate this software restoration path when the team has no second physical Mac. It is useful for confirming that Compose files, volume exports, AnythingLLM data, and Ollama configuration are portable.
It cannot replace physical testing of the actual backup disk, local network discovery, USB devices, power loss, router dependencies, or other hardware connected to the home server. A cloud environment tests the application package, not the entire household infrastructure.
Teams that need a disposable environment can first review JexMac’s available Mac access options and use a temporary instance for the restore rehearsal rather than interrupting a live household server. The objective is validation, not permanent migration.
The weekly decision checklist
Use this checklist before calling a Mac mini M6 server protected:
- [ ] Compose files, image references, ports, mounts, and environment variables are stored outside the Docker VM.
- [ ] Secrets are recoverable without relying on one local shell profile.
- [ ] Every Docker named volume has a documented export or restore method.
- [ ] Every bind mount has been included and its permissions have been checked.
- [ ] AnythingLLM source documents, database, workspace state, and vector-related files are mapped.
- [ ] Ollama model names, versions, configuration, and replacement plan are recorded.
- [ ] Stateful services are paused or stopped before filesystem-level copying.
- [ ] At least one backup copy is outside the original Mac and its internal disk.
- [ ] The backup archive has a checksum or equivalent integrity record.
- [ ] A clean-Mac restore has confirmed container health and application access.
- [ ] A knowledge-base search has returned a known pre-incident document.
- [ ] The restored services have survived a restart.
- [ ] Recovery time and unresolved errors are written into the runbook.
- [ ] The team knows which parts still require physical testing.
The checklist exposes a common cost problem: copying more data does not necessarily improve recovery. A large model directory may be less valuable than a small, complete Compose project, secret inventory, document archive, and database export.
The cost model favors layered backups
A Time Machine-only setup appears simple because it has one destination and little administration. Its hidden cost arrives during recovery, when the operator must discover missing volumes, reconstruct permissions, identify model versions, and rebuild indexes under pressure.
An application-aware plan adds maintenance work, but it reduces uncertainty. The right backup frequency depends on:
- How often the source documents change.
- How expensive it is to regenerate an index.
- How quickly the service must return online.
- Whether the model can be downloaded again.
- How large the non-replaceable data set is.
- Whether the server supports offline recovery.
For a frequently changing knowledge base, schedule exports around ingestion activity rather than copying a static model directory on an arbitrary calendar. For stable models, keep a manifest and a tested retrieval plan unless offline recovery requires local model binaries. For credentials and Compose files, versioned and encrypted protection matters more than raw volume.
Our default recommendation is Time Machine for the Mac host, application-level backup for stateful services, an off-host copy for isolation, and a clean-Mac rehearsal for proof.
Time Machine alone is not the best long-term server plan
A Mac mini M6 running Docker and local AI services can be quiet and compact, but a Time Machine-only design has three real weaknesses: it does not define application-consistent exports, it may leave Docker-managed data dependent on a virtual-machine restore, and it provides no evidence that AnythingLLM or Ollama will work after migration.
Buying a second Mac can provide a strong physical test target, but it ties up capital and may sit unused between rehearsals. A cloud environment is more flexible for short validation cycles, yet it cannot test local disks, USB devices, power events, or home-network dependencies.
For a team that needs temporary compute to validate a backup package without taking its production Mac offline, renting a Mac through JexMac can be the more controlled option. Start with the backup archive, run the documented restore, and choose the rental period from the measured recovery work rather than guessing before the first test. The JexMac order page is the appropriate next step when a temporary Mac is needed for that software-level rehearsal.
A Mac mini server is ready for dependable use only when the service, not merely the backup task, has been restored and verified.
Strengthen Your Mac Server Recovery Plan
Use JexMac as a dedicated remote Mac environment for testing restores, rebuilds, and disaster recovery procedures.