Headless Linux Installation
This guide covers installing File Mover Express as a headless CLI daemon on Linux — no desktop environment required. This is the recommended setup for remote servers, render farms, and cloud instances where you want to run transfers unattended or control them remotely from a GUI on another machine.
Download
Download the CLI binary for your architecture from the Releases page:
| Architecture | File |
|---|---|
| x86_64 (Intel/AMD) | filemoverexpress-linux-amd64 |
| ARM64 (Graviton, etc.) | filemoverexpress-linux-arm64 |
Install
# Download (replace URL with the latest release)
curl -Lo filemoverexpress https://github.com/awslabs/filemoverexpress/releases/latest/download/filemoverexpress-linux-amd64
# Make executable and move to PATH
chmod +x filemoverexpress
sudo mv filemoverexpress /usr/local/bin/
# Verify
filemoverexpress --version
Configure AWS credentials
File Mover Express uses AWS named profiles for authentication. Install the AWS CLI and configure a profile:
# Install AWS CLI (if not already present)
# See https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
# Create a named profile with your credentials
aws configure --profile my-studio
You'll be prompted for:
- AWS Access Key ID
- AWS Secret Access Key
- Default region (e.g.
us-west-2) - Default output format (press Enter to skip)
Configure File Mover Express
Create the configuration directory and file:
mkdir -p ~/.filemoverexpress
Create ~/.filemoverexpress/configuration.yaml:
transferProfiles:
my-studio:
profile: my-studio
bucket: your-bucket-name
region: us-west-2
remoteConfigurations:
- remoteConfigurationName: rushes
s3DestinationFolder: incoming/rushes
See Configuration for all available options including checksums, bandwidth throttling, and hot folders.
Run the daemon
Basic (local only)
Start the daemon for local CLI transfers:
filemoverexpress daemon
Remote access (connect from GUI on another machine)
To allow the GUI on another machine to connect and control transfers remotely:
1. Set up a pre-shared key (PSK) for authentication:
filemoverexpress crypto encrypt
Follow the prompts to encrypt your chosen password. Say yes when asked to save it to the configuration file.
2. Start with remote access enabled:
export FME_PSK_SECRET="your-secret-passphrase"
filemoverexpress daemon --remote
See Remote Daemon Configuration for full details on TLS and security setup.
Run as a systemd service
For production use, run the daemon as a systemd service so it starts automatically and restarts on failure.
Create /etc/systemd/system/filemoverexpress.service:
[Unit]
Description=File Mover Express daemon
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=fme
Group=fme
ExecStart=/usr/local/bin/filemoverexpress daemon --remote
Environment=FME_PSK_SECRET=your-secret-passphrase
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Security note: For production, use a systemd credential or
EnvironmentFileto store the PSK rather than embedding it directly in the unit file.
Enable and start:
# Create a dedicated user (optional but recommended)
sudo useradd --system --create-home --shell /usr/sbin/nologin fme
# Copy config to the fme user's home
sudo mkdir -p /home/fme/.filemoverexpress
sudo cp ~/.filemoverexpress/configuration.yaml /home/fme/.filemoverexpress/
sudo chown -R fme:fme /home/fme/.filemoverexpress
# Copy AWS credentials
sudo mkdir -p /home/fme/.aws
sudo cp ~/.aws/credentials /home/fme/.aws/
sudo cp ~/.aws/config /home/fme/.aws/
sudo chown -R fme:fme /home/fme/.aws
# Enable and start the service
sudo systemctl daemon-reload
sudo systemctl enable filemoverexpress
sudo systemctl start filemoverexpress
# Check status
sudo systemctl status filemoverexpress
sudo journalctl -u filemoverexpress -f
Scripting transfers
Once the daemon is running (or even without it for one-shot transfers), you can script uploads and downloads directly:
# Upload a directory
filemoverexpress upload my-studio ./camera-rolls/day-01/
# Download from S3
filemoverexpress download my-studio ./local-output/ incoming/rushes/
# Upload with specific remote configuration
filemoverexpress upload my-studio ./footage/ --remote-configuration rushes
Connect from the GUI
On a macOS or Windows machine running the File Mover Express desktop app:
- Open the File System dropdown in the Local browser panel
- Select Add Remote Daemon
- Enter the hostname/IP and port (default:
50006) of the Linux server - Enter the PSK password you configured
You can now browse the remote server's filesystem and drag-and-drop transfers as if you were sitting at that machine.
Firewall considerations
If running with remote access, ensure the daemon port is accessible:
# UFW (Ubuntu/Debian)
sudo ufw allow 50006/tcp
# firewalld (RHEL/CentOS)
sudo firewall-cmd --permanent --add-port=50006/tcp
sudo firewall-cmd --reload
Next steps
- Configuration — transfer profiles, hot folders, checksums, throttling
- Using the CLI — full CLI command reference
- Security — IAM permissions, TLS, and network security
- Troubleshooting — common issues and solutions