Updating Odilon version
The installer automatically detects an existing installation and runs in upgrade mode: it stops the
service, takes a rollback snapshot of the current binaries, replaces only the application files, and
restarts. Your configuration in /etc/odilon and all stored objects are never touched.
Download the new package, extract it and run the installer with the same parameters used at install time.
For a default installation (no custom flags) this is all you need:
# download the new version
sudo wget http://odilon.io/resources/odilon-2.1-installer.tar.gz
# extract
sudo tar xvf odilon-2.1-installer.tar.gz
cd odilon-installer-2.1
# upgrade — installer detects /etc/odilon already exists and runs in upgrade mode
sudo ./install-odilon.sh
The installer will print a rollback command at the end in case anything goes wrong, for example:
# rollback to previous version if needed
sudo launchctl bootout system/io.odilon.odilon
sudo cp -a /opt/odilon-backups/odilon/20260707_143000/. /opt/odilon/
sudo launchctl bootstrap system /Library/LaunchDaemons/io.odilon.odilon.plist
Up to 3 rollback snapshots are kept automatically under /opt/odilon-backups/odilon/.
Older ones are pruned when a new upgrade is run.
Migrating from a pre-2.x installation
Pre-2.x releases stored the configuration file inside the installation directory
(/opt/odilon/config/odilon.properties) rather than in /etc/odilon/.
cd odilon-installer-2.1
sudo ./install-odilon.sh
No manual steps are needed — just run the installer the same way as a normal upgrade
The installer detects this automatically and runs in migrate mode:
- Takes a full snapshot of the current installation (binaries and config) as a rollback safety net.
- Copies your existing
odilon.properties to /etc/odilon/odilon.properties — the
canonical location going forward.
- Renames the old
config/ directory to config.migrated.<timestamp>/ — kept
on disk until you remove it.
- Detects and preserves the existing log directory and re-applies correct ownership.
- Replaces the binaries and re-registers the service.
After migration, verify your settings in /etc/odilon/odilon.properties and remove the old
backup directory when you are satisfied:
sudo rm -rf /opt/odilon/config.migrated.*
Fixing the Library/ directory inside /opt/odilon
Pre-2.x installers set the odilon service user's home directory to /opt/odilon.
macOS automatically creates a Library/ folder inside any user's home directory, which is why
you may see it there. The 2.x installer corrects this automatically during upgrade or migrate — setting the
home to /var/lib/odilon instead.
If you need to fix it manually on a running server:
# 1. Stop the service
sudo launchctl bootout system/io.odilon.odilon
# 2. Fix the service user home directory
sudo mkdir -p /var/lib/odilon
sudo dscl . -create /Users/odilon NFSHomeDirectory /var/lib/odilon
sudo chown odilon /var/lib/odilon
sudo chmod 700 /var/lib/odilon
sudo dscacheutil -flushcache
# 3. Remove the Library/ directory that macOS created in the wrong place
sudo rm -rf /opt/odilon/Library
# 4. Restart the service
sudo launchctl bootstrap system /Library/LaunchDaemons/io.odilon.odilon.plist
# 5. Verify
launchctl print system/io.odilon.odilon | grep "state\|exit code"