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