Software Deployment

Install and update software on managed devices automatically

Written By Erdinc Akay

Last updated 8 days ago

octoja can install and update third-party software on managed devices automatically. Instead of logging into each computer individually, you define which software should be installed, set a schedule, and octoja handles the rest.

Feature status

CapabilityStatus
Browsing and searching software cataloguesAvailable
Adding software to config packagesAvailable
Setting deployment schedulesAvailable
Assigning config packages to devicesAvailable
Agent-side installation and updates on devicesAvailable

How it works

  1. You create a config package — a reusable bundle of settings that can include software deployments, checks, and other configuration.
  2. Inside the config package, you add the software you want deployed and choose a schedule (for example, every night at 2 AM or at every reboot).
  3. You assign the config package to devices or groups of devices.
  4. The octoja agent on each device installs or updates the listed software using the appropriate package manager for that operating system.

Here is what a config package looks like with software deployments configured:

The Software tab on the 'Workstation Software Baseline' config package: three deployments grouped by package manager — Chocolatey > Firefox, winget > Visual Studio Code, APT > nginx — each with desired version 'Latest' and install behavior 'Install & Update'. Deployment Schedule above is set to 'Run every day at 03:00'.

What is a package manager?

A package manager is a tool that automates installing, updating, and removing software. octoja supports five:

Package managerPlatformWhat it is
ChocolateyWindows 7 and newerA community-driven package manager for Windows
WingetWindows 10 (1709+) and Windows 11Microsoft's built-in package manager
HomebrewmacOS and LinuxThe most popular package manager for macOS — installs both command-line tools and graphical apps
APTDebian and Ubuntu LinuxThe standard package manager on Debian-based Linux
CustomWindows (instance-hosted)Custom packages your instance hosts on its built-in Chocolatey feed, with per-deployment parameter values

You do not need to know how these tools work. octoja uses them behind the scenes.

Unlike monitoring checks, software has no external repository to connect: octoja installs from the fixed package-manager catalogues above, or from custom packages you upload and octoja hosts for you. To deploy software that isn't in a public catalogue, package it yourself — see Build and Deploy a Custom Package.

On macOS, Homebrew covers both command-line tools (formulae) and graphical apps such as Google Chrome, Slack, and Visual Studio Code (casks). Casks appear in the package catalogue with a Cask badge. When you deploy a Homebrew package to an Apple-Silicon Mac that does not have Homebrew yet, octoja installs Homebrew automatically first. On Intel Macs, Homebrew must already be installed.

Schedules

ScheduleWhen it runs
At rebootEvery time the device starts up
DailyOnce a day at a time you choose
IntervalEvery set number of hours, such as every hour or every 6 hours
WeekdayOnce every weekday (Monday–Friday) at a time you choose
Specific daysOn the specific days of the week you pick
MonthlyOn a specific day of the month

Install behaviour

BehaviourWhat it does
Install & UpdateInstalls if missing, updates if older version present
Update OnlyOnly updates already-installed software

Deployment mode

Each software deployment runs in one of two modes. The default — Specific package — installs or updates the named package using the version and behaviour you configured. The alternative — Update all outdated — ignores the package fields and asks the package manager to upgrade every package it reports as outdated. Use it alongside specific-package entries to keep an entire device's installed software current without enumerating each package.

Install for

Windows package managers can install software for one of two scopes. macOS (Homebrew) and Linux (APT) ignore this setting — each platform pins the scope its package manager requires.

Install forWhat it does
All users (default)Installs the software for every user of the device. Works even when no one is signed in. Recommended for most deployments.
Current user onlyInstalls only for the user currently signed in, into their profile. Requires someone to be signed in to the device.

Permissions

To manage software deployments, your user account must belong to a group with the Software Deployment Management permission (under Administration → Groups).