ProVide Server is available for Linux through Docker, making it possible to deploy a production-ready secure file transfer server in minutes — on any Linux host, from a Raspberry Pi to a cloud VM.
Prerequisites #
Before you begin, make sure the following are in place:
- A Linux host (any distribution: Ubuntu, Debian, Rocky Linux, Alpine, etc.)
- Docker and Docker Compose installed on the host
- Root or
sudoaccess on the host - Network access to
download.provideserver.comfor the initial binary download
Apple Silicon (M1/M2/M3/M4): Docker Desktop handles x86 emulation automatically. The setup script detects ARM architecture and configures QEMU/binfmt if needed.
Step 1: Extract the Archive #
Download the ProVide Docker archive (ProVide-Server-64bit-Docker.tar.gz) from provideserver.com and extract it into a dedicated folder:
bash
mkdir provide && cd provide
tar -xzf ../ProVide-Server-64bit-Docker.tar.gz
The archive contains three files:
| File | Purpose |
|---|---|
docker-compose.yml | Defines ports, volumes, health checks, and restart policy |
Dockerfile | Builds the container image |
provide-setup.sh | Interactive setup script that handles the full installation |
Note: The ProVide Server binary is not included in the archive. It is downloaded automatically by the setup script, ensuring you always get the latest stable version.
Step 2: Run the Setup Script #
Run the interactive setup script:
bash
./provide-setup.sh
The script automatically:
- Downloads the latest ProVide Server binary from
download.provideserver.com - Generates a self-signed TLS certificate (
localhost.pfx) for HTTPS - Prompts you to set an Admin password and creates the admin account
- Creates a locked-down internal service account for graceful shutdown
- Builds the Docker image and starts the container
The entire process takes just a few minutes.
Step 3: Access the Web Administration Interface #
Once the container is running, open the ProVide web administration interface in your browser:
https://your-server-ip:8443
Log in with the Admin account and the password you set during setup. All configuration — users, groups, virtual folders, protocols, events — is done through this interface, exactly as on Windows.
Step 4: Configure Ports and Storage #
The docker-compose.yml comes pre-configured with the most common ports:
| Port | Protocol | Status |
|---|---|---|
| 8443 | HTTPS (web administration) | Enabled by default |
| 22 | SFTP / SSH | Enabled by default |
| 443 | HTTPS (file transfer) | Enabled by default |
| 21 | FTP (unencrypted) | Commented out — use FTPS |
| 990 | FTPS (implicit TLS) | Available |
| 2222 | SFTP (alternate, if port 22 is taken) | Available |
To mount storage from the host into the container, add volume entries to docker-compose.yml:
yaml
volumes:
- ./data/provide:/var/provide
- /mnt/storage:/mnt/storage # Host storage
- /mnt/shared:/mnt/shared:ro # Read-only mount
These paths can then be used as home directories or virtual folders in ProVide’s user configuration.
Important: If port 22 on the host is already in use by the host’s own SSH daemon, use port 2222 for ProVide’s SFTP service instead.