You now have four sensible deployment options
| Option | Choose it when… | Notes |
|---|---|---|
| Native app | You want the best desktop, GPU, and microphone integration. | Best default for a personal workstation. |
| Docker | You want a repeatable service boundary and easy rebuilds. | Great after the native version is understood. |
| Virtual machine | You value isolation and snapshots more than maximum hardware access. | Audio and GPU passthrough can add complexity. |
| Dedicated mini-PC | You want an always-on household assistant reachable over your LAN. | Keep the service firewalled to trusted networks. |
Native auto-start
Run Ollama using its normal platform service/app behavior, then start your controller at login or as a user-level service. Avoid running the controller with elevated privileges.
VM design
A VM can be excellent for a controlled lab. A simple layout is:
Host computer
└── Linux VM
├── Ollama
├── local model files
├── Python assistant
├── SQLite memory
└── restricted shared folderUse a NAT or host-only network when you do not need LAN access. Pass through only the devices and folders the assistant actually needs.
Dedicated local server
Mini-PC / old laptop
├── Ollama + model
├── assistant service
├── memory database
└── authenticated LAN interface
├── desktop client
└── phone clientIf you later add remote access, put authentication, TLS, firewall rules, and a hardened application layer in front of it. A private LAN deployment is a much safer starting point.
Back up the parts that are actually yours
- Your controller source and configuration.
- Your SQLite memory database, if you want to preserve it.
- Your tool permission configuration.
- Your prompt/Modelfile.
Model files can usually be downloaded again, so they do not need to dominate your backup strategy.
Where to go next
- Semantic document search / retrieval-augmented generation (RAG).
- Wake-word detection.
- Local web UI usable from another device.
- Per-tool permission profiles.
- Encrypted memory or OS keychain integration for secrets.
- Task scheduling and local automations.
- Multiple local models for fast/slow routing.
You have a local assistant architecture you understand, can inspect, can back up, and can restrict. That is much more valuable than a black-box script with unlimited permissions.
Reference build
Download the text-mode starter with SQLite memory and workspace-limited tools.