Updates

How your Freedom Messenger server stays up to date with security fixes and new features.

Automatic Updates (Recommended)

The easiest way to receive updates is to let us push them to your server automatically. Here is how it works:

  1. You provide us with SSH access to your server (a deploy key)
  2. We add your server's IP address to our CI/CD deployment pipeline
  3. When a new version is released, it is automatically deployed to your server
  4. The process: stop service → back up database → replace binary → copy app files → start service
For managed hosting customers, automatic updates are included — you do not need to do anything.

Setting Up Auto-Updates

To enable automatic updates on a self-hosted server:

  1. We will provide you with a public SSH key
  2. Add it to /home/deploy/.ssh/authorized_keys on your server
  3. Tell us your server's IP address
  4. We add it to the deploy pipeline — updates happen automatically from then on

The deploy user has restricted sudo access — it can only start and stop Freedom Messenger services, nothing else.

Manual Updates

If you prefer to update manually (for example, if you do not want to give SSH access):

  1. We provide you with the new binary file
  2. Back up your database: freedom-mess backup
  3. Stop the service: sudo systemctl stop freedom-mess
  4. Replace the binary at /usr/local/bin/freedom-mess
  5. Start the service: sudo systemctl start freedom-mess
  6. Database migrations run automatically on startup

One-Time Purchase Customers

If you purchased a one-time license, you received the version available at the time of purchase. No updates are included. To receive future updates:

  • Subscribe to the updates plan (from $5/mo) — we set up SSH access and push updates automatically

What Happens During an Update

The update process is designed to be safe:

  • A database backup is created before replacing the binary
  • The old binary is saved as .bak for rollback
  • New app files (APK, desktop installers) are copied to data/apps/
  • Database migrations run automatically when the new version starts
  • If anything goes wrong, restoring the old binary and backup database reverts the change

Rollback

If an update causes problems:

# Restore old binary
sudo cp /usr/local/bin/freedom-mess.bak /usr/local/bin/freedom-mess

# Restore database backup (if needed)
cp /opt/freedom-mess/data/freedom-mess-pre-update.db /opt/freedom-mess/data/freedom-mess.db

# Restart
sudo systemctl restart freedom-mess

Best Practices

  • Always back up before updating manually
  • Monitor server logs after an update: journalctl -u freedom-mess -f
  • Auto-updates are preferred — they include the backup step automatically