Simple FTP Server with GUI (prefferably for windows)
- option to choose what folder is served by the server
- option to select port ( ports bellow 1024 require permissions, unless already allowed )
- simple authentication - default is: user 123
- logging to the GUI and to a file ( file with timestamps )
- with system tray icon to restore daemon FTP server after is minimized
- it can run in background from launch if you set
run_as_daemon = 1inftp-config.cfg - simple connection from Explorer:
ftp://user:123@192.168.1.5to access hosted files in RW mode
Default values for ftp-config.cfg
[FTP]
username = user
password = 123
port = 21
ftp_directory = C:\Temp\FTP
run_as_daemon = 0
log_file = ftp_log.txt
Requirements:
# runs with newest Python 3.12.7
PyQt5
pyftpdlib
# for windows compiling:
pyinstaller
Pillow # optional if you do not use .ico file but other image format
Windows:
- This was built for windows, as currently there is no simple non install FTP Server solution.
- On windows you do not need admin rights, only to allow traffic on ports <1024 through windows firewall
- You can select FTP folder location ( for now the config is not being saved after change in GUI )
- it keeps logged access in file
Linux:
- It works on linux too, but for now you can run only ports 1024+ or you need to run it with sudo
- It also creates the folder from where it is run "C:\Temp\FTP" or the folder in cfg file
- Also on Linux it does not quit with buttons when FTP started, it must be killed, or
ctrl+cwhen opened from terminal
Windows building is simple as:
pyinstaller --onefile --windowed --add-data "ftp.png;." --icon=ftp.png ftp_gui.py
Issues:
- Quit from system tray does not work when daemon mod is ON
- Settings are not saved when changed in GUI to config, this would need to be changed prior starting the app
- The app works ok on Windows but for linux it has few flaws
- it creates folder "C:\Temp\FTP" in current directory if there is not other linux location in
ftp-config.cfgalready - it would require sudo to run on ports <1024 or you need to allow non sudo users to use port 21 ( port can be changed)
- when the app is started as daemon it will not be stopped from gui, it must be killed
- it creates folder "C:\Temp\FTP" in current directory if there is not other linux location in
contribution:
FTP.png icon: Ftp icons created by andinur - Flaticon
Languages
Python
100%