Django FTP server
FTP server application that uses Django\'s user authentication.
Features
- FTP server integrated with Django\'s user authentication system
- Permission management through FTP user groups (read, write, delete, etc.)
- Per-user and per-group home directory configuration
- FTP account management via Django Admin
- Secure communication with TLS/SSL support (FTPS)
- Daemon mode for background service operation
- Integration with Django Storage backends (S3, Google Cloud Storage, etc.)1
- Passive mode and masquerade address configuration
- Cross-platform support (Windows/Unix)
- Management commands for FTP user/group operations (create, list, delete)
- Django signals for FTP events (login, logout, file transfers, etc.)
Getting Started
- Install django-ftpserver using pip.
<!-- -->
$ pip install django-ftpserver
Optional dependencies can be installed with extras:
# For TLS/SSL support (FTPS)
$ pip install django-ftpserver[tls]
# For Windows service support
$ pip install django-ftpserver[windows]
# Multiple extras
$ pip install django-ftpserver[tls,windows]
- Add a line to settings.INSTALLED_APPS in your Django project.
<!-- -->
INSTALLED_APPS = (
# ..
'django_ftpserver',
)
- Run migrations.
<!-- -->
$ python manage.py migrate
- Create FTP user group.
<!-- -->
$ python manage.py createftpusergroup my-ftp-group
- Create FTP user account.
<!-- -->
$ python manage.py createftpuseraccount <username> my-ftp-group
<username> is the django authentication username.
- Run
manage.py ftpservercommand.
<!-- -->
$ python manage.py ftpserver 127.0.0.1:10021
- Connect with your favorite FTP client.
Requirements
- Target Python version is 3.10, 3.11, 3.12, 3.13, 3.14
- Django>=4.2
- pyftpdlib
Optional Dependencies
- pyOpenSSL - Required for TLS/SSL support
(
pip install django-ftpserver[tls]) - pywin32 - Required for Windows service support
(
pip install django-ftpserver[windows])
License
This software is licensed under the MIT License.
Documentation
The latest documentation is hosted at Read The Docs.
https://django-ftpserver.readthedocs.org/en/latest/
Develop
This project is hosted at Github: https://github.com/tokibito/django-ftpserver
Author
- Shinya Okano
-
Experimental feature. May be removed in future versions. ↩