Preview Release Notice: This is a Preview Release of CompleteFTP for Linux. It includes all Enterprise MFT features and is suitable for evaluation and integration use. The production release is due in September, 2025.

CompleteFTP Preview Release Docker Installation Guide

This guide provides step-by-step instructions for running CompleteFTP for Linux Preview Release using Docker.

Docker provides an isolated, reproducible environment for CompleteFTP, making it perfect for development, testing, and containerized production deployments!


Quick Start

Running CompleteFTP in a Docker container requires building from the provided Dockerfile. Follow these steps to get started:


Building from Dockerfile

Step 1: Download the Dockerfile

Download the Dockerfile from Dockerfile.

Step 2: Build the Image

In the same directory where the Dockerfile is located execute following command:

docker build -t completeftp .

Step 3: Run the Container

docker run -d --name completeftp -p 21:21 -p 22:22 -p 990:990 -p 80:80 -p 443:443 completeftp

Note for FTPS: FTPS requires additional ports for data channels. If you need FTPS support, you'll need to create an additional port range mapping in Docker and in CompleteFTP.


Step 4: Verify the Container

Check that the container is running:

docker ps

Check the logs:

docker logs completeftp

Step 5: Access CompleteFTP CLI

Execute commands inside the running container:

# List users
docker exec completeftp completeftp user list

# Add a user
docker exec completeftp completeftp user add testuser

# Get help
docker exec completeftp completeftp --help

For interactive access:

docker exec -it completeftp bash

Step 6: Activate Your Trial for Remote Access

By default, your CompleteFTP trial server will only accept connections from within the container (i.e. its own localhost). To enable access from the host machine and from other machines, you must active your 30-day trial license .

You can activate at any time — but until you do, external connections will be rejected.


Container Management

Start/Stop/Restart:

docker start completeftp
docker stop completeftp
docker restart completeftp

View logs:

docker logs completeftp -f

Remove container:

docker stop completeftp
docker rm completeftp

Port Configuration

The container exposes the following ports:

Port Protocol Purpose
21 FTP Standard FTP control
22 SSH/SFTP Secure Shell and SFTP
990 FTPS FTP over SSL/TLS
80 HTTP Web interface
443 HTTPS Secure web interface

Custom port mapping:

docker run -p 2121:21 -p 2022:22 ... completeftp

Persistent Data

The container uses several volumes for persistent data:

Core Data Directories

  • /var/lib/completeftp - Main data directory containing:
    • /var/lib/completeftp/users - User account data and settings
    • /var/lib/completeftp/config - Server configuration files
    • /var/lib/completeftp/share - Shared file storage
  • /var/log/completeftp - Server log files

Web Interface Files

  • /usr/share/completeftp/web - Web interface components:
    • Account management interface
    • File managers (2 different implementations)
    • Login/logout pages
    • WebAdmin interface
    • Public file sharing interface

Next Steps

Refer to the Quick Tour to configure your server.


Troubleshooting

Issue Solution
Container won't start Check docker logs completeftp
Port conflicts Use different port mappings with -p
Permission errors Ensure Docker has proper permissions
Can't connect remotely Activate your trial license