Installation and Setup

This guide provides step-by-step instructions for installing CompleteFTP Preview Release on Linux systems. We provide native packages for the most common Linux distributions, with additional installers available on request.

Overview

CompleteFTP for Linux installation includes:

  • Native packages - Debian (.deb) and Red Hat (.rpm) installers
  • Dependency management - Automatic installation of required components
  • Service configuration - Automatic systemd service setup
  • User permissions - CLI access configuration
  • Initial testing - Verification of successful installation

Supported Distributions

Officially Supported (Native Packages Available)

Debian-based distributions:

  • Debian 10, 11, 12
  • Ubuntu 20.04, 22.04, 24.04 LTS
  • Linux Mint
  • Pop!_OS

Red Hat-based distributions:

  • RHEL 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • CentOS Stream 8, 9

Other Distributions

Additional installers may be available on request.

Contact support to request installers for distributions not listed above.

Prerequisites

System Requirements

  • Operating System: 64-bit Linux distribution
  • .NET Runtime: .NET 6.0 or later (installation instructions below)
  • Memory: 512MB RAM minimum, 2GB recommended
  • Disk Space: 200MB for installation, additional space for data storage
  • Network: Internet connection for installation and activation

WSL (Windows Subsystem for Linux) Requirements

If you're using WSL, ensure Linux services are enabled:

  1. Update WSL (Windows Command Prompt as Administrator):

    wsl --update
  2. Verify WSL 2:

    wsl --list --verbose
  3. Enable systemd in your Linux distribution:

    sudo nano /etc/wsl.conf

    Add these lines:

    [boot]
    systemd=true
  4. Restart WSL:

    wsl --shutdown

Installation Instructions

Debian-Based Distributions (.deb package)

Step 1: Download the Installer

wget https://enterprisedt.com/products/completeftp/download/completeftp.deb

Step 2: Check .NET Installation

dotnet --list-runtimes

If you see Microsoft.NETCore.App 6.0 or later, skip to Step 4.

Step 3: Install .NET (if needed)

Visit Microsoft's package repository to find the correct repository for your specific distribution and version. Then run:

# Replace <repository-url> with the URL from Microsoft's config page
wget <repository-url> -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update

# Install .NET runtime (use latest stable version)
sudo apt install -y dotnet-runtime-8.0

Step 4: Install CompleteFTP

sudo apt install ./completeftp.deb

Step 5: Configure User Access

# Add your user to the completeftp group
sudo usermod -aG completeftp $(whoami)

# Log out and log back in, or use newgrp
newgrp completeftp

Step 6: Verify Installation

# Check service status
sudo systemctl status completeftp

# Test CLI access
completeftp user list

Red Hat-Based Distributions (.rpm package)

Step 1: Download the Installer

wget https://enterprisedt.com/products/completeftp/download/completeftp.rpm

Step 2: Install .NET SDK

Visit Microsoft's package repository to find the correct repository for your specific distribution and version. Then run:

# Replace the URL below with the correct one for your distribution
sudo dnf install -y https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm

# Update package lists
sudo dnf update -y

# Install .NET runtime (use latest stable version)
sudo dnf install -y dotnet-runtime-8.0

Note: The example above uses CentOS 8 repository. Replace with the appropriate repository for your specific distribution and version.

Step 3: Install CompleteFTP

sudo dnf install ./completeftp.rpm

Step 4: Configure User Access

# Add your user to the completeftp group
sudo usermod -aG completeftp $(whoami)

# Apply group changes
newgrp completeftp

Step 5: Verify Installation

# Check service status
sudo systemctl status completeftp

# Test CLI access
completeftp user list

Post-Installation Configuration

Administration Options

CompleteFTP on Linux can be administered in two ways:

  • Command-line interface (covered in this guide) - Direct CLI administration on the Linux server
  • CompleteFTP Manager - Remote GUI administration from a Windows machine

This guide focuses on CLI administration. Users preferring graphical interfaces can download CompleteFTP Manager for Windows to remotely manage their Linux servers.

Service Management

CompleteFTP runs as a systemd service. Common service commands:

# Check service status
sudo systemctl status completeftp

# Start the service
sudo systemctl start completeftp

# Stop the service
sudo systemctl stop completeftp

# Restart the service
sudo systemctl restart completeftp

# Enable auto-start on boot
sudo systemctl enable completeftp

