Show HN: SFTPGo 0.9.4 Released

3 points by drakkan ↗ HN
SFTPGo is a free and open source full featured and highly configurable SFTP server written in Go. It works on Linux, macOS and Windows and has no runtime dependencies.

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

2 comments

[ 2.9 ms ] story [ 23.0 ms ] thread
You should edit the title to "Show HN: SFTPGo 0.9.4 Released"

I like that this has more user flexibility than OpenSSH implementation of SFTP. Creating local accounts and setting shell to /bin/false and group to a chroot sftp is risky.

Thanks, I updated the title.

SFTPGo supports virtual quota and bandwidth throttling too. I think they are hard to implement using OpenSSH.

For the next release I'm working on Git support so that you can host git repo over ssh with virtual accounts, quota, bandwidth throttling. I think this could be an interesting feature too