Ollana (Ollama Over LAN)
Auto-discover your Ollama server on your local network with hassle-free ease.
Use your home or office Ollama server from any device on the same network without changing settings in your client applications or setting up a reverse proxy.
Table of Contents
:thinking: Why
- No need to specify the IP address of an Ollama server - Automatically discovers Ollama servers on your local network using UDP broadcast.
- No need to modify your client application configuration - Connect to a remote Ollama instance as if it were running locally.
- Secure the network traffic via TLS - Network traffic is secured using TLS, employing self-signed X.509 certificates.
- Simple AuthZ and AuthN - Unauthorized access is prevented through explicit bi-directional device management.
Installation
:dvd: Binaries
The pre-compiled binaries for Linux and MacOS are available for download on the Releases page
📦 crates.io
You can install latest ollana from crates.io
:memo: From source
Requires Rust (Edition 2021).
# or via cargo install
:penguin: Linux distros
Gentoo linux
It is available via lamdness overlay
:man: Usage
Allow devices

First thing you need to do before running a proxy is to set up authorization between your Ollana server and client. This process requires approving the unique Device IDs for both the server and client on each end.
For this, you need to get the Device IDs of both server and client by running the following command on each machine:
# SHA-256 hash of the X.509 certificate that's automatically generated upon running any ollana command (including this one)
You need to copy the Device IDs and allow them on both sides by running:
Device management
Surprisingly you can also see the allowed Device IDs:
And disable them as well:
Serve


Now you can run a proxy. It automatically detects the mode (client or server) to run in by checking whether an Ollama server is running on your machine.
$ ollana serve
It also support an old-style SysV daemon mode to run in a background:
$ ollana serve -d
Run as a system service
It is recommended to run it as a background process. This repository doesn't contain scripts for any particular start up system.
You can find a SystemD and OpenRC scripts in my Gentoo overlay: https://github.com/grouzen/lamdness-overlay/tree/main/app-misc/ollana/files.
For example, here is the Systemd unit:
[Unit]
Description=Ollana Service
After=network-online.target
[Service]
EnvironmentFile=-/etc/conf.d/ollana
ExecStart=/usr/bin/ollana serve $OLLANA_OPTS
User=ollana
Group=ollana
Restart=always
RestartSec=3
[Install]
WantedBy=default.target
:pencil: Architecture

See also architecture-overview.md for more details.
:handshake: Contributing
Auto-reloading development server (see: https://actix.rs/docs/autoreload)
watchexec -e rs -r cargo run
Debugging
You can debug the application by setting the RUST_LOG environment variable to the desired level of verbosity. For example, to enable debug level:
RUST_LOG=debug ollana serve
:judge: License
MIT License
Copyright (c) 2025 Mykhailo Nedokushev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
See LICENSE file.