121 lines
3.4 KiB
YAML
121 lines
3.4 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# ============================================================================
|
|
# FTP Server (Traditional FTP)
|
|
# ============================================================================
|
|
ftp-server:
|
|
build: .
|
|
container_name: ase-ftp-server
|
|
ports:
|
|
- "2121:2121" # FTP control port
|
|
- "40000-40449:40000-40449" # FTP passive ports range
|
|
environment:
|
|
# Server Mode
|
|
FTP_MODE: "ftp" # Mode: ftp or sftp
|
|
|
|
# FTP Configuration
|
|
FTP_PASSIVE_PORTS: "40000" # Prima porta del range passivo
|
|
FTP_EXTERNAL_IP: "192.168.1.100" # IP esterno/VIP da pubblicizzare ai client
|
|
|
|
# Database Configuration
|
|
DB_HOST: "mysql-server"
|
|
DB_PORT: "3306"
|
|
DB_USER: "ase_user"
|
|
DB_PASSWORD: "your_secure_password"
|
|
DB_NAME: "ase_lar"
|
|
|
|
# Logging (opzionale)
|
|
LOG_LEVEL: "INFO"
|
|
volumes:
|
|
- ./logs/ftp:/app/logs
|
|
- ./data:/app/data
|
|
depends_on:
|
|
- mysql-server
|
|
restart: unless-stopped
|
|
networks:
|
|
- ase-network
|
|
|
|
# ============================================================================
|
|
# SFTP Server (SSH File Transfer Protocol)
|
|
# ============================================================================
|
|
sftp-server:
|
|
build: .
|
|
container_name: ase-sftp-server
|
|
ports:
|
|
- "2222:22" # SFTP port (SSH)
|
|
environment:
|
|
# Server Mode
|
|
FTP_MODE: "sftp" # Mode: ftp or sftp
|
|
|
|
# Database Configuration
|
|
DB_HOST: "mysql-server"
|
|
DB_PORT: "3306"
|
|
DB_USER: "ase_user"
|
|
DB_PASSWORD: "your_secure_password"
|
|
DB_NAME: "ase_lar"
|
|
|
|
# Logging (opzionale)
|
|
LOG_LEVEL: "INFO"
|
|
volumes:
|
|
- ./logs/sftp:/app/logs
|
|
- ./data:/app/data
|
|
- ./ssh_host_key:/app/ssh_host_key:ro # SSH host key (generate with: ssh-keygen -t rsa -f ssh_host_key)
|
|
depends_on:
|
|
- mysql-server
|
|
restart: unless-stopped
|
|
networks:
|
|
- ase-network
|
|
|
|
# ============================================================================
|
|
# Esempio: Setup HA con più istanze FTP (stesso VIP)
|
|
# ============================================================================
|
|
ftp-server-2:
|
|
build: .
|
|
container_name: ase-ftp-server-2
|
|
ports:
|
|
- "2122:2121" # Diversa porta di controllo per seconda istanza
|
|
- "41000-41449:40000-40449" # Diverso range passivo sull'host
|
|
environment:
|
|
FTP_MODE: "ftp"
|
|
FTP_PASSIVE_PORTS: "40000" # Stessa config interna
|
|
FTP_EXTERNAL_IP: "192.168.1.100" # Stesso VIP condiviso
|
|
DB_HOST: "mysql-server"
|
|
DB_PORT: "3306"
|
|
DB_USER: "ase_user"
|
|
DB_PASSWORD: "your_secure_password"
|
|
DB_NAME: "ase_lar"
|
|
LOG_LEVEL: "INFO"
|
|
volumes:
|
|
- ./logs/ftp2:/app/logs
|
|
- ./data:/app/data
|
|
depends_on:
|
|
- mysql-server
|
|
restart: unless-stopped
|
|
networks:
|
|
- ase-network
|
|
|
|
mysql-server:
|
|
image: mysql:8.0
|
|
container_name: ase-mysql
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: "root_password"
|
|
MYSQL_DATABASE: "ase_lar"
|
|
MYSQL_USER: "ase_user"
|
|
MYSQL_PASSWORD: "your_secure_password"
|
|
ports:
|
|
- "3306:3306"
|
|
volumes:
|
|
- mysql-data:/var/lib/mysql
|
|
- ./dbddl:/docker-entrypoint-initdb.d
|
|
restart: unless-stopped
|
|
networks:
|
|
- ase-network
|
|
|
|
networks:
|
|
ase-network:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
mysql-data:
|