tokibito/django-ftpserver

FTP server application that used user authentication of Django.

django
ftp-server
python

Django FTP server

build-status pypi python-version docs

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

  1. 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]
  1. Add a line to settings.INSTALLED_APPS in your Django project.
<!-- -->
INSTALLED_APPS = (
    # ..
    'django_ftpserver',
)
  1. Run migrations.
<!-- -->
$ python manage.py migrate
  1. Create FTP user group.
<!-- -->
$ python manage.py createftpusergroup my-ftp-group
  1. Create FTP user account.
<!-- -->
$ python manage.py createftpuseraccount <username> my-ftp-group

<username> is the django authentication username.

  1. Run manage.py ftpserver command.
<!-- -->
$ python manage.py ftpserver 127.0.0.1:10021
  1. 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

  1. Experimental feature. May be removed in future versions. 

Stars
53
100.00% more than last month
Forks
27
Open Issues
5