# Deployment Options for OpenLogi: A Complete Guide to Cross-Platform Installation

> Explore OpenLogi deployment options for macOS Linux and Windows. Install easily using native package managers signed installers or portable archives.

- Repository: [Xuan Zhang/OpenLogi](https://github.com/AprilNEA/OpenLogi)
- Tags: how-to-guide
- Published: 2026-08-28

---

**OpenLogi supports macOS, Linux, and Windows through native package managers, signed installers, and portable archives, all built from a single Rust codebase.**

OpenLogi is a Rust-based logistics management application that maintains deployment parity across all major desktop platforms. Whether you need a drag-and-drop macOS bundle, a systemd-managed Linux service, or a per-user Windows installer, the project provides officially supported packaging formats that share identical core binaries and TOML configuration files. This guide covers every deployment method available in the [AprilNEA/OpenLogi](https://github.com/AprilNEA/OpenLogi) repository.

## macOS Deployment Options

OpenLogi distributes macOS builds as signed, notarized application bundles ready for immediate use.

### Signed DMG Distribution

The primary macOS deployment uses a **signed `.dmg` disk image** containing `OpenLogi.app`. Users drag the application to `/Applications` to install. According to the installation instructions in [[`README.md`](https://github.com/AprilNEA/OpenLogi/blob/main/README.md)](https://github.com/AprilNEA/OpenLogi/blob/master/README.md#macos) (lines 87‑105), this bundle includes the notarised GUI application and maintains the standard macOS install path.

### Homebrew Installation

Two Homebrew distribution methods are available:

**Official Homebrew Cask**

```bash
brew install --cask openlogi

```

**Alternate Tap for Latest Releases**

```bash
brew tap aprilnea/tap
brew install --cask aprilnea/tap/openlogi@latest

```

Both methods point to the same release assets as the DMG, ensuring `/Applications` remains the installation directory.

## Linux Deployment Options

Linux users can choose between pre-built distribution packages, NixOS integration, or manual source compilation.

### Native Package Managers

Pre-built packages support `x86_64` and `aarch64` architectures across major distributions:

**Debian/Ubuntu (.deb)**

```bash
wget https://github.com/AprilNEA/OpenLogi/releases/latest/download/openlogi_*.deb
sudo dpkg -i openlogi_*.deb
systemctl --user enable --now openlogi-agent.service

```

**Arch Linux (.pkg.tar.zst)**

```bash
wget https://github.com/AprilNEA/OpenLogi/releases/latest/download/openlogi-*.pkg.tar.zst
sudo pacman -U openlogi-*.pkg.tar.zst
systemctl --user enable --now openlogi-agent.service

```

The packages install the GUI, background agent, udev rules, and a **systemd-user service** (`openlogi-agent.service`) simultaneously.

### NixOS Module

For NixOS users, the project exposes a module through `flake.nix` (lines 38‑44, 99‑111). The module definition in [`packaging/linux/nixos-module.nix`](https://github.com/AprilNEA/OpenLogi/blob/master/packaging/linux/nixos-module.nix) (lines 13‑40) enables the agent as a user service:

```nix
{
  inputs.openlogi.url = "github:AprilNEA/OpenLogi";
  outputs = { self, nixpkgs, openlogi, ... }: {
    nixosConfigurations.my-host = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        openlogi.nixosModules.default
        { programs.openlogi.enable = true; }
      ];
    };
  };
}

```

This configuration handles the entire installation, including udev rules and systemd user services.

### Source Build

Manual compilation requires Rust toolchain availability. Build using the project's custom tasks:

```bash

# CI-style build with all optimizations

cargo xtask ci

# Standard development build

cargo build --release

```

The build process is documented in [[`docs/INSTALL-linux.md`](https://github.com/AprilNEA/OpenLogi/blob/main/docs/INSTALL-linux.md)](https://github.com/AprilNEA/OpenLogi/blob/master/docs/INSTALL-linux.md).

## Windows Deployment Options

Windows deployments utilize WiX-authored installers and portable archives.

### Signed MSI Installer

The **per-user `.msi` installer** requires no administrator privileges. According to [`packaging/windows/OpenLogi.wxs`](https://github.com/AprilNEA/OpenLogi/blob/master/packaging/windows/OpenLogi.wxs) (lines 7‑25, 30‑46, 67‑95), the installer creates a per-user upgrade code and installs to `%LocalAppData%\Programs\OpenLogi`:

```powershell
Invoke-WebRequest -Uri "https://github.com/AprilNEA/OpenLogi/releases/latest/download/OpenLogi.msi" -OutFile "OpenLogi.msi"
msiexec /i OpenLogi.msi

```

The MSI installs four components:
- `OpenLogi.exe` (GUI application)
- `openlogi-agent.exe` (background service)
- `openlogi-overlay.exe` (overlay utility)
- `openlogi.exe` (CLI tool)

### Portable ZIP Archive

For environments requiring no installation, a **portable `.zip`** is available. Extract the archive while keeping all executables together:

```powershell
Expand-Archive -Path OpenLogi.zip -DestinationPath "$env:LOCALAPPDATA\Programs\OpenLogi"
& "$env:LOCALAPPDATA\Programs\OpenLogi\OpenLogi.exe"

```

The portable distribution allows running the application from any directory, though the relative paths between executables must remain intact.

## Configuration Portability

All platforms share identical **TOML configuration files** and core binaries built from the same Rust workspace. This means migrating an OpenLogi installation between macOS, Linux, and Windows requires only copying the configuration file—no format conversion or path adjustments are necessary. The background agent (`openlogi-agent` on Linux/macOS, `openlogi-agent.exe` on Windows) reads the same configuration schema regardless of platform.

## Summary

- **macOS** users can choose between signed DMG bundles or Homebrew Cask installations, both targeting `/Applications/OpenLogi.app`.
- **Linux** supports `.deb`, `.rpm`, and `.pkg.tar.zst` packages with systemd-user service integration, plus a native NixOS module defined in `flake.nix`.
- **Windows** offers a signed per-user MSI installer and a portable ZIP archive, both installing to `%LocalAppData%\Programs\OpenLogi`.
- All deployment methods use the same Rust-built binaries and TOML configuration format, ensuring cross-platform consistency.
- Source builds are available via `cargo xtask ci` or `cargo build` for all platforms.

## Frequently Asked Questions

### Does OpenLogi require administrator privileges to install on Windows?

No. The Windows MSI installer uses a **per-user upgrade code** as configured in `packaging/windows/OpenLogi.wxs`, installing to the user's local app data directory without requiring elevated permissions. This applies to both the GUI application and the background agent service.

### Can I use the same configuration file on different operating systems?

Yes. OpenLogi uses platform-agnostic **TOML configuration files** that work identically across macOS, Linux, and Windows. The core binaries built from the Rust workspace share the same configuration parser, so you can copy your config between machines without modification.

### How do I enable the background agent on Linux after installing the package?

The `.deb`, `.rpm`, and Arch packages install a **systemd-user service** called `openlogi-agent.service`. Enable it with `systemctl --user enable --now openlogi-agent.service`. For NixOS users, setting `programs.openlogi.enable = true` in the NixOS module automatically configures the systemd user service and necessary udev rules.

### Is Homebrew the only package manager supported on macOS?

While Homebrew is the primary package manager integration, OpenLogi also distributes a **signed DMG bundle** for direct installation. The DMG contains a drag-and-drop `OpenLogi.app` bundle that functions independently of any package manager, suitable for enterprise deployments or users who prefer manual installation.