# Disable auto-start on boot
sudo systemctl disable completeftp

View Service Logs

# View recent logs
sudo journalctl -u completeftp --no-pager

# Follow logs in real-time
sudo journalctl -u completeftp -f

# View logs from last boot
sudo journalctl -u completeftp -b

Basic CLI Testing

# Show help
completeftp --help

# List users
completeftp user list

# Show sites
completeftp site list

# Check version
completeftp --version

Firewall Configuration

If you plan to accept connections from other machines (not just localhost), you'll need to configure your firewall to allow the appropriate ports. This is essential for remote access but can be skipped if you're only testing locally.

CompleteFTP uses several ports by default:

  • FTP: 21
  • SFTP: 22
  • HTTP: 80
  • HTTPS: 443
  • FTPS Implicit: 990
  • Passive Mode: 50000-50100 (configurable)

License Activation

Trial License

By default, CompleteFTP runs with a trial license that:

  • Allows unlimited local connections (localhost)
  • Restricts remote connections until activated
  • Provides 30-day evaluation period

Activate for Remote Access

To enable remote connections, you must activate your trial license using the offline activation method:

Step 1: Generate an Activation Request

completeftp license trial offlinerequest

This displays a URL like:

Please visit the following URL on an internet-connected machine to obtain an activation key:
https://connect.enterprisedt.com/#/activate-linux-trial/xxxxxxxxxxxxxxxx

Step 2: Request an Activation Key

  1. On an internet-connected machine, visit the provided URL
  2. Enter your email address when prompted
  3. Submit the form to receive an Activation Key

Step 3: Apply the Activation Key

completeftp license trial offlineapply <ACTIVATION_KEY>

For example:

completeftp license trial offlineapply B7JK3-D8W42-QLZ9M-ZX3F5

If successful, you'll see:

Trial license activated successfully.
Your trial period will end on YYYY-MM-DD.

Check License Status

completeftp license show

Troubleshooting

Common Issues

Issue Solution
Installation fails sudo apt update && sudo apt install -f (Debian)
sudo dnf check-update (Red Hat)
Missing .NET Follow .NET installation steps above
Service won't start Check logs: sudo journalctl -u completeftp
CLI access denied Verify group membership: groups
Port conflicts Check running services: sudo netstat -tlpn

Service Issues

# Check if service is running
sudo systemctl is-active completeftp

# Check service configuration
sudo systemctl show completeftp

# Restart with verbose logging
sudo systemctl restart completeftp
sudo journalctl -u completeftp -f

Permission Issues

# Verify membership of group 'completeftp'
groups

# Check permissions of completeftp executable
ls -l /usr/bin/completeftp

# Check socket permissions (used to communicate with the server process)
ls -l /var/lib/completeftp/config/config.socket

# Re-add user to group
sudo usermod -aG completeftp $(whoami)
newgrp completeftp

Network Issues

# Check listening ports
sudo netstat -tlpn | grep completeftp

# Test local connections
telnet localhost 21
telnet localhost 22

Security Considerations

Initial Security Setup

  1. Change default passwords for any pre-configured accounts
  2. Configure firewall to restrict access to necessary ports
  3. Use SSH keys instead of passwords for SFTP when possible
  4. Enable SSL/TLS for all protocols
  5. Review user permissions regularly

File System Permissions

# Check CompleteFTP directories
ls -la /usr/lib/completeftp/
ls -la /var/lib/completeftp/

# Verify service user
sudo systemctl show completeftp | grep User

Next Steps

After successful installation:

  1. Review the Quick Start Guide for basic configuration
  2. Configure your first site using Site Configuration
  3. Add users with User Management
  4. Set up folders with Folder Management
  5. Configure security with Keys and Certificates

Getting Support

  • Documentation: Complete CLI reference at /usr/share/doc/completeftp/
  • Man Pages: man completeftp
  • Online Help: completeftp --help
  • Support: Contact EnterpriseDT support for technical assistance

Summary

CompleteFTP installation involves:

  1. Download the appropriate installer (.deb or .rpm)
  2. Install .NET runtime if needed
  3. Install CompleteFTP using package manager
  4. Configure user access via group membership
  5. Verify installation with CLI commands
  6. Configure firewall for network access
  7. Activate license for remote connections

You're now ready to configure and use CompleteFTP on Linux!