Linux Setup
Set up Freedom Messenger on a Linux server. The setup is done together with us — we provide the files and walk you through the process.
How Distribution Works
Freedom Messenger is not publicly available for download. The repository and releases are private. Here is how you get the server files:
- You contact us and choose a plan (managed or self-hosted)
- We provide you with the server binary and setup scripts for your platform (amd64 or arm64)
- For managed hosting, we handle the entire setup — you just use the messenger
- For self-hosted, we guide you through the installation
curl | bash installer or Docker image. All distribution is handled personally to ensure proper setup and support.
What the Setup Does
Once you have the binary and scripts, the setup process:
Creates a deploy user
A dedicated deploy user is created with restricted sudo access. The server runs under this user for security isolation.
Creates directory structure
Installs to /opt/freedom-mess/ with subdirectories for data and configuration.
Places the binary
The server binary is placed at /usr/local/bin/freedom-mess and given CAP_NET_BIND_SERVICE capability to bind to ports 443 and 80 without root.
Runs the setup wizard
An interactive wizard asks for your domain, transport mode, and generates encryption keys. See Transport Modes for details.
Creates a systemd service
Installs and enables a systemd service with security hardening (512 MB memory cap, OOM protection, restart throttling).
Starts the server
The server starts and generates a first invite link. Open it in your browser to create the admin account.
Prerequisites
- A Linux VPS (Ubuntu 22.04+ recommended) with root access
- A domain name with DNS A record pointing to the server IP
- Ports 443 and 80 open (for HTTPS mode) or port 8080 (for Cloudflare mode)
- At least 1 GB RAM and 10 GB disk space
Managing the Service
# Check status
sudo systemctl status freedom-mess
# View logs
sudo journalctl -u freedom-mess -f
# Restart
sudo systemctl restart freedom-mess
# Stop
sudo systemctl stop freedom-mess File Locations
| Path | Contents |
|---|---|
/usr/local/bin/freedom-mess | Server binary |
/opt/freedom-mess/config.toml | Configuration file (mode 0600) |
/opt/freedom-mess/data/ | SQLite database, uploaded files, app binaries |
Next Steps
- Configuration — understand and customize config.toml
- Backup & Recovery — set up regular backups
- Updates — how to receive updates