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:
- User Management - Create users and set up authentication (see User Management)
- Folder Setup - Configure virtual folders and permissions (see Folder Management)
- Security Setup - Configure SSL certificates and SSH keys (see Keys and Certificates)
- 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.