Site Configuration

Sites in CompleteFTP represent different server configurations with their own protocols, ports, and basic settings. This chapter covers the essential site setup tasks that most users need to get started quickly.

Overview

For most users, the default site configuration works well with minimal changes. This chapter focuses on:

  • Essential protocol setup - Enable the protocols you need (FTP, SFTP, HTTPS)
  • Basic port configuration - Set appropriate listening ports
  • Simple security settings - Basic connection limits and timeouts
  • Common scenarios - Ready-to-use configurations for typical use cases

All site operations use the completeftp site command group.

Viewing Site Information

Check Current Site Status

# Show current site configuration
completeftp site show default

# Show specific essential settings
completeftp site show default name enabled ftpEnabled sftpEnabled httpEnabled

List All Sites

# List all configured sites
completeftp site list

# List sites with key properties
completeftp site list name enabled ftpEnabled sftpEnabled

Essential Protocol Setup

Enable Basic Protocols

Most users need one or more of these protocols:

# Enable FTP (simple, widely supported)
completeftp site set default ftpEnabled=true

# Enable SFTP (secure, recommended)
completeftp site set default sftpEnabled=true

# Enable HTTPS (web-based file access)
completeftp site set default httpsEnabled=true

Configure Basic Ports

# Set standard FTP port
completeftp site set default portFTP=21

# Set standard SFTP port (usually 22)
completeftp site set default portSFTP=22

# Set HTTPS port (443 for standard, 8443 for non-privileged)
completeftp site set default portHTTPS=8443

Note: Ports below 1024 require root privileges. For non-root operation, use ports like 8080 (HTTP) and 8443 (HTTPS).

Basic Security Settings

Connection Limits

# Set reasonable connection limits
completeftp site set default maxConnections=50
completeftp site set default maxConnectionsPerUser=3

# Set basic timeout (5 minutes = 300000 ms)
completeftp site set default timeoutIdle=300000

Simple Auto-Ban Protection

# Enable basic brute-force protection
completeftp site set default autoBanTriggerCount=3
completeftp site set default autoBanDuration=3600000  # 1 hour

Common Site Configurations

Secure SFTP-Only Site

Perfect for secure file transfers with SSH key authentication:

# Create secure SFTP-only configuration
completeftp site set default ftpEnabled=false
completeftp site set default ftpsEnabled=false
completeftp site set default sftpEnabled=true
completeftp site set default httpEnabled=false
completeftp site set default httpsEnabled=false
completeftp site set default portSFTP=22

Web-Based File Access

Great for users who prefer browser-based file management:

# Enable web access with secure HTTPS
completeftp site set default ftpEnabled=false
completeftp site set default sftpEnabled=false
completeftp site set default httpEnabled=false
completeftp site set default httpsEnabled=true
completeftp site set default portHTTPS=8443

Mixed Protocol Site

Supports multiple access methods for different user preferences:

# Enable FTP, SFTP, and HTTPS
completeftp site set default ftpEnabled=true
completeftp site set default sftpEnabled=true
completeftp site set default httpsEnabled=true
completeftp site set default portFTP=21
completeftp site set default portSFTP=22
completeftp site set default portHTTPS=8443

Basic Site Management

Creating Additional Sites

# Create a new site with default settings
completeftp site add "Test Site"

# Create a site based on the default site
completeftp site add "Production Site" "default"

Modifying Site Properties

# Enable/disable the site
completeftp site set default enabled=true

# Set a welcome message
completeftp site set default "welcomeMessage=Welcome to our file server"

# Set site name
completeftp site set default "name=Main File Server"

Testing Your Site Configuration

Check Site Status

# Verify site is enabled and protocols are active
completeftp site show default enabled ftpEnabled sftpEnabled httpsEnabled

# Check port configurations
completeftp site show default portFTP portSFTP portHTTPS

Test Connections

# Test FTP connection (if enabled)
ftp localhost

# Test SFTP connection (if enabled)
sftp localhost

# Test HTTPS connection (if enabled)
curl -k https://localhost:8443/

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.

Basic Firewall Rules

For FTP:

# Allow FTP control connection
sudo ufw allow 21/tcp

# Allow FTP passive mode (adjust range as needed)
sudo ufw allow 50000:50100/tcp

For SFTP:

# Allow SFTP
sudo ufw allow 22/tcp

For HTTPS:

# Allow HTTPS
sudo ufw allow 8443/tcp

Passive Mode for FTP

If using FTP through firewalls or NAT:

# Set passive mode port range
completeftp site set default pasvPortMin=50000
completeftp site set default pasvPortMax=50100

# Set external IP if behind NAT
completeftp site set default pasvIP=YOUR_EXTERNAL_IP

Troubleshooting Common Issues

Connection Refused

# Check if site is enabled
completeftp site show default enabled

# Verify protocol is enabled
completeftp site show default ftpEnabled sftpEnabled httpsEnabled

# Check service status
sudo systemctl status completeftp

Permission Denied

# Check port numbers (< 1024 need root)
completeftp site show default portFTP portSFTP portHTTPS

# Verify firewall allows connections
sudo ufw status

Timeout Issues

# Check current timeout settings
completeftp site show default timeoutIdle

# Increase timeout if needed (10 minutes = 600000 ms)
completeftp site set default timeoutIdle=600000

Next Steps

Once you have basic site configuration working:

  1. User Management - Create users and set up authentication (see User Management)
  2. Folder Setup - Configure virtual folders and permissions (see Folder Management)
  3. Security Setup - Configure SSL certificates and SSH keys (see Keys and Certificates)
  4. Advanced Configuration - For complex scenarios, see Advanced Site Configuration

Enterprise Features Available: CompleteFTP supports advanced features including clustering, load balancing, multiple sites, IP filtering, web file manager, email notifications, and much more. See Advanced Features Overview for the complete feature set.

Quick Reference

Essential Site Commands

# View site configuration
completeftp site show default

# Enable protocols
completeftp site set default ftpEnabled=true sftpEnabled=true httpsEnabled=true

# Set ports
completeftp site set default portFTP=21 portSFTP=22 portHTTPS=8443

# Set connection limits
completeftp site set default maxConnections=50 maxConnectionsPerUser=3

# Enable auto-ban
completeftp site set default autoBanTriggerCount=3

Common Port Numbers

  • FTP: 21 (standard)
  • SFTP: 22 (standard SSH port)
  • HTTP: 80 (standard) or 8080 (non-privileged)
  • HTTPS: 443 (standard) or 8443 (non-privileged)
  • FTPS Implicit: 990 (if using FTPS)

This basic setup should cover most common use cases. For advanced features like complex SSL/TLS configuration, custom authentication, or advanced security settings, refer to the advanced configuration chapters.