Here are its main features:
- Each account is chrooted to his Home Dir.
- SFTP accounts are virtual accounts stored in a "data provider".
- SQLite, MySQL, PostgreSQL and bbolt (key/value store in pure Go) data providers are supported.
- Public key and password authentication. Multiple public keys per user are supported.
- Quota support: accounts can have individual quota expressed as max total size and/or max number of files. - Bandwidth throttling is supported, with distinct settings for upload and download.
- Per user maximum concurrent sessions.
- Per user permissions: list directories content, upload, overwrite, download, delete, rename, create directories, create symlinks can be enabled or disabled.
- Configurable custom commands and/or HTTP notifications on file upload, download, delete or rename and on users add, update and delete.
- Automatically terminating idle connections.
- Atomic uploads are configurable.
- SCP is supported.
- Prometheus metrics are exposed.
- REST API for users and quota management and real time reports for the active connections with possibility of forcibly closing a connection.
- Web based interface to easily manage users and connections.
- Easy migration from Unix system user accounts.
- Portable mode: a convenient way to share a single directory on demand.
- Configuration is a your choice: JSON, TOML, YAML, HCL, envfile are supported.
Binary releases for Linux, macOS and Windows are available:
https://github.com/drakkan/sftpgo/releases
If you want to suggest a new feature or you find a bug please open an issue here:
https://github.com/drakkan/sftpgo/issues