Run Ollama API On macOS With Custom Host Bindings

By default the ollama API runs on the localhost IP address of 127.0.0.1. If you want to host it on all of your Mac's IP addresses it requires that you set a system-wide environment variable. The problem with doing this is that Login Items (in System Settings) can launch before Launch Agents. This means that Ollama (in the menu bar) may not see the host settings. To solve this you need to launch Ollama at startup after a delay.

Here's how to add the host binding for all IP addresses on the Mac and then have Ollama launch 10 seconds after you sign in. This works in macOS 14.5 Sonoma and should work in later versions.

Step 1: Create a launch daemon plist file below. Save it as com.nonsequiturs.ollama.plist.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.nonsequiturs.ollama</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/launchctl</string>
        <string>setenv</string>
        <string>OLLAMA_HOST</string>
        <string>0.0.0.0</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>LaunchOnlyOnce</key>
    <true/>
</dict>
</plist>

Step 2: Copy the file to two locations:

/Library/LaunchDaemons/
~/Library/LaunchAgents/

This will set the host bindings at the system level, and also at the user level. So you should be covered no matter how you launch Ollama in the future.

Step 3: Set file permissions on the system-level file.

sudo chown root:wheel /Library/LaunchDaemons/com.nonsequiturs.ollama.plist

sudo chmod 644 /Library/LaunchDaemons/com.nonsequiturs.ollama.plist

Step 4: Install the launch agents:

sudo launchctl bootstrap system /Library/LaunchDaemons/com.nonsequiturs.ollama.plist

launchctl load ~/Library/LaunchAgents/com.nonsequiturs.ollama.plist

Now your system will start up and bind the Ollama host address to all IP addresses on the Mac.

Step 5: To launch Ollama after a 10 second delay, Open Script Editor and create the simple AppleScript file below.

delay 10
tell application "Ollama" to run

In the File menu choose Export, and then export it as type “Application” and name it “LaunchOllamaDelay”. Save it to your user Applications folder.

In System Settings go to Login Items and add the LaunchOllamaDelay application to the startup items. Also remove any existing Ollama startup item.

Now when you restart and sign in, Ollama will launch after 10 seconds which should be enough time for the Launch Agent to have executed. And if Ollama updates itself in the future it should also just work when it restarts.

#YOUREWELCOME #Apple #macOS #ollama #code #tech #ai

Jul 28


Copyright © 2024 Michael Argentini. All rights reserved.